Edit online

烧录进度条

Read time: 2 minute(s)

ArtInChip 平台支持 SDCard / Udisk 烧录时显示进度条和数字百分比。进度条和数字百分比通过 CPU 进行绘制。 进度条默认居中,显示蓝绿两种颜色。数字百分比通过 fb console 实现,fb console 默认支持 32x32 点阵字体,ASCII 32 - 127。



执行下列步骤,可在烧录时显示进度条和数字百分比:
  1. Luban 根目录下执行 make uboot-menuconfig,进入 BootLoader 工程配置界面。

  2. 使能下列配置参数:
    Device Drivers  --->
        Graphics support  --->
            [*]  Artinchip Graphics support  --->
                [*] Support PROGRESS BAR
  3. 使能下列参数,编译显示接口:
    Device Drivers
        Graphics support
            [*]ArtInChip Graphics  --->
                [*]   ArtInChip display rgb support
                [*]   ArtInChip display lvds support
                [*]   ArtInChip display mipi-dsi support
                [*]   ArtInChip display mipi-dbi support
    配置显示子系统参数,详情参考 Display 配置 ,屏幕参数需要与项目工程保持一致 (背光除外)。
    注:
    • 可以编译所有显示接口,但只有 panel 驱动对应的显示接口能生效。

    • U-Boot 工程需要 GPIO 控制背光,不支持 PWM 调节亮度,其余屏幕参数需要与项目工程保持一致。

  4. 使能烧录进度条命令

    Device Drivers  --->
        Graphics support  --->
            [*] Support a simple text console
    烧录进度条支持下列场景:
    • 同时显示进度条和 fb console(console开启即可同时显示)

    • 只显示进度条

  5. 如需,可添加自定义配置,否则可略过。

    自定义配置支持修改进度条颜色、进度条宽高、进度条位置、fb console 字体颜色和 fb console 字体大小。

自定义配置

自定义配置支持修改进度条颜色、进度条宽高、进度条位置、fb console 字体颜色、fb console 字体大小和屏幕背景颜色

自定义配置需要修改 SDK 源代码,源码路径为 source/uboot-2021.10/drivers/video/artinchip/display
  • 进度条颜色
    修改宏定义:
    /* bar background */
    #define BAR_BG_R  0x00
    #define BAR_BG_G  0x0f
    #define BAR_BG_B  0xff
    
    /* bar fill */
    #define BAR_FILL_R  0x00
    #define BAR_FILL_G  0xff
    #define BAR_FILL_B  0x0f
  • 进度条宽高
    • 进度条高度宏定义,以 pixel 为单位:
      #define BAR_HEIGHT                  35
    • 进度条宽度宏定义,进度条宽度自适应 LCD 分辨率,默认为 LCD 宽度的 5/6,配置不同的比例调整进度条宽度:
      #define WIDTH_SPLIT_NUMERATOR       5
      #define WIDTH_SPLIT_DENOMINATOR     6
  • fb console 字体颜色
    fb console 支持 16 种颜色,通过宏定义指定:
    enum color_idx {
        VID_BLACK = 0,
        VID_RED,
        VID_GREEN,
        VID_BROWN,
        VID_BLUE,
        VID_MAGENTA,
        VID_CYAN,
        VID_LIGHT_GRAY,
        VID_GRAY,
        VID_LIGHT_RED,
        VID_LIGTH_GREEN,
        VID_YELLOW,
        VID_LIGHT_BLUE,
        VID_LIGHT_MAGENTA,
        VID_LIGHT_CYAN,
        VID_WHITE,
    
        VID_COLOR_COUNT
    };
    字体颜色宏定义
    #define CONSOLE_COLOR_FG            CONSOLE_LIGHT_GRAY
    #define CONSOLE_COLOR_BG            CONSOLE_BLACK
  • fb console 显示位置

    修改 fb console 逻辑,默认居中显示

    void aicfb_draw_bar(unsigned int value)
    {
        ...
        console_x = info.width / 2;     // 居中显示
        console_y = bar_y + BAR_HEIGHT + 5;
        ...
    }