新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > Redboot修改實例

        Redboot修改實例

        作者: 時間:2012-07-25 來源:網絡 收藏

        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個16bit的數據分別存入cpu_buffer的地址0xF0~0xFF。

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

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

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

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

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

        t) read (16'hf000);

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

        main.c的

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

        增加命令

        RedBoot_cmd(autoconfig,

        autoconfig

        ,

        do_autoconfig);

        RedBoot_cmd(update

        update,

        ,

        do_update);

        RedBoot_cmd(autoexec,

        autoExec,

        ,

        do_autoexec);

        增加函數:

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

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

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

        增加全局變量

        configFlag

        updateFlag

        execFlag

        函數do_autoconfig()的主要內容

        1. 設置configFlag為True

        2. 調用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. 設置configFlag為Flash

        函數do_update()的主要內容

        1. 設置updateFlag為True

        2. 調用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. 設置updateFlag為Flash

        函數do_autoexec()的主要內容

        1. 設置execFlag為True

        2. 調用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. 設置execFlag為Flash

        完成以上工作后,再對flash.c,io.c進行相關便可生成redboot可執行文件。注意,編譯代碼時最好使用arm-elf-gcc。


        上一頁 1 2 下一頁

        關鍵詞: 實例 修改 Redboot

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 扶绥县| 贵阳市| 留坝县| 卫辉市| 安岳县| 平罗县| 灵台县| 普安县| 襄城县| 光山县| 石景山区| 鸡泽县| 炎陵县| 灌云县| 丹凤县| 霍邱县| 临夏县| 台安县| 佛冈县| 镇巴县| 白山市| 永顺县| 碌曲县| 大石桥市| 静安区| 临澧县| 化州市| 安多县| 呈贡县| 聂荣县| 兴宁市| 电白县| 鱼台县| 南充市| 韶山市| 梁山县| 道真| 琼海市| 锡林郭勒盟| 南宁市| 缙云县|