准备工作
在开始进行开发板 Bringup 之前,建议做好准备工作,可以让后续的开发工作更方便,编译环境的搭建可以参考:SDK编译
Git 仓库
务必使用一个版本管理工具对代码进行管理,如果没有 Git 服务器,也强烈建议建一个本地仓库进行跟踪:
可以方便跟踪修改的历史记录,籍此进行信息记录
可以很方便的进行修改的回退,防止调试代码影响开发工作
如果是使用 git clone 获取的代码,则 Git 仓库本身是存在的
如果不是直接下载的代码,则可以手工建一下本地 Git 仓库
sudo apt-get install git //安装 Git
git init //创建本地仓库
git add * //添加所有代码到本地仓库暂存区
git commit -m "init" //将暂存区的代码提交到本地参考
2
3
4
配置文件
Luban-Lite 有两个配置文件,分别对应 BootLoader 和 RT-Thread
BootLoader
BootLoader 主要用来完成内存初始化,刷机,升级等工作,在 OS 启动后会被自动释放
命名:IC_demo + 引脚数-存储类型_baremetal_bootLoader
示例 d21x_demo128-nand_rt-thread_helloworld
RT-Thread
RT-Thread 是固件的核心,由 OS 和 Application 等组成
命名:IC_demo + 引脚数-存储类型_os类型_application
示例 d21x_demo128-nand_baremetal_bootLoader
示例 d13x_demo88-nor_freertos_helloworld
小技巧
一般不需要修改 BootLoader,因此 Bringup 时只需要 lunch RT-Thread 配置即可
生成固件
每一块开发板可以对应一个工程,工程的代码在 target/ic/ 目录下,详细介绍的可以参考 使用指南
在进行工程编译的时候,可以使用现在已有的工程,也可以建一个给开发板使用的独立工程
选择已有工程
选择已有的工程进行 Bringup 最简单,但选择一个合适的工程可以让修改工作更少,需要按如下优先级选择一个最适合开发板的工程
- 主控: D21x、D13x、D21x
- 系统: RT-Thread、FreeRTOS
- 存储: SPINAND、SPINOR、eMMC
- 屏幕: RGB、LVDS、MIPI-DSI、MIPI-DBI
工程名称 | 存储 | 封装 | Memory | 屏幕 | 其他功能 |
---|---|---|---|---|---|
d12x_demo68-nand | SPINAND | QFN68 | PSRAM | RGB888 | RS485, RS232, UART, SDIO WIFI, TFCARD |
d12x_demo68-nor | SPINOR | QFN68 | PSRAM | RGB | RS485, RS232, UART, SDIO WIFI, TFCARD |
d12x_hmi-nor | SPINOR | QFN68 | PSRAM | RGB | JART, TFCARD |
d13x_demo88-nand | SPINAND | QFN88 | PSRAM | LVDS | RTP/CTP, UART, RTC, SDCARD, DMIC |
d13x_kunlunpi88-nor | SPINOR | QFN88 | PSRAM | RGB565 | CTP, SDCARD, DVP, RS485 |
d21x_demo128-nand | SPI NAND | QFN128 | 128M ddr3 | LVDS | CTP, MAC, CAN, SDCARD, USB |
g73x_demo100-nor | SPINOR | QFN100 | SRAM | QSPI | CTP, 2xGMAC, SDCARD, WiFi, 2xUSB, RS485 |
建立新工程
可以使用 scons --add-board 命令创建新板子对应的工程,该命令会参考某一个已经存在的工程建立一个全新命名的工程, 参考工程的选择依然需要按照 存储 , 屏幕 , 封装 的优先级进行
$ scons --add-board
scons: Reading SConscript files ...
Chip list:
0: xxxxx
1: d12x
2: d13x
3: d21x
Select chip for new board(number):2
d13x
Reference defconfig:(Create new board base on selected defconfig):
0: d13x_demo88-nand_rt-thread_helloworld_defconfig
1: d13x_demo88-nor-xip_rt-thread_helloworld_defconfig
2: d13x_demo88-nor_baremetal_helloworld_defconfig
3: d13x_demo88-nor_rt-thread_helloworld_defconfig
4: d13x_per1-nand_baremetal_helloworld_defconfig
5: d13x_per1-nand_rt-thread_helloworld_defconfig
6: d13x_per1-nor_baremetal_helloworld_defconfig
7: d13x_per1-nor_rt-thread_helloworld_defconfig
Select reference defconfig for new board(number):0
d13x_demo88-nand_rt-thread_helloworld_defconfig
Input new board's name:test
test
Input new app's name: (default helloworld)test
test
Copy luban-lite/target/configs/d13x_demo88-nand_rt-thread_helloworld_defconfig to luban-lite/target/configs/d13x_test_rt-thread_test_defconfig
Copy luban-lite/target/configs/d13x_demo88-nand_baremetal_bootLoader_defconfig to luban-lite/target/configs/d13x_test_baremetal_bootLoader_defconfig
Copy luban-lite/target/d13x/demo88-nand to luban-lite/target/d13x/test
Add board test for test succeed!
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
编译工程
$ scons --list-def // 列出当前所有的工程默认配置
$ scons --apply-def=xxx_defconfig // 加载应用上述列表其中一条工程配置
2
成果
准备工作完成后应该能够顺利编译出固件