Edit online

准备工作

为了让后续的开发工作更便捷,在开始进行开发板 Bringup 之前,需做好下列相关准备工作。
注:
编译环境的搭建可以参考SDK 编译
Edit online

创建 Git 仓库

如果使用了 git clone 获取的代码,则表示已经存在 Git 仓库,可以略过此步。

如果不是直接下载的代码,则需要手动创建一下本地 Git 仓库,具体操作如下:

sudo apt-get install git   //安装 Git
git init                   //创建本地仓库
git add *                  //添加所有代码到本地仓库暂存区
git commit -m "init"       //将暂存区的代码提交到本地参考

创建 Git 仓库,有助于执行下列操作:

  • 跟踪修改的历史记录。

  • 方便进行修改回退,防止调试代码影响开发工作。

注:
务必使用一个版本管理工具对代码进行管理。如果没有 Git 服务器, 建议创建一个本地仓库进行跟踪。可以在 git 官网免费下载 git 工具https://git-scm.com/。git 使用并不复杂,可以通过网络搜索到相关使用方法。
Edit online

修改配置文件

Luban 包含以下配置文件:
  • 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

Edit online

生成固件

每一块开发板可以对应一个工程,工程的代码存放于 target/ic/ 目录下。 关于代码结构的详细说明,可查看准备代码

在进行工程编译前,可以使用已有的工程,也可以建一个给开发板使用的独立工程。

Edit online

建立新工程

使用 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,详细命令说明,可查看
source tools/onestep.sh
lunch d211_newboard_defconfig
make                              //在任何目录 m 命令都可以编译出固件

准备工作完成后即可顺利编译出固件。

Edit online

选择已有工程

遵照以下优先级顺序选择一个合适的工程,减少修改配置的工作量:
  • 存储: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 介质的升级包配置,不作为独立示例