[文章]【鸿蒙IPC开发板开发板体验】3-固件烧录与helloworld测试

阅读量0
2
3

1 固件烧写

HiSpark IPC Camera烧写Harmony固件到flash可以采用两种方式:串口方式、USB方式

1.1 串口方式烧写(速度慢)

1.1.1 固件准备

上篇文章,对OpenHarmony源码进行了编译,得到了一写编译文件:

  • OHOS_Image.bin
  • 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.png

1.1.2 HiTool烧写

需要用到烧录工具HiTool

**下载HiTool **http://www.hihope.org/attached/upload/file/20210122/6374690988332532102301893.zip

选择对应的芯片型号

打开Hitool,选择HiBurn工具, 选择hi3518ev300芯片,选择对应的串口,然后选择刚才的xml文件,选择之后,剩余的4个待烧录的文件会自动显示在列表中:

2.png

先擦除

先点击擦除,注意下方的窗口要切换到“控制台”,擦除的时候会提示进行断电再上电,需要按提示操作

3.png

擦除成功,如下

4.png

然后点烧写,串口烧写的比较慢,要20分钟左右:

5.png

烧写完成后,还要修改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

6.png

然后再输入reset即可重启板子,重启之后,就可以看到板子进行系统了,可以使用ls指令查看一下系统文件:

7.png

1.2 USB方式烧写(速度快)

使用USB烧写,需要先安装对应USB驱动,如下:

8.png

注意,刚才用串口烧了程序后,USB驱动安装之后,也是识别不到了,需要先使用串口的方式将系统擦除,并且擦除之后,USB在电脑上的识别会出现跳动,这也是正常的(参考: https://ost.51cto.com/answer/5215),然后再使用USB的方式点击烧写即可。

USB烧写的速度较快,1分半左右:

9.png

烧录完之后,和串口烧录完一样,输入如下指令:

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程序测试

10.png

2.1 代码编写与编译

2.1.1 测试程序源码

11.png

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" ]
}

如下图

12.png

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": []
    }
}

如下图

13.png

2.1.4 修改config.json

添加如下内容:

{
    "subsystem": "applications",
    "components": [
        {
            "component": "my_hello_world",
            "features": []
        }
    ]
}

如下图

14.png

2.2 运行测试

2.2.1 编译

和编译源码一样,进行整个编译

hb set
hb build -f

编译完成之后,在bin文件会有一个hello可执行文件

15.png

2.2.2 烧录

和烧录镜像一样,将OHOS_Image.bin, rootfs_jffs2.img, userfs_jffs2.img三个文件拷贝出来,使用HiTool进行烧录。

16.png

烧录完成之后,仍然是那几条指令:

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

17.png

3 总结

本篇介绍了HiSpark IPC Camera,Hi3518固件的烧录方法,包括串口烧录与USB口烧录,然后介绍了第一个helloword程序的编写、编译与运行方法,最后成功执行了helloword程序

回帖

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。 侵权投诉
链接复制成功,分享给好友