H3核心板开发笔记(一):编译及烧写方式

系统配置文件路径:tools/pack/chips/sun8iw7p1/configs/dolphin/sys_config.fex
linux 内核: linux-3.4
u-boot: brandy/u-boot-2011.09
文件系统: buildroot/target/dragonboard/rootfs
固件路径: tools/pack

编译

首次编译,需要导入内核配置,进入 linux3.4 目录,执行:
$ cp h3_defconfig .config
退回到 lichee 目录,再执行
$ ./build.sh config
依次选择: 1 1 0 2
(仅首次编译需要 config,以后就不需要了)
以后再次编译只使用命令:
$ ./build.sh
即完成一次编译
编译完成:
在这里插入图片描述
打包固件:
$ ./build.sh pack
固件位置: tools/pack/sun8iw7p1_dragonboard_dolphin.img

编译 u-boot

使用 build.sh 不会编译 u-boot, 因为在 SDK 里已经提供了 u-boot.bin, 通常不需要修改,在 pack 时打包到固件里
如果需要修改 u-boot, 按下面的流程:
进入 u-boot 目录(brandy/u-boot-2011.09),清除编译(仅第一次编译需要)
$ make distclean
选择 H3 平台的配置(仅第一次编译需要)
$ make sun8iw7p1_config
编译:
$ make -j
生成 u-boot-sun8iw7p1.bin自动替换到 tools/pack/chips/sun8iw7p1/bin/u-boot-sun8iw7p1.bin
打包:
$ ./build.sh pack

修改 Linux 内核配置

$ cd linux-3.4
$ make menuconfig ARCH=arm
默认的内核配置文件linux3.4/h3_defconfig
还原默认配置
$ cp h3_defconfig .config

交叉编译器配置

交叉编译器路径 out/sun8iw7p1/dragonboard/common/buildroot/external-toolchain/bin
将编译器加入环境变量,用于编译 Linux 应用程序
$export PATH=$PATH:/home/ql/linux/H3Core/lichee/out/sun8iw7p1/dragonboard/common/buildroot/external-toolchain/bin
导入交叉编译器的环境后,直接使用 arm-linux-gnueabi-gcc 编译应用程序
可以用命令来看下是否成功arm-linux-gnueabi-gcc -v
在这里插入图片描述

文件系统定制

文件系统路径:buildroot/target/dragonboard/rootfs


编译脚本:buildroot/target/dragonboard/build.sh
在编译时调用此脚本,主要作用是复制文件到 rootfs 中,或在 rootfs 创建目录或文件,或建立文件连接,修改权限等。
将要放入文件系统的文件或目录放到 extra 目录,在 build.sh 里添加:
cp -rf extra/xxxx rootfs/xxxx


启动脚本:
dragonboard/rootfs/autorun.sh
原路径是 dragonboard/extra/autorun.sh,编译时由脚本拷到 rootfs 中
把要加载驱动模块的命令和需要自启动的程序写在这里


驱动模块路径:
/system/vendor/modules
原路径是 rootfs/lib/modules/3.4.39,运行时由脚本拷到/system/vendor/modules

编译应用程序

单独编译:
导入交叉编译器的环境后,直接使用 arm-linux-gnueabi-gcc 编译
将生成的程序传到板上即可运行,或手动拷贝到 rootfs 的 bin 目录,编译打包


在工程中编译:
参考 buildroot/target/dragonboard/src/testcase/example
将要编译的软件包(以 myapp 为例)放到 testcase 中,
修改 testcase/Makefile,加入
make -C myapp

修改 myapp 中的 Makefile

SRC_ROOT := ../..
LDFLAGS := -lscript
include $(SRC_ROOT)/rule.mk
myapp_objs = myapp.o
.PHONY: all
all: myapp
myapp: $(myapp_objs)
	$(LINK_MSG)
	$(LINKX)
$(myapp_objs): %.o: %.c
	$(COMPILE_MSG)
	$(COMPILEX)

在编译系统时,会把 myapp 编译到 rootfs/dragonboard/bin

在 Linux 系统烧写固件

按照 LiveSuit_For_Linux 安装包中的教程安装 LiveSuit,根据本机的系统位数选择安装 32 位或 64 位版本。
可执行程序路径: ~/Bin/LiveSuit/LiveSuit.sh运行 LiveSuit
$ sudo ./LiveSuit.sh
在这里插入图片描述
选择打包好的固件
在这里插入图片描述
给开发板断电,按住板左上方的 UBOOT 按键, 将 USB 线连接设备的 MicroUSB 口至 PC机, 会自动检测到设备(此时可以松开按键), 弹出窗口提示“是否格式化数据分区”: 选 Yes,进行格式化烧写,清除 data 目录;选 No,进行非格式化烧写,不清除 data 目录。
如果没有检测到设备, 请重新尝试上述步骤
烧写的过程需要 1 分钟左右

在 Windows 系统烧写固件

安装 PhonixSuit 软件, 打开后选择“一键刷机”,点击“浏览” 选择要烧写的固件文件,选中“格式化”进行格式化烧写;如果不想擦除 data 分区,就取消“格式化”
在这里插入图片描述
给开发板断电,按住板左上方的 UBOOT 按键,将 USB 线连接设备的 MicroUSB 口至 PC机, 会自动检测到设备(此时可以松开音量键), 提示开始烧写固件, 如果没有检测到设备,请重新尝试上述步骤
固件烧写成功后,拔掉 USB 线,再给开发板上电

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

【ql君】qlexcel

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值