大型门户网站设计,共享ip网站 排名影响,网站建设 做个网上商城要多少钱啊,asp.net网站开发百科1.烧录工具理解HarmonyOS驱动框架#xff0c;用户态APP和内核态驱动之间的通信机制。HarmonyOS烧录使用的海思自研的烧录工具Hitool#xff0c;使用起来相对来说比较简单。整体界面如图所示#xff1a;2. 烧录内容烧录内容主要分为两部分#xff0c;一部分是引导文件fastbo… 1.烧录工具理解HarmonyOS驱动框架用户态APP和内核态驱动之间的通信机制。HarmonyOS烧录使用的海思自研的烧录工具Hitool使用起来相对来说比较简单。整体界面如图所示2. 烧录内容烧录内容主要分为两部分一部分是引导文件fastboot烧录另一部分为项目文件烧录。这些文件分别是OHOS_Image.bin可执行文件,rootfs.img和userfs.img镜像文件。3. 烧录方法本文以sample_test demo 为例讲解烧录方法开发板类型是Hi3516DV300.烧录的第一步是打开Hitool工具选择对应的芯片类型。如果你的开发板使用的是Hi3518ev300的请选择对应的芯片。3.1 串口烧录3.1.1 fastboot烧录Hiburn请按照如图进行设置① 我手上用的开发板是Hi3516DV300的它的外挂flash是spi nor类型的你们自己的设置请根据实际情况确定。② 本示例所用的串口设备计算机识别成COM1你们做开发时请设置成相应的端口号。③ 烧录方式选择fastboot。Uboot所在目录(如果uboot不能正常启动请从其他地方寻找相对老一点的版本uboot)点击开始烧录开发板电源拔掉并重新接上。烧写成功后打开终端连接串口可以进入hisilion命令行。3.1.2 应用文件烧录3.1.2.1 Hitool设置首先软件的设置如下图所示请参考图例正确设置这里面比较重要的就是开始地址和文件长度的确定这个部分的规则如下① Uboot占用了1M的存储空间所以OHOS_Image.bin的开始地址是1M② 文件大小不足1M的取值1M比如本示例中OHOS_Image.bin的大小是5656kbHiburn中它的长度设置为6M。所以rootfs.img烧录的起始地址是1M 6M 7M。③ 其余情况以此类推。本示例中各文件长度如下图所示3.1.2.2 断开串口开始烧录前首先先断开打印信息的串口链接把串口腾出来给烧录器使用。3.1.2.3 开始烧录点击“烧写”并给开发板重新上电烧录就开始了。16M的文件用串口11500bps的烧写速度是需要花费一段时间的所以系统及应用文件的烧录一般不建议使用串口。烧录过程截图烧写完成耗时28分钟。3.2 网口烧录本示例网口烧录硬件设备使用的是UGREEN的usb转RJ45网线接口仅供参考。3.2.1 网口增加IP地址首先为开发板互联网口添加IP地址192.168.1.3增加方法如下控制面板中找到与单板连接的网卡右键打开属性。选择Internet协议版本4(TCP/IPv4)。按图配置IP地址和网关。点击“确定”完成配置保存。3.2.2 单板IP配置单板与PC间连接串口后将单板上电自动进入U-boot按键盘回车键可在命令窗口输入命令为单板配置192.168.1.10的IP地址并指定192.168.1.3的服务器IP地址命令如下。setenv serverip 192.168.1.3setenv ipaddr 192.168.1.10saveenv配置完成后使用pri命令确认查看配置结果如下图所示。检查网络在PC端使用ping命令确定单板与PC的网络命令为ping 192.168.1.3。3.2.3 断开串口开始烧录前首先先断开打印信息的串口链接把串口腾出来给烧录器使用。3.2.4 配置Hitool并烧录Hitool配置如下请参考。配置完成后点击烧录。烧录成功截图3.2.5 网口烧录的命令分析网口烧录的命令删去中间的细节输出整理如图所示start download process.Boot started successfully!Send command:getinfo versionversion: U-Boot 2016.11[EOT](OK)Send command:sf probe 0//选择spi flash 0[EOT](OK)Send command:getinfo spiBlock:64KB Chip:16MB*1ID:0xC2 0x20 0x18Name:MX25L128XX[EOT](OK)waiting phy ready, it will take 8s.Send command:setenv serverip 192.168.1.3[EOT](OK)Send command:setenv ethaddr 00:8c:55:07:b0:88[EOT](OK)Send command:setenv ipaddr 192.168.1.10[EOT](OK)Send command:setenv netmask 255.255.255.0[EOT](OK)Send command:setenv gatewayip 192.168.1.1[EOT](OK)Tftp server Download Home switched to Send command:mw.b 0x81000000 0xFF 0x590000//把内存中从0x81000000 开始的0x590000个字节全部置1[EOT](OK)Send command:tftp 0x81000000 OHOS_Image.bin//把OHOS_Image.bin文档加载到内存中去起始地址为0x81000000.Hisilicon ETH net controlereth0 : phy status change : LINKUP : DUPLEXFULL : SPEED100MUsing eth0 deviceTFTP from server 192.168.1.3; our IP address is 192.168.1.10Filename OHOS_Image.bin.Load address: 0x81000000Bytes transferred 5791744 (586000 hex)[EOT](OK)Send command:crc32 81000000 586000crc32 for 81000000 ... 81585fff 78b90ed7[EOT](OK)Send command:sf probe 0//选择spi flash 0[EOT](OK)Send command:sf erase 0x100000 0x600000//把flash存储器中从0x100000开始的6M字节的存储空间清零。Send command:sf write 0x81000000 0x100000 0x590000//把内存中从0x81000000开始的0x590000字节的内容copy到flash中flash中存储的起始地址是0x100000device 0 offset 0x100000, size 0x590000Send command:mw.b 0x81000000 0xFF 0x780000//把内存中从0x81000000 开始的0x780000个字节全部置1[EOT](OK)Send command:tftp 0x81000000 rootfs.img//加载rootfs.img到内存中去存储单位的起始地址是0x81000000Hisilicon ETH net controlereth0 : phy status change : LINKUP : DUPLEXFULL : SPEED100MUsing eth0 deviceTFTP from server 192.168.1.3; our IP address is 192.168.1.10Filename rootfs.img.Send command:crc32 81000000 772314crc32 for 81000000 ... 81772313 ba26d341[EOT](OK)Send command:sf probe 0//选择spi flash 0[EOT](OK)Send command:sf erase 0x700000 0x800000//把flash存储器中从0x700000开始的8M字节的存储空间清零。Send command:sf write 0x81000000 0x700000 0x780000//把内存中从0x81000000开始的0x780000字节的内容copy到flash中flash中存储的起始地址是0x700000device 0 offset 0x700000, size 0x780000Send command:mw.b 0x81000000 0xFF 0x10000//把内存中从0x81000000 开始的0x10000个字节全部置1[EOT](OK)Send command:tftp 0x81000000 userfs.img//加载userfs.img到内存中去存储单位的起始地址是0x81000000Hisilicon ETH net controlereth0 : phy status change : LINKUP : DUPLEXFULL : SPEED100MUsing eth0 deviceTFTP from server 192.168.1.3; our IP address is 192.168.1.10Filename userfs.img.Load address: 0x81000000Loading: *## 0 Bytes/sdoneBytes transferred 3020 (bcc hex)[EOT](OK)Send command:crc32 81000000 bcccrc32 for 81000000 ... 81000bcb 0361fc92[EOT](OK)Send command:sf probe 0//选择spi flash 0[EOT](OK)Send command:sf erase 0xf00000 0x100000//把flash存储器中从0xF00000开始的1M字节的存储空间清零。Send command:sf write 0x81000000 0xf00000 0x10000//把内存中从0x81000000开始的0x10000字节的内容copy到flash中flash中存储的起始地址是0xf00000device 0 offset 0xf00000, size 0x10000Writing at 0xf10000 -- 100% complete.SF: 65536 bytes 0xf00000 Written: OK[EOT](OK)Partition burnt successfully!Send command:resetreset success!Partition burnt completed!Serial channels were closed successfully.3.3 USB烧录硬件使用的双母口USB线。3.3.1 Hitool工具配置文件目录中只要包含OHOS_Image.bin,rootfs.img,userfs.img三个文件即可不限定位置。烧写方式一定要选择DDR烧写。3.3.2 烧录步骤3.3.2.1 烧录OHOS_Image.bin文件在串口终端中输入以下命令每条命令的具体含义请参考网口烧录相关部分的描述mw.b 0x80000000 0xff 0x600000;// 0x600000就是OHOS_Image.bin所占的空间(取整)usbtftp 0x80000000 OHOS_Image.bin;sf probe 0;sf erase 0x100000 0x600000;sf write 0x80000000 0x100000 0x600000;//起始地址为0x100000如果是Hi3518ev300的板子请把命令中的0x80000000改成0x40000000。3.3.2.2 烧录rootfs.img文件在串口终端中输入以下命令每条命令的具体含义请参考网口烧录相关部分的描述mw.b 0x80000000 0xff 0x800000;//0x800000就是rootfs.img所占的空间(取整)usbtftp 0x80000000 rootfs.img;sf probe 0;sf erase 0x700000 0x800000;sf write 0x80000000 0x700000 0x800000;//起始地址为0x100000 0x600000 0x700000如果是Hi3518ev300的板子请把命令中的0x80000000改成0x40000000。 3.3.2.3 烧录userfs.img文件在串口终端中输入以下命令每条命令的具体含义请参考网口烧录相关部分的描述mw.b 0x80000000 0xff 0x100000;//0x100000就是userfs.img所占的空间(取整)usbtftp 0x80000000 userfs.img;sf probe 0;sf erase 0xf00000 0x100000;sf write 0x80000000 0xf00000 0x100000;//起始地址为0x100000 0x600000 0x800000 0xf00000如果是Hi3518ev300的板子请把命令中的0x80000000改成0x40000000。3.3.2.4 烧录过程中控制台信息4. 开源板emmc烧录烧录的时候选择eMMC方式。我们这里选择通过网口烧录eMMC网口的配置参考上文。烧录完成之后uboot的启动命令还有所不同在eMMC中存储是以512B为单位的如果我们的文件(比如是OHOS_Image.bin)大小为6M(10进制)我们需要把它转换成16进制具体转换的公式如下10进制中文件总大小6* 1024 * 1024 Byte6291456Byte那么总共是多少个512KB的块呢我们用6291456/512 12288个块(十进制)再把十进制中的12288个块转换成16进制得0x3000。那么也就是说一共有0x3000个512Byte的块。setenv bootcmd sf probe 0;mmc read 0x0 0x80000000 0x800 0x3000;;setenv bootargs consolettyAMA0,115200n8 rootemmc fstypevfat rootaddr7M rootsize15M rw; saveenv;5. 不同烧录方法之间的比较Usb烧录方式和网口烧录方式想象不同之处比较如下烧录方式文件导入命令内存起始地址命令输入方式校验环节Usb烧录usbtftp0x80000000手工无网口烧录tftp0x81000000自动有网口烧录和USB烧录的速度基本是相同的相比之下串口烧录就太慢了所以正常情况下不推荐串口烧录。综上比较只从效率的角度看烧录器的选择优先级为网口烧录 USB 烧录串口烧录6. 其他问题我们现在用的开发板Flash只有16M如果程序过大则无法进行烧录。所以做项目的时候外挂的flash尽可能大一些留有足够的预备空间。