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 线,再给开发板上电
H3核心板开发笔记(一):编译及烧写方式相关推荐
- FL2440(S3C2440A 芯片) 开发板开发笔记
FL2440(S3C2440A 芯片) 开发板开发笔记 开发板的拨码开关指南: FL2440 改 vnfg 飞凌嵌入式 www. witech. com. cn 09. 8. 22 1 开发板使用手册 ...
- DevEBox STM32F4x1开发板 设置MicroPython STM32F401CC/TM32F411CE STM32F4x1 核心板 开发板 MicroPython
▌01 STM32F4x1开发板 STM32F401CC/TM32F411CE STM32F4x1 核心板 开发板 MicroPython .下面测试一下这款基于STM32F401的模块是否可以下载M ...
- 启明云端基于sigmastarSSD201/202核心板\开发板资料分享地址,另外还可以加入技术沟通群聊,及时解决相关技术问题!
基于sigmastarSSD201/202核心板\开发板 购买链接: https://item.taobao.com/item.htm?id=631665290641 基于20X核心板开发的板子有4. ...
- 开发板_Hi3516DV300核心板/开发板;Hi3516EV100+4G+AUDIO RTMP开发板;海思系列开发板/核心板定制开发...
1.海思Hi3516DV300核心板/开发板 一,芯片参数 1. 处理器内核 *双核ARM Cortex-A7@ 900MHz,32KB I-Cache,32KB D-Cache,256KB L2 C ...
- 嵌入式linux/鸿蒙开发板(IMX6ULL)开发流程(六)烧写整个系统或更新部分系统
文章目录 1.烧写整个系统或更新部分系统 1.1 100ASK_IMX6ULL启动开关 1.2 在Windows使用USB烧写工具 1.2.1 烧写工具目录详解 1.2.2 连接USB OTG线 1. ...
- A33_Vstar_Android_SDK开发 编译及烧写遇到的问题【汇总】
A33_Vstar_Android_SDK开发 遇到的问题 整理一下Android SDK编译及烧写的时候,遇到的问题和解决的办法 问题1 .tar.bz2文件解压命令 解决办法: .tar.gz ...
- M5Stack(ESP32)学习笔记(9)—— 编译并烧写M5Stack的MicroPython固件
UIFlow是个挺不错的编程环境,适合新手学习.它基于MicroPython(Lobo版本),也可以脱离UIFlow的IDE来用Python编程.但是把玩了几天后,我发现M5Stack的原配UIFlo ...
- Uboot初次编译、烧写、启动(启动界面log简析)
目录 U-Boot 初次编译 U-Boot 烧写与启动 上述笔记第三点就是建立shell脚本实现的 第四点就是修改Makefile文件实现的,下面均有实现步骤讲解. U-Boot 初次编译 先编译体验 ...
- S5PV210开发 -- 通过 DNW、fastboot 烧写
如需转载请注明出处:https://blog.csdn.net/qq_29350001/article/details/78364548 这个烧写过程真是一波三折啊,足足搞了两天才实现 通过 DNW ...
最新文章
- Camera 涉及的文件70
- JZOJ5918【NOIP2018模拟10.20】Car
- 新华三的背景_星际联盟一行莅临新华三集团杭州总部,展望分布式存储广阔发展空间...
- 郑州轻工业大学c语言考试题库,2016年郑州轻工业学院计算机与通信工程学院C语言程序设计考研复试题库...
- C++包含头文件时尖括号和双引号区别
- nginx 的启动、停止与重启
- 华为鸿蒙系统面对困难,华为鸿蒙面临的2个新困难
- mysql5.7改了配置文件怎么生效_如何找到并修改MySQL57的配置文件m
- 把数据对象转成字符串_R语言处理环境监测数据(2):时间数据处理
- 【Python的自学之路】(八):文字游戏分享
- 黑苹果系统是服务器系统,黑苹果各种版本的说明 _ 黑苹果乐园
- Android Storage Manager
- Ubuntu 20.04 修改IP地址
- 数据库入门_查询语句
- 2021-02-09
- java正则表达式多行匹配,正则表达式多行匹配 - Wangle_OP的个人空间 - OSCHINA - 中文开源技术交流社区...
- Vue nvm重装node和npm与vue3报错Emitted ‘error‘ event on ChildProcess instance at errno: -4058
- 几十个恶毒网站,不怕死的朋友请进
- wps中下划线怎么也去不掉_wps下划线怎么打(wps空白下划线怎么打不出来)
- java数独最快解_java快速解数独
热门文章
- 计算机电缆怎么做耐压试验,ZGF直流高压发生器进行电缆耐压试验的6个步骤
- webserver获取http请求方的服务器ip_光大科技基础设施团队剖析HTTP协议
- 在docker中构建普通java程序_Docker入门-构建第一个Java程序
- java object monitor_Java-线程状态、ObjectMonitor
- “万能钥匙”可以打开大脑:脑刺激个性化医疗的新领域
- 芯片开发者46%年收入达30万元,7纳米制程以内开发者30%超50万元
- 机器学习也能套模版:在线选择模型和参数,一键生成demo
- 帮初学者快速上手机器学习,这有一份Colab资源大全
- 各种AI模型拿来就能用!五大深度学习模型库大盘点
- 让一个人从照片中消失,从未如此简单 | AI应用体验