准备工作
4 Dec 2024
Read time: 2 minute(s)
为了让后续的开发工作更便捷,在开始进行开发板 Bringup 之前,需做好下列相关准备工作。
注: 编译环境的搭建可以参考SDK 编译。
创建 Git 仓库
如果使用了 git clone 获取的代码,则表示已经存在 Git 仓库,可以略过此步。
如果不是直接下载的代码,则需要手动创建一下本地 Git 仓库,具体操作如下:
sudo apt-get install git //安装 Git
git init //创建本地仓库
git add * //添加所有代码到本地仓库暂存区
git commit -m "init" //将暂存区的代码提交到本地参考
创建 Git
仓库,有助于执行下列操作:
注: 务必使用一个版本管理工具对代码进行管理。如果没有
Git 服务器,
建议创建一个本地仓库进行跟踪。
-
跟踪修改的历史记录。
-
方便进行修改回退,防止调试代码影响开发工作。
生成固件
每一块开发板可以对应一个工程,工程的代码存放于 target/ic/ 目录下。 关于代码结构的详细说明,可查看准备代码。
在进行工程编译前,可以使用已有的工程,也可以建一个给开发板使用的独立工程,详细流程如下:
-
选择已有工程:
选择一个合适的工程可以减少修改配置的工作量,可遵照以下优先级顺序:-
存储:SPINAND、SPINOR、eMMC
-
屏幕:RGB、LVDS、MIPI-DSI、MIPI-DBI
-
封装: D211B (88 pin)、D211D (100 pin)、D213E (128 pin)
表 1. 工程文件优先级顺序 工程名称 存储 封装 DDR 屏幕 其他功能 demo eMMC QFN88 64M ddr2 LVDS RTP,UART,MAC,SDCARD demo88_nand SPI NAND QFN88 64M ddr2 RGB565 CTP,MAC,CAN,SDCARD demo100_nand SPI NAND QFN100 128M ddr3 LVDS CTP,MAC,CAN,SDCARD,USB demo128_nand SPI NAND QFN128 128M ddr3 LVDS CTP,2xGMAC,SDCARD,WiFi,2xUSB,RS485 ota SPI NAND 针对 SPINAND 介质的升级包配置,不作为独立示例 ota_emmc eMMC 针对 eMMC 介质的升级包配置,不作为独立示例 -
-
建立新工程:使用 scons --add-board 命令创建新板子对应的工程。
该命令会参考某一个已经存在的工程建立一个全新命名的工程, 参考工程的选择依然需要按照存储、屏幕和封装的优先级进行。make add_board Chip list: 1: d211 Select chip for new board(number): 1 d211 Reference defconfig:(Create new board base on selected defconfig) 1: d211_demo100_nand_defconfig 2: d211_demo128_nand_defconfig 3: d211_demo88_nand_defconfig 4: d211_demo88_nand_musl_defconfig 5: d211_demo_defconfig 6: d211_ota_defconfig 7: d211_ota_emmc_defconfig Select reference defconfig for new board(number): 2 d211_demo128_nand_defconfig Input new board's name: newboard newboard Input manufacturer's name: customer customer Created: target/d211/newboard Created: source/uboot-2021.10/configs/d211_newboard_defconfig Created: source/linux-5.10/arch/riscv/configs/d211_newboard_defconfig Created: package/third-party/busybox/configs/d211_newboard_defconfig Created: target/configs/d211_newboard_defconfig Updated: target/d211/Config.in
-
推荐使用 OneStep 命令进行系统的 bringup,详细命令说明,可查看OneStep 加速命令。
source tools/onestep.sh lunch d211_newboard_defconfig make //在任何目录 m 命令都可以编译出固件
准备工作完成后应该能够顺利编译出固件。