系统配置文件路径: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核心板开发笔记(一):编译及烧写方式相关推荐

  1. FL2440(S3C2440A 芯片) 开发板开发笔记

    FL2440(S3C2440A 芯片) 开发板开发笔记 开发板的拨码开关指南: FL2440 改 vnfg 飞凌嵌入式 www. witech. com. cn 09. 8. 22 1 开发板使用手册 ...

  2. DevEBox STM32F4x1开发板 设置MicroPython STM32F401CC/TM32F411CE STM32F4x1 核心板 开发板 MicroPython

    ▌01 STM32F4x1开发板 STM32F401CC/TM32F411CE STM32F4x1 核心板 开发板 MicroPython .下面测试一下这款基于STM32F401的模块是否可以下载M ...

  3. 启明云端基于sigmastarSSD201/202核心板\开发板资料分享地址,另外还可以加入技术沟通群聊,及时解决相关技术问题!

    基于sigmastarSSD201/202核心板\开发板 购买链接: https://item.taobao.com/item.htm?id=631665290641 基于20X核心板开发的板子有4. ...

  4. 开发板_Hi3516DV300核心板/开发板;Hi3516EV100+4G+AUDIO RTMP开发板;海思系列开发板/核心板定制开发...

    1.海思Hi3516DV300核心板/开发板 一,芯片参数 1. 处理器内核 *双核ARM Cortex-A7@ 900MHz,32KB I-Cache,32KB D-Cache,256KB L2 C ...

  5. 嵌入式linux/鸿蒙开发板(IMX6ULL)开发流程(六)烧写整个系统或更新部分系统

    文章目录 1.烧写整个系统或更新部分系统 1.1 100ASK_IMX6ULL启动开关 1.2 在Windows使用USB烧写工具 1.2.1 烧写工具目录详解 1.2.2 连接USB OTG线 1. ...

  6. A33_Vstar_Android_SDK开发 编译及烧写遇到的问题【汇总】

    A33_Vstar_Android_SDK开发 遇到的问题 整理一下Android SDK编译及烧写的时候,遇到的问题和解决的办法 问题1  .tar.bz2文件解压命令 解决办法: .tar.gz  ...

  7. M5Stack(ESP32)学习笔记(9)—— 编译并烧写M5Stack的MicroPython固件

    UIFlow是个挺不错的编程环境,适合新手学习.它基于MicroPython(Lobo版本),也可以脱离UIFlow的IDE来用Python编程.但是把玩了几天后,我发现M5Stack的原配UIFlo ...

  8. Uboot初次编译、烧写、启动(启动界面log简析)

    目录 U-Boot 初次编译 U-Boot 烧写与启动 上述笔记第三点就是建立shell脚本实现的 第四点就是修改Makefile文件实现的,下面均有实现步骤讲解. U-Boot 初次编译 先编译体验 ...

  9. S5PV210开发 -- 通过 DNW、fastboot 烧写

    如需转载请注明出处:https://blog.csdn.net/qq_29350001/article/details/78364548 这个烧写过程真是一波三折啊,足足搞了两天才实现  通过 DNW ...

最新文章

  1. Camera 涉及的文件70
  2. JZOJ5918【NOIP2018模拟10.20】Car
  3. 新华三的背景_星际联盟一行莅临新华三集团杭州总部,展望分布式存储广阔发展空间...
  4. 郑州轻工业大学c语言考试题库,2016年郑州轻工业学院计算机与通信工程学院C语言程序设计考研复试题库...
  5. C++包含头文件时尖括号和双引号区别
  6. nginx 的启动、停止与重启
  7. 华为鸿蒙系统面对困难,华为鸿蒙面临的2个新困难
  8. mysql5.7改了配置文件怎么生效_如何找到并修改MySQL57的配置文件m
  9. 把数据对象转成字符串_R语言处理环境监测数据(2):时间数据处理
  10. 【Python的自学之路】(八):文字游戏分享
  11. 黑苹果系统是服务器系统,黑苹果各种版本的说明 _ 黑苹果乐园
  12. Android Storage Manager
  13. Ubuntu 20.04 修改IP地址
  14. 数据库入门_查询语句
  15. 2021-02-09
  16. java正则表达式多行匹配,正则表达式多行匹配 - Wangle_OP的个人空间 - OSCHINA - 中文开源技术交流社区...
  17. Vue nvm重装node和npm与vue3报错Emitted ‘error‘ event on ChildProcess instance at errno: -4058
  18. 几十个恶毒网站,不怕死的朋友请进
  19. wps中下划线怎么也去不掉_wps下划线怎么打(wps空白下划线怎么打不出来)
  20. java数独最快解_java快速解数独

热门文章

  1. 计算机电缆怎么做耐压试验,ZGF直流高压发生器进行电缆耐压试验的6个步骤
  2. webserver获取http请求方的服务器ip_光大科技基础设施团队剖析HTTP协议
  3. 在docker中构建普通java程序_Docker入门-构建第一个Java程序
  4. java object monitor_Java-线程状态、ObjectMonitor
  5. “万能钥匙”可以打开大脑:脑刺激个性化医疗的新领域
  6. 芯片开发者46%年收入达30万元,7纳米制程以内开发者30%超50万元
  7. 机器学习也能套模版:在线选择模型和参数,一键生成demo
  8. 帮初学者快速上手机器学习,这有一份Colab资源大全
  9. 各种AI模型拿来就能用!五大深度学习模型库大盘点
  10. 让一个人从照片中消失,从未如此简单 | AI应用体验