鸿蒙IPC开发板-固件烧录与helloworld测试
1 固件烧写
HiSpark IPC Camera烧写Harmony固件到flash可以采用两种方式:串口方式、USB方式
1.1 串口方式烧写(速度慢)
1.1.1 固件准备
上篇文章,对OpenHarmony源码进行了编译,得到了一写编译文件:
-
-
rootfs_jffs2.img
-
userfs_jffs2.img
uboot是没有编译的,可以去润和官网下载u-boot-hi3518ev300.bin文件
然后准备一个分区文件ipcamera_hi3518.xml,输入以下内容:
<?xml version="1.0" encoding="GB2312" ?>
<Partition_Info ProgrammerFile="">
<Part Sel="1" PartitionName="fastboot" FlashType="spi" FileSystem="none" Start="0" Length="1M" SelectFile="u-boot-hi3518ev300.bin"/>
<Part Sel="1" PartitionName="ohos_image" FlashType="spi" FileSystem="none" Start="1M" Length="6M" SelectFile="OHOS_Image.bin"/>
<Part Sel="1" PartitionName="rootfs" FlashType="spi" FileSystem="none" Start="7M" Length="8M" SelectFile="rootfs_jffs2.img"/>
<Part Sel="1" PartitionName="userfs" FlashType="spi" FileSystem="none" Start="15M" Length="1M" SelectFile="userfs_jffs2.img"/>
</Partition_Info>
然后将这个4个文件放在一起,准备烧录
1.1.2 HiTool烧写
需要用到烧录工具HiTool
下载HiTool http://www.hihope.org/attached/upload/file/20210122/6374690988332532102301893.zip
选择对应的芯片型号
打开Hitool,选择HiBurn工具, 选择hi3518ev300芯片,选择对应的串口,然后选择刚才的xml文件,选择之后,剩余的4个待烧录的文件会自动显示在列表中:
先擦除
先点击擦除,注意下方的窗口要切换到“控制台”,擦除的时候会提示进行断电再上电,需要按提示操作
擦除成功,如下
然后点烧写,串口烧写的比较慢,要20分钟左右:
烧写完成后,还要修改U-boot的bootcmd及bootargs内容,下方窗口切换到终端,并选择对应的串口后连接成功后,输入以下语句到终端:
setenv bootargs "console=ttyAMA0,115200n8 root=flash fstype=jffs2 rw rootaddr=7M rootsize=8M";
setenv bootcmd "sf probe 0;sf read 0x40000000 0x100000 0x600000;go 0x40000000";
saveenv
然后再输入reset即可重启板子,重启之后,就可以看到板子进行系统了,可以使用ls指令查看一下系统文件:
1.2 USB方式烧写(速度快)
使用USB烧写,需要先安装对应USB驱动,如下:
注意,刚才用串口烧了程序后,USB驱动安装之后,也是识别不到了,需要先使用串口的方式将系统擦除,并且擦除之后,USB在电脑上的识别会出现跳动,这也是正常的,然后再使用USB的方式点击烧写即可。
USB烧写的速度较快,1分半左右:
烧录完之后,和串口烧录完一样,输入如下指令:
setenv bootargs "console=ttyAMA0,115200n8 root=flash fstype=jffs2 rw rootaddr=7M rootsize=8M";
setenv bootcmd "sf probe 0;sf read 0x40000000 0x100000 0x600000;go 0x40000000";
saveenv
reset
2 HelloWorld程序测试
2.1 代码编写与编译
2.1.1 测试程序源码
2.1.2 BUILD.gn文件
新建BUILD.gn文件,写入如下内容:
import("//build/lite/config/component/lite_component.gni")
lite_component("hello-OpenHarmony") {
features = [ ":hello" ]
}
executable("hello") {
output_name = "hello"
sources = [ "hello.c" ]
}
如下图
2.1.3 修改application.json
添加如下内容:
{
"component": "my_hello_world",
"description": "hello world test",
"optional": "true",
"dirs": [
"applications/sample/hello"
],
"targets": [
"//applications/sample/hello:hello-OpenHarmony"
],
"rom": "",
"ram": "",
"output": [],
"adapted_kernel": [
"liteos_a"
],
"features": [],
"deps": {
"components": [],
"third_party": []
}
}
如下图
2.1.4 修改config.json
添加如下内容:
{
"subsystem": "applications",
"components": [
{
"component": "my_hello_world",
"features": []
}
]
}
如下图
2.2 运行测试
2.2.1 编译
和编译源码一样,进行整个编译
hb set
hb build -f
编译完成之后,在bin文件会有一个hello可执行文件
2.2.2 烧录
和烧录镜像一样,将OHOS_Image.bin, rootfs_jffs2.img, userfs_jffs2.img三个文件拷贝出来,使用HiTool进行烧录。
烧录完成之后,仍然是那几条指令:
setenv bootargs "console=ttyAMA0,115200n8 root=flash fstype=jffs2 rw rootaddr=7M rootsize=8M";
setenv bootcmd "sf probe 0;sf read 0x40000000 0x100000 0x600000;go 0x40000000";
saveenv
reset
2.2.3 测试
进入系统,运行bin目录下的hello
3 总结
- 点赞
- 收藏
- 关注作者
评论(0)