<menu id="w8yyk"><menu id="w8yyk"></menu></menu>
  • <dd id="w8yyk"><nav id="w8yyk"></nav></dd>
    <menu id="w8yyk"></menu>
    <menu id="w8yyk"><code id="w8yyk"></code></menu>
    <menu id="w8yyk"></menu>
    <xmp id="w8yyk">
    <xmp id="w8yyk"><nav id="w8yyk"></nav>
  • 網站首頁 > 物聯資訊 > 技術分享

    flash文件制作筆記

    2016-09-28 00:00:00 廣州睿豐德信息科技有限公司 閱讀
    睿豐德科技 專注RFID識別技術和條碼識別技術與管理軟件的集成項目。質量追溯系統、MES系統、金蝶與條碼系統對接、用友與條碼系統對接

    在uboot串口臺輸入printenv 可以分區以及其他信息,如下

    hisilicon # printenv 
    bootdelay=1
    baudrate=115200
    ethaddr=00:00:23:34:45:66
    bootfile="uImage"
    UPDATE=netupdate JVS-HI3518ES-8188 0x83FFF000 0x780000 0x80000
    filesize=1B0000
    fileaddr=82000000
    netmask=255.255.255.0
    ipaddr=172.18.198.189
    serverip=172.18.198.141
    bootargs=mem=38M console=ttyAMA0,115200 root=/dev/mtdblock2 rootfstype=jffs2 mtdparts=hi_sfc:1M(boot),2M(kernel),3M(system),10M(application)
    sf=probe 0;sf read 0x82000000 0x100000 0x200000;bootm 0x82000000
    bootcmd=sf probe 0;sf read 0x82000000 0x100000 0x300000;bootm 0x82000000
    console=ttyAMA1
    stdin=serial
    stdout=serial
    stderr=serial
    verify=n
    ver=U-Boot 2010.06 (Nov 11 2014 - 18:15:12)
    Environment size: 626/65532 bytes

     

    我們可以看到分區信息:mtdparts=hi_sfc:1M(boot),2M(kernel),3M(system),10M(application)

    分別可以對應到Linux系統啟動后的/dev/mtdblock0  /dev/mtdblock1  /dev/mtdblock2  /dev/mtdblock3 

    如下:

    # ls  /dev/mtdblock* -l
    brw-rw----    1 adminlvj root       31,   0 Jan  1 00:00 /dev/mtdblock0
    brw-rw----    1 adminlvj root       31,   1 Jan  1 00:00 /dev/mtdblock1
    brw-rw----    1 adminlvj root       31,   2 Jan  1 00:00 /dev/mtdblock2
    brw-rw----    1 adminlvj root       31,   3 Jan  1 00:00 /dev/mtdblock3

    此時我們可以將各個分區存儲一一讀出來

    【flash讀命令】

    dd if=/dev/mtdblock0 of=u-boot.bin

    dd if=/dev/mtdblock1 of=kernel.img

    dd if=/dev/mtdblock2 of=rootfs.img

    dd if=/dev/mtdblock3 of=app 

     

    然后再將讀出來的分區文件進行拼接

    【文件拼接命令】

    dd if=u-boot.bin of=flash-burnfile.img

    dd if=kernel.img of=flash-burnfile.img bs=1k seek=1024

    dd if=rootfs.img of=flash-burnfile.img bs=1k seek=3072 

    dd if=app of=flash-burnfile.bin bs=1k seek=6144 

    拼接完成可以生成flash-burnfile.bin,這就是整個flash的bin文件,剛好16M。

     

    制作好的flash bin文件可以通過燒錄器燒寫到flash里面,也可以通過uboot進行整個flash的燒寫。


    【uboot燒寫命令】

    mw.b 0x82000000 ff 1000000;tftp 0x82000000 flash-burnfile.img;sf probe 0;sf erase 0x000000 0x1000000;sf write 0x82000000 0x000000 0x1000000;

    =====

    1000000 是16進制換算成10進制為16777216,16777216/1024/2014 = 16M ,即為整個Flash的大小 ;

    所以0x000000 0x1000000就是起始地址和燒寫的大小,先erase后write

    問題:0x82000000 這個值是什么意思,沒想明白,知道的回復一下博客,感謝!(本文是海思hi3518e平臺的學習筆記)

     

     

    【uboot燒寫注意事項】

    1、首先開啟tftp服務器,再將bin文件拷貝至服務器目錄。

    2、配置uboot參數:

     

    setenv ipaddr 172.18.198.189

    setenv serverip 172.18.198.201

    saveenv 

    3、一定要記得插上網線,配置完uboot參數后,ping一下tftp服務器IP172.18.198.201,檢查是否通。

    RFID管理系統集成商 RFID中間件 條碼系統中間層 物聯網軟件集成
    最近免费观看高清韩国日本大全