新聞中心

        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

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 长垣县| 宁化县| 正宁县| 上犹县| 麻栗坡县| 嘉兴市| 南投县| 沅陵县| 南安市| 宜州市| 巴青县| 阿城市| 朝阳县| 深圳市| 长治市| 利川市| 衡山县| 上饶县| 安化县| 祁门县| 兰坪| 武威市| 綦江县| 河源市| 郎溪县| 丹东市| 泾川县| 吴川市| 塘沽区| 巩义市| 连南| 遂昌县| 新兴县| 虹口区| 冕宁县| 芦溪县| 南澳县| 陆丰市| 盈江县| 都兰县| 阿拉善右旗|