编译sdk
1、修改编译链路径
cd customer-rel/board/package/mk/
vi common.mk
sudo echo ‘PATH=“/home/johan/share/vs839/vs-linux/x86-arm/gcc-linaro-7.5.0-aarch64-linux-gnu/bin:$PATH”’ >> /etc/profile
source /etc/profile
2、bypass DSP 编译,修改 customer-rel/board/package/Makefile
将 vs-dspfw 从列表中删掉
3、全编译命令
make all -jX
依次编译 kernel、U-boot、busybox、osal,sample 和 rootfs。
第一次需要全编译,后面可以根据实际修改情况只编译某个模块。SDK 的编译方式是把源代码目录 copy 到 build 目录下进行编译,如果 build 目录已经存在,则直接在 build 目录下做编译,修改了源目录下的代码后,需要先做 make xxx-clean 的操作,然后再次进行编译。
- 注意:再次编译时需要make clean
因为我这个板子是ci03单板,存储介质为 SPI Nor,使用 jffs2 格式根文件系统
则完整的编译命令为:
make all BOARD_TYPE=ci03 FLASH_TYPE=spi-nor ROOTFS_TYPE=jffs2 FLASH_BLOCK_SIZE=64KiB -jX
//公司的修改为
make all BOARD_TYPE=ci03 FLASH_TYPE=spi-nand ROOTFS_TYPE=ubifs FLASH_PAGE_SIZE=2048 FLASH_OOB_SIZE=128
编译成功:
查看分区 cat /proc/mtd
修改common.mk,因为会修改.config
地址空间说明
烧录镜像
通过tftp烧录
# 配置TFTP服务器IP和板端IP
setenv serverip 10.1.24.75;setenv ipaddr 10.1.24.66;
saveenv //保存env
把镜像放在tftp的同目录下
tftpboot 0x23080000 Image
mtd erase spi-nand0 0x620000 0x1400000
mtd write spi-nand0 0x23080000 0x620000 0x1400000
烧录dtb和文件系统
tftpboot 0x46000000 vs8x9-ci01.dtb
mtd erase spi-nand0 0x420000 0x200000
mtd write spi-nand0 0x46000000 0x420000 0x200000
tftpboot 0x30000000 rootfs_ubifs.img
mtd erase spi-nand0 0x1a20000
mtd write spi-nand0 0x30000000 0x1a20000 0x760000 //0x760000 是文件的真是长度
文件真实长度转换
问题
出现烧录镜像无法启动的情况,因为上面修改过commom.mk,把文件修改回来,重现烧录后,成功启动kernel