高通字库
版本 V1.0 · 更新于 2026-06-05

4. 开发环境搭建

推荐使用“4.2.5 使用脚本实现以上步骤”中的脚本完成环境搭建。脚本会自动处理资料准备、demo 文件拷贝、GT-HMI-Engine 集成和 Kconfig 配置等工程创建步骤;如需手动操作或查看配置细节,可参考 4.1 和 4.2.1 至 4.2.4 章节。

4.1 资料下载

  • GT-HMI-Builder

    git clone https://gitee.com/genitop/GT-HMI-Builder.git
    
  • GT-HMI-Engine

    测试使用 commit 96f9974853afa49952bff69451afe94ebe33a265

    git clone https://gitee.com/genitop/GT-HMI-Engine.git
    
  • Luban-lite SDK

    测试使用 commit 48769ed416a0918fa5afc3c9a66d9518532033f9

    git clone https://gitee.com/artinchip/luban-lite.git
    

4.2 工程创建

注意:7 寸屏demo 和 10寸屏demo 只有 packages\third-party\gt_hmi\demo 中的内容不一样,其他的都可以通过 me 进行配置

4.2.1 7 寸屏 demo

  • 将 GT-HMI-Builder 中 \GT-HMI-Builder\GT-HMI Module\GTC-480800TFT70GP-AC 7 寸屏内容拷贝到 Luban-lite SDK

    • 将 Target中的内容拷贝到 Luban-lite SDK 对应的路径中 images/target.jpgimages/target.jpg
    • 将 packages 中的内容拷贝到 Luban-lite SDK 对应的路径中

    images/7_packages.jpgimages/7_packages.jpg

4.2.2 10.1 寸屏 demo

  • 将 GT-HMI-Builder 中 \GT-HMI-Builder\GT-HMI Module\GTC-1024600TFT101GP-AC 10.1寸屏内容拷贝到 Luban-lite SDK

    • 将 Target中的内容拷贝到 Luban-lite SDK 对应的路径中images/target.jpgimages/target.jpg
    • 将 packages 中的内容拷贝到 Luban-lite SDK 对应的路径中

    images/101c_packages.jpgimages/101c_packages.jpg

4.2.3 GT-HMI-Engine

将 GT-HMI-Engine拷贝到 Luban-lite SDK \packages\third-party\gt_hmi 目录下

images/hmi-engine.jpgimages/hmi-engine.jpg

4.2.4 修改 Kconfig 文件

在 packages\third-party\Kconfig 文件最后加入

source "packages/third-party/gt_hmi/Kconfig"

4.2.5 使用脚本实现以上步骤

#!/usr/bin/env bash
# setup_sdk.sh
#
# 用法(在目标工作目录中运行):
#   bash setup_sdk.sh 7c      # 仅配置 7 寸屏 demo
#   bash setup_sdk.sh 101c    # 仅配置 10.1 寸屏 demo
#   bash setup_sdk.sh all     # 配置两种 demo(默认)
#
# 脚本与工程路径无关,clone 和拷贝均基于脚本运行时的当前工作目录

set -e

SCREEN="${1:-all}"
WORK_DIR="$(pwd)"

# -----------------------------------------------------------------------
# 目标路径(相对于脚本运行时的工作目录)
# -----------------------------------------------------------------------
PATH_7C="${WORK_DIR}/GT-HMI-Builder/GT-HMI Module/GTC-480800TFT70GP-AC"
PATH_101C="${WORK_DIR}/GT-HMI-Builder/GT-HMI Module/GTC-1024600TFT101GP-AC"
LUBAN_DIR="${WORK_DIR}/luban-lite"
ENGINE_SRC="${WORK_DIR}/GT-HMI-Engine"

# -----------------------------------------------------------------------
# 辅助函数
# -----------------------------------------------------------------------
copy_to() {
    local src="$1"
    local dst="$2"
    mkdir -p "$dst"
    if [ -d "$src" ]; then
        cp -r "$src/." "$dst/"
    else
        cp "$src" "$dst/"
    fi
}

# -----------------------------------------------------------------------
# 第一步:资料下载(git clone)
# -----------------------------------------------------------------------
echo "========================================"
echo " Step 1: 资料下载 (git clone)"
echo "========================================"

if [ ! -d "${WORK_DIR}/GT-HMI-Builder/.git" ]; then
    echo "[clone] GT-HMI-Builder ..."
    git clone https://gitee.com/genitop/GT-HMI-Builder.git "${WORK_DIR}/GT-HMI-Builder"
else
    echo "[skip]  GT-HMI-Builder 已存在,跳过 clone"
fi

