准备工作
创建 Git 仓库
如果使用了 git clone 获取的代码,则表示已经存在 Git 仓库,可以略过此步。
如果不是直接下载的代码,则需要手动创建一下本地 Git 仓库,具体操作如下:
sudo apt-get install git //安装 Git
git init //创建本地仓库
git add * //添加所有代码到本地仓库暂存区
git commit -m "init" //将暂存区的代码提交到本地参考
创建 Git 仓库,有助于执行下列操作:
-
跟踪修改的历史记录。
-
方便进行修改回退,防止调试代码影响开发工作。
修改配置文件
- BootLoader:用来完成内存初始化,刷机,升级等工作,在 OS 启动后会被自动释放。
-
命名:IC_demo + 引脚数-存储类型_baremetal_bootLoader
-
示例 d21x_demo128-nand_rt-thread_helloworld
-
- RT-Thread:固件的核心,由 OS 和 Application 等组成
-
命名:IC_demo + 引脚数-存储类型_os 类型_application
-
示例 d13x_demo88-nor_rt-thread_helloworld_defconfig
-
生成固件
每一块开发板可以对应一个工程,工程的代码存放于 target/ic/ 目录下。 关于代码结构的详细说明,可查看准备代码。
在进行工程编译前,可以使用已有的工程,也可以建一个给开发板使用的独立工程。
建立新工程
使用 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
source tools/onestep.sh
lunch d211_newboard_defconfig
make //在任何目录 m 命令都可以编译出固件
准备工作完成后即可顺利编译出固件。
选择已有工程
-
存储:SPINAND、SPINOR、eMMC
-
屏幕:RGB、LVDS、MIPI-DSI、MIPI-DBI
-
封装: D211B (88 pin)、D211D (100 pin)、D213E (128 pin)
工程名称 |
存储 |
封装 |
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 介质的升级包配置,不作为独立示例 |