[文章]鸿蒙OS源码结构及编译烧写(二)

阅读量0
0
1
USB烧写方式
       步骤 1    安装USB驱动。
请参考发布包中上海海思U-boot配置文档《HiBurn 工具使用指南》,安装USB驱动,文档存放于ReleaseDoc目录内。 USB驱动安装成功图
15.png
       步骤 2    确认Hi3518EV300单板内含有USB下载功能的U-boot版本,若不支持,请将上海海思提供的最新U-boot文件烧入板中。
在U-boot界面输入"help"命令并回车,查看结果中是否存在u***tftp命令。
确认U-boot支持USB下载
16.png
       步骤 3    按标号,确认如下内容。 USB口烧写配置图
17.png
1.     选择芯片标号为“Hi3518EV300”。
2.     选择"DDR烧写"。
3.     传输方式选择"USB口"
4.     选择需要烧写的文件路径(路径包含harmony_Image.bin和rootfs.img文件)。
5.     点击“启动烧写”。
      步骤  4    启动烧写后,弹出界面,等待单板侧烧入。烧写开始图
18.png
      步骤  5    单板侧输入命令烧写harmony_Image.bin及rootfs.img文件,文件大小参数请参考“串口烧写”步骤2。 USB口烧写命令
  
执行命令
  
sf probe 0; mw.b 40000000 ff a00000;  u***tftp 40000000 rootfs.img; sf erase 600000 a00000; sf write 40000000 600000  a00000; mw.b 40000000 ff 500000;u***tftp 0x40000000 harmony_Image.bin; sf  erase 100000 500000; sf write 40000000 100000 500000;
  
命令解释
  
命令原理,使用USB口将文件读取到内存,再从内存中读取写入FLASH中。sf probe 0;表示选择FLASH器件0。
写入rootf.img文件,mw.b 40000000 ff a00000,清空0x40000000开始,大小为0xa00000字节的空间。u***tftp 40000000 rootfs.img 将rootfs.img文件写入0x40000000的内存地址。sf erase 600000 a00000; sf  write 40000000 600000 a00000; 擦除0x600000开始的大小为0xa00000字节的FLASH空间,并将内存中起始地址为0x40000000,大小为0xa00000字节的数据复制到0x600000起始地址,大小为0xa00000字节的FLASH空间上。
写入harmony_Image.bin文件,mw.b 40000000 ff 500000,清空0x40000000开始,大小为0x500000字节的空间。u***tftp 40000000  harmony_Image.bin 将rootfs.img文件写入0x40000000的内存地址。sf erase 100000 500000; sf write 40000000 100000 500000; 擦除0x100000开始的大小为0x500000字节的FLASH空间,并将内存中起始地址为0x40000000,大小为0x500000字节的数据复制到0x100000起始地址,大小为0x500000字节的FLASH空间上。

      步骤  6    烧写成功后显示Written:OK
----结束
镜像运行
步骤 1    连接串口:前步骤烧入成功后使用串口工具IPOP连接单板串口,输入回车,串口将显示"hisilicon #"字样。
步骤 2    修改U-boot的bootcmd及bootargs内容:该步骤为固化操作,可保存执行结果,若U-boot重新烧入,则需要再次执行。
表8-2 U-boot修改参数解释
  
执行命令
  
setenv bootcmd "sf probe 0;sf read  0x40000000 0x100000 0x500000;"; setenv bootargs  "console=ttyAMA0,115200n8 root=flash fstype=jffs2 rw rootaddr=6M  rootsize=10M",go 0x40000000;;  saveenv;
  
命令解释
  
setenv  bootcmd "sf probe 0;sf read 0x40000000 0x100000 0x500000;"表示选择FLASH器件0,读取FLASH起始地址为0x100000,大小为0x500000的内容到0x40000000的内存地址。
setenv  bootargs "console=ttyAMA0,115200n8 root=flash fstype=jffs2 rw  rootaddr=6M rootsize=10M";  表示设置bootargs为串口输出,rootfs挂载在FLASH上,文件系统类型为jffs2 rw,以支持可读写JFFS2文件系统。
“rootaddr=6M rootsize=10M处对应填入实际rootfs.img的烧写起始位置与长度,此处应与HiTool新增文件时所填大小相同。
[可选]“go 0x40000000默认配置已将指令固化在启动参数中,单板复位后可自动启动。若想切换为手动启动,可在U-boot启动倒数阶段使用"回车"打断自动启动。
saveenv;表示保存当前配置。

步骤 3   若步骤2中使用回车打断自启动,需在U-boot的命令行中,输入go 0x40000000指令,启动内核进程,启动成功如下图。 系统启动图
19.png
步骤 4    根目录下,在命令行输入指令“./usr/bin/helloworld”执行写入的demo程序,显示成功结果如下图所示,该文件生成请参考应用程序编译。应用程序启动图
20.png
----结束

网络烧写方式
该方法只适合支持网口的单板(例如Hi3516DV300),且PC主机必须与单板用网线连接并配置在于同一网络中。
21.png
22.png
23.png
24.png
25.png
33.png
26.png
27.png
28.png
30.png
31.png
32.png
作者:疯壳
注:文档和视频中所有的图片及代码截图皆为示意图,具体以HarmonyOS官网发布内容为准。

回帖

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