if [ ! -d "${WORK_DIR}/GT-HMI-Engine/.git" ]; then
    echo "[clone] GT-HMI-Engine ..."
    git clone https://gitee.com/genitop/GT-HMI-Engine.git "${WORK_DIR}/GT-HMI-Engine"
else
    echo "[skip]  GT-HMI-Engine 已存在,跳过 clone"
fi

if [ ! -d "${WORK_DIR}/luban-lite/.git" ]; then
    echo "[clone] luban-lite SDK ..."
    git clone https://gitee.com/artinchip/luban-lite.git "${WORK_DIR}/luban-lite"
else
    echo "[skip]  luban-lite 已存在,跳过 clone"
fi

# -----------------------------------------------------------------------
# 第二步:工程创建 —— GT-HMI-Engine -> luban-lite
# -----------------------------------------------------------------------
echo ""
echo "========================================"
echo " Step 2: 拷贝 GT-HMI-Engine 到 luban-lite"
echo "========================================"

ENGINE_DST="${LUBAN_DIR}/packages/third-party/gt_hmi/GT-HMI-Engine"
if [ -d "$ENGINE_SRC" ]; then
    echo "[copy]  GT-HMI-Engine -> packages/third-party/gt_hmi/GT-HMI-Engine"
    mkdir -p "$ENGINE_DST"
    cp -r "${ENGINE_SRC}/." "$ENGINE_DST/"
else
    echo "[warn]  GT-HMI-Engine 目录不存在,跳过"
fi

# -----------------------------------------------------------------------
# 第三步:从 GT-HMI-Builder 拷贝 target / packages 到 luban-lite
# -----------------------------------------------------------------------
echo ""
echo "========================================"
echo " Step 3: 从 GT-HMI-Builder 拷贝模块文件"
echo "========================================"

setup_7c() {
    echo "--- 7 寸屏 demo ---"
    local src="${PATH_7C}"

    if [ ! -d "$src" ]; then
        echo "[warn]  7 寸屏路径不存在: $src"
        return
    fi

    if [ -d "${src}/target" ]; then
        echo "[copy]  target (7c) ..."
        copy_to "${src}/target" "${LUBAN_DIR}/target"
    fi

    if [ -d "${src}/packages" ]; then
        echo "[copy]  packages (7c) ..."
        copy_to "${src}/packages" "${LUBAN_DIR}/packages"
    fi
}

setup_101c() {
    echo "--- 10.1 寸屏 demo ---"
    local src="${PATH_101C}"

    if [ ! -d "$src" ]; then
        echo "[warn]  10.1 寸屏路径不存在: $src"
        return
    fi

    if [ -d "${src}/target" ]; then
        echo "[copy]  target (101c) ..."
        copy_to "${src}/target" "${LUBAN_DIR}/target"
    fi

    if [ -d "${src}/packages" ]; then
        echo "[copy]  packages (101c) ..."
        copy_to "${src}/packages" "${LUBAN_DIR}/packages"
    fi
}

case "$SCREEN" in
    7c)   setup_7c ;;
    101c) setup_101c ;;
    all)  setup_7c; setup_101c ;;
    *)
        echo "用法: bash setup_sdk.sh [7c|101c|all]"
        exit 1
        ;;
esac

echo ""
echo "Done. 接下来请在 OneStep 环境中执行:"
echo "  cd luban-lite"
echo "  list          # 列出可用的 defconfig 方案,确认已拷贝的方案名称"
echo "  lunch <编号>   # 选择 defconfig 方案"
echo "  me            # 通过 menuconfig 进行配置"
echo "  m             # 编译"

  • 脚本使用方式

    将 setup_sdk.sh 拷贝到需要建立的工程目录下,或者新建文件

sh setup_sdk.sh 7c      # 仅 7 寸屏
sh setup_sdk.sh 101c    # 仅 10.1 寸屏
sh setup_sdk.sh all     # 两者都配置(默认)

​ 脚本运行完后结果

4.3 Luban-lite SDK 使用(Windows)

参考资料:https://aicdoc.artinchip.com/topics/product/d21x-quick-start-chapter-soc-quickstart-d21x.html

1、打开 luban-lite 文件夹下的 win_env.bat 文件

2、输入 list 列出可用方案

​

3、输入 lunch <编号> 选择方案

​

4、输入 me 通过 menuconfig 进行配置

5、输入 m 进行编译


  • 常用命令
