色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          Redboot修改實(shí)例

          作者: 時(shí)間:2012-07-25 來(lái)源:網(wǎng)絡(luò) 收藏

          l) write (16'h00Fb, 16'h4444);

          m) write (16'h00Fc, 16'h3333);

          n) write (16'h00Fd, 16'h2222);

          o) write (16'h00Fe, 16'h1111);

          p) write (16'h00Ff, 16'h0000);

          以上16條命令將16個(gè)16bit的數(shù)據(jù)分別存入cpu_buffer的地址0xF0~0xFF。

          q) write (16'hf002, 16'h3c3f);

          r) write (16'hf001, 16'hffff);

          以上兩條命令將CPU_BUFFER_OFFSET設(shè)為0xF0,將SDRAM_ADDR (SDRAM_ADDR_H, SDRAM_ADDR_L)設(shè)置為0x3FFFFF。

          s) write (16'hf000, 16'h0073);

          將CPU_BURST_LENGTH設(shè)置為7(實(shí)際寫入為8),CPU_RW為“1”表示當(dāng)前操作為寫SDRAM,ACT為“1”表示立即啟動(dòng)當(dāng)前操作。

          t) read (16'hf000);

          讀取CONTROL_REG的數(shù)值,當(dāng)ACT為“0”時(shí),表示之前存入cpu_buffer 0xF0~0xFF的16個(gè)16bit的數(shù)據(jù),已經(jīng)被寫入SDRAM中起始地址為“0x3FFFFF”的連續(xù)的8個(gè)地址中(SDRAM的數(shù)據(jù)寬度為32bit)。

          main.c的

          這一部分的主要目的是為了提供三條控制臺(tái)命令“autoconfig”“update”“autoexec”。

          增加命令

          RedBoot_cmd(autoconfig,

          autoconfig

          ,

          do_autoconfig);

          RedBoot_cmd(update

          update,

          ,

          do_update);

          RedBoot_cmd(autoexec,

          autoExec,

          ,

          do_autoexec);

          增加函數(shù):

          void do_autoconfig(int argc, char *argv[])

          void do_update(int argc, char *argv[])

          void do_autoexec(int argc, char *argv[])

          增加全局變量

          configFlag

          updateFlag

          execFlag

          函數(shù)do_autoconfig()的主要內(nèi)容

          1. 設(shè)置configFlag為True

          2. 調(diào)用fconfig –i

          3. set Run script. at boot is false

          4. set Use BOOTP for network configuration: false

          5. set Gateway IP address

          6. set Local IP address

          7. set Local IP address mask

          8. Default server IP address

          9. set DNS server IP address

          10. eth0 network hardware address

          11. set GDB connection port

          12. 設(shè)置configFlag為Flash

          函數(shù)do_update()的主要內(nèi)容

          1. 設(shè)置updateFlag為True

          2. 調(diào)用fconfig -i

          3. 初始化Flash

          4. 更新zimage 到 /dev/mtdblock2

          5. 更新root 到 /dev/mtdblock2

          6. 更新usr 到 /dev/mtdblock2

          7. 更新config 到 /dev/mtdblock2

          8. 更新chip 到 /dev/mtdblock2

          9. 更新logo 到 /dev/mtdblock2

          10. 設(shè)置updateFlag為Flash

          函數(shù)do_autoexec()的主要內(nèi)容

          1. 設(shè)置execFlag為True

          2. 調(diào)用fconfig -i

          3. set Run script. at boot is true

          4. set Use BOOTP for network configuration: false

          5. set Gateway IP address

          6. set Local IP address

          7. set Local IP address mask

          8. Default server IP address

          9. set DNS server IP address

          10. eth0 network hardware address

          11. set GDB connection port

          12. 設(shè)置execFlag為Flash

          完成以上工作后,再對(duì)flash.c,io.c進(jìn)行相關(guān)便可生成redboot可執(zhí)行文件。注意,編譯代碼時(shí)最好使用arm-elf-gcc。


          上一頁(yè) 1 2 下一頁(yè)

          關(guān)鍵詞: 實(shí)例 修改 Redboot

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