全志T113-S3学习笔记一:在 Tina SDK 中添加自定义板子

在 TinaSDK 中添加自定义板子

在嵌入式系统固件开发中,将自己的板子信息接入现有 SDK 是一个常见需求。本文以 Allwinner 平台为例,详细讲解如何在 Tina SDK 下添加自定义板子,并使其出现在 lunch 菜单中,便于后续编译工作。


一、理解关键目录结构

1. 芯片平台配置目录

  • 路径device/config/chips/[芯片型号]
    例如:device/config/chips/t113
  • 内容
    • Linux 内核配置:如 linux-5.4/config-*
    • 设备树文件:例如 board.dts
    • 系统分区表:如 sys_*.fex 文件

2. 板级配置目录

  • 路径target/allwinner/[板子名称]
    例如:target/allwinner/t113-evb1
  • 内容
    • BoardConfig.mk:定义板级硬件参数
    • defconfig:内核编译默认配置
    • *其它 .mk 文件:板子专用的构建配置文件

3. 全局配置脚本

  • 文件vendorsetup.sh
    • 作用:用于注册自定义板子选项到 lunch 菜单中

二、添加自定义板子的步骤

下面以自定义板子 t113-myboard 为例,介绍如何将其添加到 SDK 中。

1. 创建板级目录

target/allwinner/ 目录下创建你的板子目录。建议复制现有板子目录作为模板:

cd target/allwinner
cp -r t113-evb1 t113-myboard  # 复制现有板子配置作为模板

2. 配置 BoardConfig.mk

在 t113-myboard/ 目录下修改 BoardConfig.mk,定义板级硬件参数,例如:

# BoardConfig.mk 示例配置
TARGET_BOARD_PLATFORM := t113-myboard
KERNEL_VERSION        := 5.4
TARGET_ARCH           := arm
TARGET_CPU            := cortex-a7

# 内核配置路径(引用芯片平台上的配置)
KERNEL_DEFCONFIG      := device/config/chips/t113/linux-5.4/config-5.4

# 设备树路径,对应芯片平台设备树文件
KERNEL_DTS_PATH       := device/config/chips/t113/linux/board.dts

# 系统分区表
TARGET_SYS_PARTITION  := device/config/chips/t113/sys_partition.fex

3.内核与设备树配置

3.1 内核配置

在 device/config/chips/t113/linux-5.4/ 目录下创建自定义内核配置文件
例如:config-5.4-myboard,可以参考并修改现有的配置文件

3.2 设备树配置

在 device/config/chips/t113/linux/ 目录下修改 board.dts 或新建设备树文件(如 board-myboard.dts)
根据实际硬件调整引脚、时钟、外设节点等内容

4. 系统配置文件

修改或新建系统配置文件,如 sys_config.fex 和 sys_partition.fex(位于 device/config/chips/t113/)
定义硬件外设、系统分区、GPIO、屏幕参数等信息,确保符合自定义板子的需求

5. 注册到 lunch 菜单

打开全局配置脚本 target/allwinner/vendorsetup.sh,在其中添加自定义板子的选项,如下:

# 在 target/allwinner/vendorsetup.sh 中添加:
add_lunch_combo t113-myboard-eng
add_lunch_combo t113-myboard-user

这样在执行 lunch 命令时,你的自定义板子 t113-myboard 就会显示出来。

6. 创建编译脚本

打开全局配置脚本 target/allwinner/vendorsetup.sh,在其中添加自定义板子的选项,如下:

# t113_myboard.mk
PRODUCT_MAKEFILES := \
    $(LOCAL_DIR)/t113_myboard.mk

COMMON_LUNCH_CHOICES := \
    t113-myboard-eng \
    t113-myboard-user

7.更新环境并验证

完成以上步骤后,更新 SDK 环境配置并验证:

source build/envsetup.sh
lunch  # 此时应能看到 t113-myboard 的选项出现在菜单中

三、关键文件说明

文件/目录作用说明
BoardConfig.mk定义板级硬件参数,如 CPU 架构、内核版本、系统分区等
sys_*.fex定义系统分区、外设资源配置(如 GPIO、屏幕参数)
defconfig内核编译默认配置,通过 make kernel_menuconfig 生成
vendorsetup.sh全局注册文件,用于将自定义板子加入 lunch 菜单
device/config/chips/存放芯片级通用配置,如内核配置文件、设备树、系统分区表

四、注意事项

复用现有配置
建议先复制现有板子的目录(如 t113-evb1),然后逐步修改,确保自定义配置与硬件匹配。

分区表兼容性
确保 sys_partition.fex 中定义的分区大小符合实际硬件 Flash 的容量与布局要求,避免启动异常。

内核版本对齐
使用 linux-5.4 内核时,确保在 BoardConfig.mk 中设置 KERNEL_VERSION := 5.4,避免配置不一致。

设备树匹配
修改或添加设备树时一定要根据自己板子的实际硬件情况进行调整,包括引脚复用、外设节点定义等,以确保各模块正确加载。

结语

本文详细介绍了如何在 Tian (Tina) SDK 中添加自定义板子信息,包括目录结构的理解、板级配置文件的修改、内核与设备树的适配以及如何注册到 lunch 菜单中。按照以上步骤操作后,你的自定义板子就可以出现在编译选项中,并生成适合你硬件的固件镜像。

如果觉得这篇文章对你有帮助,欢迎点赞、评论交流分享经验!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值