命令说明
list列出所有可用的 defconfig 方案
lunch [编号]选择并激活某个 defconfig,例如 lunch 3
me全局 menuconfig
km仅配置 application 的 menuconfig
bm仅配置 bootloader 的 menuconfig
m / mb编译 bootloader + app,生成最终镜像
ma仅编译 app
mu / ms仅编译 bootloader
mc清理后重新全量编译
c清理所有编译产物
co / cout跳转到 output/*/images/ 目录
h查看所有 OneStep 命令帮助

4.4 GT-HMI-Engine 配置说明

GT-HMI Engine 的配置通过 Luban-lite SDK 的 menuconfig(me 命令)完成,配置文件位于 packages/third-party/gt_hmi/Kconfig。

4.4.1 配置机制说明

配置传递方式:

  • SConscript 直接解析 .config 文件,将 CONFIG_LPKG_GT_HMI_GT_XXX 转换为编译器宏 -DGT_XXX=value
  • 这些宏通过 CPPDEFINES 传递给编译器,直接覆盖 gt_conf.h 中的默认值
  • 只有带 #ifndef 保护的宏才能被 Kconfig 覆盖(如 GT_SCREEN_WIDTH),无保护的宏(如 GT_TASK_PERIOD_TIME_*)无法在 Kconfig 中配置

配置项命名规则:

  • _EN 后缀(如 GT_SCREEN_WIDTH_EN)是控制开关,仅决定是否覆盖,不会传递给编译器
  • 实际生效的是 GT_XXX 形式的宏(如 GT_SCREEN_WIDTH=800)

4.4.2 进入 GT-HMI 配置菜单

  1. 在 OneStep 环境中运行 me 打开 menuconfig
  2. 导航至:Third-party packages → GT-HMI: Genitop HMI Engine
  3. 勾选 [*] GT-HMI: Genitop HMI Engine 启用引擎

4.4.3 Demo 选择

启用 Enable GT-HMI demo 后,可通过 choice 选择预置 demo:

Demo 选项说明
7c_vehicle demo7 寸屏车载界面 demo
7c_washing demo7 寸屏洗衣机界面 demo
7c_pos demo7 寸屏 POS 机界面 demo
101c demo10.1 寸屏 demo

Demo 相关扩展配置:

  • Use demo-specific gt_font_config.h - 使用 demo 自定义字体配置
  • Use demo-specific gt_gui_driver.h - 使用 demo 自定义驱动配置
  • Use demo-specific gt_port_*.h - 使用 demo 自定义移植层文件

4.4.4 GT-HMI Engine 配置菜单(gt_conf.h)

4.4.4.1 Screen(屏幕配置)
配置项对应宏说明默认值
Override screen widthGT_SCREEN_WIDTH屏幕宽度(像素)800
Override screen heightGT_SCREEN_HEIGHT屏幕高度(像素)480
Override design resolutionGT_DESIGN_WIDTH/HEIGHT设计分辨率(用于 DPX/DPY 缩放)与屏幕一致
Design width/heightGT_DESIGN_WIDTH/HEIGHT设计稿宽高800x480
Override color depthGT_COLOR_DEPTH色深(8/16/32)16
Swap RGB565 byte orderGT_COLOR_16_SWAP交换 RGB565 字节序0
Flush direction: verticalGT_FLUSH_CONVERT_VERTICAL刷新方向改为垂直(默认水平)0
Enable software rotation supportGT_DISP_SW_ROTATE_SUPPORT软件旋转支持(消耗 width×height×2 字节 RAM)0
4.4.4.2 Refresh(刷新配置)
配置项对应宏说明默认值
Abort screen load when memory pool is fullGT_DISP_STACK_ABORT_LOADING_WHILE_NOT_ENOUGH_MEM内存不足时放弃切屏而不是崩溃0
4.4.4.3 Memory(内存配置)
配置项对应宏说明默认值
Use internal memory pool (TLSF allocator)GT_MEM_CUSTOM使用内部内存池替代 malloc1
Override memory pool sizeGT_MEM_SIZE内存池大小(KB,自动转字节)24
Use external pointer for memory poolGT_MEM_CUSTOM_POINTER使用外部指针指定内存池基地址0
4.4.4.4 Virtual file device(Flash 配置)
配置项对应宏说明默认值
Override flash sizeGT_VF_FLASH_SIZEFlash 总大小(字节,hex)0x1000000 (16MB)
Override flash start addressGT_VF_FLASH_STARTFlash 起始地址(hex)0x000000
4.4.4.5 Input device(输入设备)
配置项对应宏说明默认值
Override scroll throw styleGT_INDEV_THROW_STYLE滚动手感(0=iOS,1=Android)0
Enable custom touch expand sizeGT_USE_CUSTOM_TOUCH_EXPAND_SIZE扩展触摸点击区域0
Enable async lock-free touch event queueGT_USE_TOUCH_QUEUE异步触摸事件队列0
Touch queue ring buffer sizeGT_TOUCH_QUEUE_SIZE队列大小(必须是 2 的幂)64
Enable multi-touch supportGT_USE_MULTI_TOUCH多点触控(捏合、旋转)0
Maximum simultaneous touch pointsGT_MULTI_TOUCH_MAX_POINTS最大同时触摸点数2
Pinch gesture thresholdGT_MULTI_TOUCH_PINCH_THRESHOLD_PX捏合手势阈值(像素)20
Rotate gesture thresholdGT_MULTI_TOUCH_ROTATE_THRESHOLD_DEGX10旋转手势阈值(0.1度单位)50
Use up/down/left/right keys to control focusGT_USE_UD_LR_TO_CONTROL_FOCUS_EN使用方向键控制焦点0
4.4.4.6 UI features(界面特性)
配置项对应宏说明默认值
Enable top layerGT_USE_LAYER_TOP顶层支持(对话框、弹窗、状态栏)1
Cache top layer screenshotGT_LAYER_TOP_SCREENSHOT_CACHE缓存顶层截图减少底层重绘0
Enable screen switch animationGT_USE_SCREEN_ANIM屏幕切换动画1
Enable widget animation dynamic frame rateGT_USE_WIDGET_DYNAMIC_FRAME_RATE控件动画动态帧率0
Enable generic click feedback effectGT_USE_CLICK_EFFECT点击反馈效果(透明度变暗)1
Enable widget layout functionGT_USE_WIDGET_LAYOUT控件布局功能1
Enable lightweight widget shadow effectGT_USE_SHADOW控件阴影效果1
Enable widget gradient color supportGT_USE_GRADIENT渐变颜色支持1
Arc gradient: use FPU atan2fGT_ARC_GRAD_USE_FPU圆弧渐变使用 FPU(无 FPU 时用整数查表)自动检测
Print engine info on bootGT_BOOTING_INFO_MSG启动时打印引擎信息0
Display refresh time in logGT_USE_DISPLAY_PREF_MSG显示刷新时间0
Display object destroy time in logGT_USE_DISPLAY_PREF_DESTROY显示对象销毁时间0
Display idle time in logGT_USE_DISPLAY_PREF_IDLE显示空闲时间0
4.4.4.7 Extra buffers(额外缓冲区)
配置项对应宏说明默认值
Enable full image bufferGT_USE_EXTRA_FULL_IMG_BUFFER完整图片缓冲区(一次性读取整张图片)0
Enable full font bufferGT_USE_EXTRA_FULL_FONT_BUFFER完整字体缓冲区(减少 malloc/free)0
Enable full font mask bufferGT_USE_EXTRA_FULL_FONT_MASK_BUFFER字体 mask 缓冲区(不要与 font buffer 共用内存)0
Enable separate image metadata cacheGT_USE_IMG_CACHE独立图片元数据缓存0
4.4.4.8 Font(字体配置)
配置项对应宏说明默认值
Use old font family formatGT_FONT_FAMILY_OLD_ENABLE使用旧版字库格式0
Enable custom fontGT_CUSTOM_FONT_ENABLE启用自定义字体0
Cache ASCII font widthGT_FONT_USE_ASCII_WIDTH_CACHE缓存 ASCII 字符宽度(约 94 个字符)1
Enable LRU glyph cacheGT_USE_FONT_GLYPH_CACHELRU 字形缓存(避免重复读取 flash)0
Number of glyph cache slotsGT_FONT_GLYPH_CACHE_SIZE字形缓存槽数量(推荐 16~32)16
4.4.4.9 Data source mode(数据源模式)
配置项对应宏说明默认值
Enable source (embedded) data modeGT_USE_MODE_SRC嵌入数据源模式1
Enable flash data modeGT_USE_MODE_FLASHFlash 数据模式1
Enable SD card data modeGT_USE_MODE_SDSD 卡数据模式0
Enable image file headerGT_USE_FILE_HEADER图片文件头(索引/地址/大小元数据)0
Enable direct flash address accessGT_USE_DIRECT_ADDR直接 Flash 地址访问0
Enable direct address with custom sizeGT_USE_DIRECT_ADDR_CUSTOM_SIZE直接地址带自定义大小 {addr,w,h,is_alpha}0
Enable folder/file system callbacksGT_USE_FOLDER_SYSTEM启用目录操作回调0
Enable get filename by indexGT_USE_FS_NAME_BY_INDEX通过索引从文件列表获取文件名0
4.4.4.10 Image format(图片格式)
配置项对应宏说明默认值
Enable PNG decodeGT_USE_PNGPNG 解码(lodepng)1
Enable JPEG decodeGT_USE_SJPGJPEG 解码(TJpgDec)1
Enable GIF decodeGT_USE_GIFGIF 解码1
Enable SVG decodeGT_USE_SVGSVG 解码(nanosvg,约 60KB Flash)0
Enable Markdown parseGT_USE_MD4CMarkdown 解析(md4c)1
Enable image rotation and scalingGT_USE_IMG_TRANSFORM图片旋转和缩放(双线性插值)0
4.4.4.11 Serial communication(串口通信)

启用 GT_USE_SERIAL 后自动强制启用:GT_USE_CRC、GT_USE_BIN_CONVERT、GT_USE_FILE_HEADER、GT_INDEV_SIMULATE_POINTER。

配置项对应宏说明默认值
Use timer to unpack received serial dataGT_SERIAL_USE_TIMER_RECV_UNPACK使用定时器解包串口数据1
Override send cache buffer sizeGT_SERIAL_MASTER_CACHE_SIZE发送缓存大小(字节)512
Override receive cache buffer sizeGT_SERIAL_CLIENT_CACHE_SIZE接收缓存大小(字节)512
Override pack cache sizeGT_SERIAL_PACK_CACHE_SIZE打包缓存大小(字节)512
Override unpack cache sizeGT_SERIAL_UNPACK_CACHE_SIZE解包缓存大小(字节)512
Override width byte lengthGT_SERIAL_WIDTH_BYTE_LENGTH接收有效数据宽度字节长度(1~4)1
Enable auto packGT_SERIAL_USE_AUTO_PACK自动打包1
Strip headers/length/CRC from received dataGT_SERIAL_GET_ONLY_VALID_DATA去除接收数据的头部/长度/CRC1
4.4.4.12 Log(日志)
配置项对应宏说明默认值
Override default log levelGT_LOG_LEVEL_DEFAULT默认日志级别(1=VERBOSE ~ 6=CRASH)5 (ERROR)

日志级别选项:

  • VERBOSE (1) - 打印所有信息
  • DEBUG (2)
  • INFO (3)
  • WARNING (4)
  • ERROR (5) - 仅错误
  • CRASH (6) - 仅崩溃
4.4.4.13 Utilities(工具)
配置项对应宏说明默认值
Enable binary convertGT_USE_BIN_CONVERT二进制转换(gt_bin_convert)0
Enable CRCGT_USE_CRCCRC 校验(gt_crc)0
Enable LaTeX text renderingGT_USE_LATEX_LIBLaTeX 文本渲染(gt_latex)0
Enable built-in engine examplesGT_USE_EXAMPLES内置引擎示例0
Enable test module_GT_USE_TEST测试模块0

4.4.5 配置注意事项

  1. 仅配置带 #ifndef 保护的宏:Kconfig 只能覆盖 gt_conf.h 中带有 #ifndef 保护的配置项,无保护的宏(如 GT_TASK_PERIOD_TIME_*、GT_REFRESH_STYLE 等)无法在 Kconfig 中配置。

  2. 宏定义传递机制:

    // gt_conf.h 中的典型模式
    #ifndef GT_SCREEN_WIDTH
        #define GT_SCREEN_WIDTH     800
    #endif
    

    当 Kconfig 启用 GT_SCREEN_WIDTH 并设置为 1024 时,SConscript 会生成 -DGT_SCREEN_WIDTH=1024,在编译时覆盖默认值。

  3. GT_MEM_SIZE 特殊处理:该宏配置值单位为 KB,SConscript 会自动转换为字节(value*1024)。

  4. 依赖关系:

    • 多点触控 (GT_USE_MULTI_TOUCH) 自动启用触摸队列 (GT_USE_TOUCH_QUEUE)
    • 串口通信 (GT_USE_SERIAL) 自动启用 CRC、BIN_CONVERT、FILE_HEADER、INDEV_SIMULATE_POINTER

4.5 Luban-lite SDK 屏幕和 TP 配置说明

屏幕(Display)和触摸板(Touch Panel,简称 TP)的配置通过 me menuconfig 完成,配置项位于 Hardware Drivers 菜单下。

4.5.1 屏幕配置(Display)

进入菜单:Hardware Drivers → Display Drivers

4.5.1.1 显示接口选择
配置项说明
Display RGB interfaceRGB 并行接口(常见 16/18/24bit)
Display LVDS interfaceLVDS 接口(单通道/双通道)
Display MIPI-DSI interfaceMIPI DSI 接口
Display MIPI-DBI interfaceMIPI DBI 接口(I8080/SPI)
4.5.1.2 RGB 接口配置

进入菜单:Display Drivers → RGB Configuration

配置项说明典型值
RGB modeRGB 数据位宽模式24bit / 16bit
RGB data mirrorRGB 数据镜像根据硬件设计
RGB clock polarity时钟极性normal / inverted
4.5.1.3 Panel 选择

进入菜单:Display Drivers → Display Panels

Simple Panel(通用 RGB/LVDS 屏):

  • 选择 ArtInChip SIMPLE panel
  • 可选标准分辨率:480x272、800x480、1024x600、1920x1080
  • 或启用 Custom Display Timing 自定义时序

MIPI-DSI Panel:

  • XM91080、ST7797、ST7703、ILI9881C、HX8394
  • JD9365、AXS15231B、NV3051、FL7707、FT8201、ST7701S、JD9366TC

MIPI-DBI Panel:

  • ILI9488、ILI9486L、ST7789、GC9B72NA(I8080 类型)
  • ILI9341、ST77903、ILI9327、CO5300、ST77916、GC9108、ST77912(SPI 类型)

RGB Panel(需 SPI 初始化):

  • ST7701S、ST77916、JD9855、GC9A01A、NT35560、ST77922、ST7102
4.5.1.4 Framebuffer 配置
配置项说明默认值
select framebuffer format帧缓冲区格式ARGB8888
Support double framebuffer双缓冲支持(AIC_PAN_DISPLAY)否
framebuffer rotation degree帧缓冲旋转角度0°

可选格式:ARGB8888、ABGR8888、XRGB8888、RGB888、RGB565、ARGB1555

4.5.1.5 背光控制
配置项说明
panel backlight control选择 pwm / gpio
panel backlight enable pinGPIO 背光使能引脚(如 PE.19)
panel backlight enable pin low active低电平有效
pwm backlight channelPWM 通道号
default brightness level默认亮度(0-100)
4.5.1.6 屏幕裁剪(Screen Crop)

当有效显示区域小于时序信号时使用:

配置项说明默认值
Enable screen crop启用屏幕裁剪否
screen crop x position裁剪起始 X 坐标0
screen crop y position裁剪起始 Y 坐标0
screen crop width裁剪宽度0
screen crop height裁剪高度0

4.5.2 触摸板配置(Touch Panel)

进入菜单:Hardware Drivers → Touch Drivers

4.5.2.1 启用触摸驱动

首先启用 Using touch(对应 CONFIG_AIC_USING_TOUCH=y)

然后选择触摸类型:

  • Using CTP - 电容触摸屏(Capacitive Touch Panel)
  • Using RTP - 电阻触摸屏(Resistive Touch Panel)
4.5.2.2 CTP(电容触摸屏)配置

选择 CTP 设备:

型号说明
GT911汇顶科技 911 系列(常用)
FT6336 / FT7411敦泰科技
AXS15260艾科创新
CHSC5XXX / CHSC6XXX海栎创
CST826 / CST3240海栎创
GSL1680 / GSL3676思立微电子
ILI2511 / ILI21XX / ILI23XX / ILI2117奕力科技
JD9366晶达光电
ST16XX / ST77922矽创电子
TW31XX泰为科技
C123HAX022 / C145HAX01定制型号

CTP 硬件连接配置:

配置项说明典型值
Touch using I2C channel indexI2C 通道i2c3
Touch reset pin复位引脚PA.8
Touch irq pin中断引脚PA.9

CTP 坐标配置:

配置项说明默认值
Touch real x coordinate range触摸板 X 坐标范围1024
Touch real y coordinate range触摸板 Y 坐标范围600
Screen real x coordinate range屏幕 X 分辨率1024
Screen real y coordinate range屏幕 Y 分辨率600

CTP 触摸方向调整:

配置项说明
Touch flip x coordinateX 轴翻转
Touch flip y coordinateY 轴翻转
Touch 90 degrees rotation90 度旋转
Touch 180 degrees rotation180 度旋转
Touch 270 degrees rotation270 度旋转
Screen rotate degree relative to touch屏幕相对触摸的旋转角度

CTP 裁剪与模式:

配置项说明默认值
Enable touch crop启用触摸裁剪否
Touch crop x/y/width/height裁剪区域-
Using touch polling mode轮询模式(而非中断模式)否
Touch as wake-up source触摸作为唤醒源-
4.5.2.3 RTP(电阻触摸屏)配置

进入菜单:Hardware Drivers → Touch Drivers → Using RTP

配置项说明
X/Y ADC channelX/Y 轴 ADC 通道选择
ADC sampling countADC 采样次数
Screen resolution X/Y屏幕分辨率
Touch threshold触摸检测阈值

4.5.3 屏幕与触摸配置示例

以 800x480 7 寸屏为例,典型配置如下:

defconfig 关键配置:

# 显示接口
CONFIG_AIC_PRGB_24BIT=y
CONFIG_RGB_DATA_MIRROT=y
CONFIG_AIC_PAN_DISPLAY=y
CONFIG_AIC_SCREEN_CROP=y
CONFIG_AIC_SCREEN_CROP_WIDTH=800
CONFIG_AIC_SCREEN_CROP_HEIGHT=480

# 触摸
CONFIG_AIC_USING_TOUCH=y
CONFIG_AIC_TOUCH_X_COORDINATE_RANGE=800
CONFIG_AIC_TOUCH_Y_COORDINATE_RANGE=480
CONFIG_AIC_SCREEN_REAL_X_RESOLUTION=800
CONFIG_AIC_SCREEN_REAL_Y_RESOLUTION=480

pinmux.c 引脚配置:

// RGB 24bit 引脚(PD.6 ~ PD.27,PC.0 ~ PC.5)
#ifdef AIC_PRGB_24BIT
    {3, PIN_PULL_DIS, 3, "PC.0"}, ... {3, PIN_PULL_DIS, 3, "PC.5"},
    {2, PIN_PULL_DIS, 3, "PD.6"}, ... {2, PIN_PULL_DIS, 3, "PD.27"},
#endif

// 触摸引脚
#ifdef AIC_USING_CTP
    {1, PIN_PULL_DIS, 3, AIC_TOUCH_PANEL_RST_PIN},
    {1, PIN_PULL_DIS, 3, AIC_TOUCH_PANEL_INT_PIN},
#endif

4.5.4 常见问题

  1. 屏幕无显示

    • 检查 AIC_PRGB_24BIT / AIC_PRGB_16BIT_LD/HD 是否与硬件匹配
    • 确认背光引脚配置正确(GPIO/PWM 方式)
    • 检查 Panel 时序参数是否正确
  2. 触摸无响应

    • 确认 I2C 通道和引脚配置正确
    • 检查复位引脚和中断引脚配置
    • 验证触摸坐标范围与屏幕分辨率匹配
  3. 触摸位置偏移

    • 调整 AIC_TOUCH_X/Y_COORDINATE_RANGE 与实际触摸板分辨率一致
    • 使用 AIC_TOUCH_X/Y_FLIP 或旋转选项校准方向
    • 检查是否有 AIC_SCREEN_CROP 配置需要同步到触摸裁剪

4.6 demo 配置

以下配置是在没有更改过工程其他配置情况下,每个demo的不同配置。

4.6.1 7c_vehicle demo 配置

# luban-lite 屏幕配置
Board option --->
	Display Parameter --->
		Display Panels --->
			[*] Custom Display Timing
			    display timing of simple panel --->

# luban-lite 触摸配置
Drivers options --->
	Peripheral --->
		Touch Panel Support --->

image-20260525173702976image-20260525173702976

# GT-HMI-Engine demo选择
Local packages options --->
	Third-party packages option --->
		GT-HMI: Genitop HMI Engine --->

# GT-HMI-Engine 屏幕配置
Local packages options --->
	Third-party packages option --->
		GT-HMI: Genitop HMI Engine --->
			GT-HMI Engine configuration (gt_conf.h) --->
				Screen -->

image-20260525174115203image-20260525174115203

image-20260525174350280image-20260525174350280

4.6.2 7c_washing demo 配置

# luban-lite 屏幕配置
Board option --->
	Display Parameter --->
		Display Panels --->
			[*] Custom Display Timing
			    display timing of simple panel --->

# luban-lite 触摸配置
Drivers options --->
	Peripheral --->
		Touch Panel Support --->

image-20260525173702976image-20260525173702976

# GT-HMI-Engine demo选择
Local packages options --->
	Third-party packages option --->
		GT-HMI: Genitop HMI Engine --->

# GT-HMI-Engine 屏幕配置
Local packages options --->
	Third-party packages option --->
		GT-HMI: Genitop HMI Engine --->
			GT-HMI Engine configuration (gt_conf.h) --->
				Screen -->

image-20260525175201357image-20260525175201357

image-20260525174350280image-20260525174350280

4.6.3 7c_pos demo 配置

# luban-lite 屏幕配置
Board option --->
	Display Parameter --->
		Display Panels --->
			[*] Custom Display Timing
			    display timing of simple panel --->

image-20260525185727974image-20260525185727974

# luban-lite 触摸配置
Drivers options --->
	Peripheral --->
		Touch Panel Support --->

image-20260525190018077image-20260525190018077

# GT-HMI-Engine demo选择
Local packages options --->
	Third-party packages option --->
		GT-HMI: Genitop HMI Engine --->

# GT-HMI-Engine 屏幕配置
Local packages options --->
	Third-party packages option --->
		GT-HMI: Genitop HMI Engine --->
			GT-HMI Engine configuration (gt_conf.h) --->
				Screen -->

image-20260525190202005image-20260525190202005

image-20260525190316262image-20260525190316262

4.6.4 101c demo 配置

# luban-lite 屏幕配置
Board option --->
	Display Parameter --->
		Display Panels --->

image-20260528104725875image-20260528104725875

# luban-lite 触摸配置
Drivers options --->
	Peripheral --->
		Touch Panel Support --->

image-20260528104912071image-20260528104912071

# GT-HMI-Engine demo选择
Local packages options --->
	Third-party packages option --->
		GT-HMI: Genitop HMI Engine --->

# GT-HMI-Engine 屏幕配置
Local packages options --->
	Third-party packages option --->
		GT-HMI: Genitop HMI Engine --->
			GT-HMI Engine configuration (gt_conf.h) --->
				Screen -->

image-20260528105040789image-20260528105040789

image-20260528105159313image-20260528105159313

4.7 GT-HMI Designer 程序移植说明

如果使用 GT-HMI Designer 修改对应示例工程,需要先完成编译环境设置,配置开发板型号和字库相关选项,然后执行仿真运行,确保生成移植所需文件。以下以 7c_washing 示例工程为例进行说明。 alt textalt text 开发板型号请根据实际使用的板卡选择。例如,7 寸屏选择 GTC-480800TFT70GP-AC,10.1 寸屏选择 GTC-480800TFT101GP-AC。 alt textalt text 注:如果是首次打开示例工程,且尚未搭建 luban-lite 开发环境,需先选择开发板型号并点击编译按钮。编译完成后,会在 7c_washing\luban-lite\board\GTC-480800TFT70GP-AC 目录下生成以下文件。随后按照 PDF 文档步骤执行 setup_sdk.sh 脚本,完成 luban-lite 开发环境搭建后(参考“4.2.5 使用脚本实现以上步骤”),再继续进行字库配置等后续操作。已搭建 luban-lite 开发环境时可跳过此步骤。 alt textalt text 字库配置可参考下图。需要注意的是,gcc 执行文件与 ar 执行文件所在路径均在 luban-lite\toolchain\bin 目录下。 自定义编译选项需添加:-march=rv64imafdc_xtheadc -mabi=lp64d -mcmodel=medany -c -g -ffunction-sections -fdata-sections -Wall -O2 -g2 -mno-dup-loop-header alt textalt text 点击编译按钮,编译完成后会在工程目录下生成以下文件。 alt textalt text 将 board 目录下除 fontTable.conf 以外的所有文件,手动复制到 luban-lite 工程的 luban-lite\packages\third-party\gt_hmi\demo\7c_washing\driver\ 目录下。 alt textalt text 将 screen 目录下的所有文件复制到 luban-lite\packages\third-party\gt_hmi\demo\7c_washing 目录下。 alt textalt text 移植完成后,打开 luban-lite 文件夹下的 win_env.bat 文件,输入 m 进行编译。 alt textalt text

4.8 程序下载(AiBurn)

工具下载:https://aicdoc.artinchip.com/topics/product/download-doc-tool-zip.html

使用介绍:https://aicdoc.artinchip.com/topics/tools/aiburn-ui-design.html

4.8.1 下载流程

image-20260525192136267image-20260525192136267

  • 选择 output\d21x_gt-hmi-nor_rt-thread_helloworld\images\d21x_gt_hmi_nor_v1.0.0.img

image-20260525191723908image-20260525191723908

  • 使用type-c线连接串口和USB口,串口配置:波特率-115200,停止位-1,数据位-8,校验位-None

image-20260525192829706image-20260525192829706

  • 按住板子上的复位和boot按键,然后只松开复位按键;或者使用串口发送 aicupg 指令,进入烧录模。AiBurn出现设备已连接

image-20260525193411619image-20260525193411619

image-20260525193448679image-20260525193448679

  • 点击开始进行烧录

image-20260525193814423image-20260525193814423

  • 正在烧录

image-20260525193725234image-20260525193725234

  • 烧录完成

image-20260525194049296image-20260525194049296