<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>
  • 網站首頁 > 物聯資訊 > 技術分享

    嵌入式 uboot、fs、kernel制作和燒錄簡記-hi3518c

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

    NULL RAM :

    mkdir ramdisk_test  臨時掛在點

    dd if=/dev/zero of=rootfs.ramdisk bs=1k count=10000 建立空硬盤//15000(15M)

    losetup /dev/loop0 rootfs.ramdisk 掛在臨時硬盤

    mke2fs -m 0 /dev/loop0 格式化此硬盤

    mount –t ext2 rootfs.ramdisk ./ramdisk/ramdisk_test/

    cp -rf ./rootfs_uclibc/* ./ramdisk/ramdisk_test/ 拷貝文件系統

    (umount ramdisk_test(rootfs.ramdisk---ramdisk-real))

     

    默認:

    使用tftp之前要對uboot-env中的ipaddr和serverip(宿主機local-host)進行設置
    {
     setenv ipaddr 10.10.1.242
     setenv serverip 10.10.1.103
    }


    setenv bootargs mem=64M console=ttyAMA0,115200 root=/dev/mtdblock4 rootfstype=jffs2 mtdparts=hi_sfc:256k(boot)ro,128k(env),128k(conf),3072k(os),12800k(rootfs)


    ramdisk啟動:

    (12M)setenv bootargs mem=64M console=ttyAMA0,115200 root=/dev/ram0 rw ramdisk=32768 initrd=0x82500000,10M init=/linuxrc mtdparts=hi_sfc:256k(boot)ro,128k(env),128k(conf),3072k(os),12800k(rootfs);tftp 0x82500000 rootfs.ramdisk;tftp 0x82000000 uImage

    (16M)setenv bootargs mem=64M console=ttyAMA0,115200 root=/dev/ram0 rw ramdisk=32768 initrd=0x82500000,16M init=/linuxrc mtdparts=hi_sfc:256k(boot)ro,128k(env),128k(conf),3072k(os),16384k(rootfs);tftp 0x82500000 rootfs.ramdisk;tftp 0x82000000 uImage

    nfs啟動

     

    tftp uclibc_64k.jffs2
    sf probe 0
    sf erase 0x380000 0x600000
    sf write 0x80008000 0x380000 0x500000

     


    bootcmd sf probe 0\;sf read 0x82000000 0x80000 0x300000\;bootm 0x82000000

     

     

    setenv spi_boot setenv bootargs mem=64M console=ttyAMA0,115200 root=/dev/mtdblock4 rootfstype=jffs2 mtdparts=hi_sfc:256k(boot)ro,128k(env),128k(conf),3072k(os),12800k(rootfs)\;sf probe 0\;sf read 0x82000000 0x80000 0x300000\;bootm 0x82000000


    模組Uboot-info:ov9712

    bootdelay=1
    baudrate=115200
    netmask=255.255.255.0
    bootfile="uImage"
    ipaddr=192.168.2.100
    serverip=192.168.2.15
    ethaddr=00:01:02:03:04:05
    bootargs=mem=64M console=ttyAMA0,115200 root=/dev/mtdblock4 rootfstype=jffs2 mtdparts=hi_sfc:256k(boot)ro,128k(env),128k(conf),3072k(os),3584k(rootfs),9088k(home),128k(vd)
    bootcmd=sf probe 0;sf read 0x82000000 0x80000 0x300000;bootm 0x82000000
    stdin=serial
    stdout=serial
    stderr=serial
    verify=n
    ver=U-Boot 2010.06 (Jan 05 2013 - 18:34:21)

    Environment size: 475/131068 bytes

     

    setenv bootargs 'mem=64M console=ttyAMA0,115200 root=/dev/mtdblock4 rootfstype=jffs2 mtdparts=hi_sfc:256k(boot)ro,128k(env),128k(conf),3072k(os),12800k(rootfs)'


    sf probe 0;sf erase 0x0 0x80000;sf write 0x82000000 0x0 0x80000;
    燒錄內核:
        sf probe 0;mw.b 82000000 ff 300000;tftp 82000000 uImage;sf erase 80000 300000;sf write 82000000 80000 300000
       //mw.b表示按字節顯示  mw: 對RAM中的內容寫操作, mw 32000000 ff 10000(把內存0x32000000開始的0x10000字節設為0xFF)
       
       
    燒錄文件系統:
        sf probe 0 ;mw.b 82000000 ff C80000 ;tftp 82000000 rootfs_64k.jffs2;sf erase 380000 C80000 ;sf write 82000000 380000 C80000
        注:15M文件系統的時候偏移量是F00000 12M(C80000 )
        
    文件系統制作:
        
        以前的內核系統支持的是yaffs文件系統,現在使用的是yaffs2文件系統,因此需要不同的制作工具,我們在此把它稱為mkyaffs2image,按照上面的命令解壓后它會被安
    裝到/usr/sbin目錄下,并產生2個文件:mkyaffs2image 和mkyaffs2image-128M。

    yaffs:
      
       #mkyaffs2image root_qtopia root_qtopia.img
       
    cramfs:
       
       ./mkcramfs _install rootfs.cramfs
       
       
       
      uboot env:ar0130
      
      
    jffs2:
    mkfs.jffs2 -d ./rootfs -l -e 0x20000 -o jffs2-root.img (128K)

    (qy)mkfs.jffs2 -d ./joseph_rootfs/ -l -e 0x10000 -o rootfs_kj_last.jffs2 (64K)


    設置好之后直接下載對應文件系統就可以在內存中運行文件系統了:
    tftp rootfs.ramdisk

     

    注:使用串口工具進行燒錄的時候把tftp改成loadb

     ubootenv:
      setenv bootargs mem=64M console=ttyAMA0,115200 root=/dev/mtdblock3 rootfstype=jffs2 mtdparts=hi_sfc:256k(boot)ro,256k(env),3584k(kernel),11264k(rootfs)
     kernel:
        sf probe 0;mw.b 82000000 ff 300000;loadb 0x82000000;sf erase 80000 300000;sf write 82000000 80000 300000
        
        
     HI3518C(最終的):
     Spi(cs1): 
     Block:64KB 
     Chip:16MB 
     Name:"W25Q128B"
     spi size: 0x16777216
     chip num: 1
     5 cmdlinepart partitions found on MTD device hi_sfc
     Creating 5 MTD partitions on "hi_sfc":
     0x000000000000-0x000000040000 : "boot"
     0x000000040000-0x000000060000 : "env"
     0x000000060000-0x000000080000 : "config"
     0x000000080000-0x000000380000 : "kernel"
     0x000000380000-0x000000e80000 : "rootfs"
     Fixed MDIO Bus: probed

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