新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > S3c2410軟件調試總結

        S3c2410軟件調試總結

        作者: 時間:2013-12-05 來源:網絡 收藏

        初始化串口
        串口統一選用UART0,模式采用115200、1bit STOP、No Parity。

        最后跳轉到我們自己的應用程序!

        附:我得程序所使用的地址空間結構以及MMU中C、B的設置:

        Blank Area: RW_FAULT 0x5b000000 ~ 0xffffffff

        Sram SFR: NCNB 0x40000000 ~ 0x4affffff

        Blank Area: RW_FAULT 0x34000000 ~ 0x3fffffff

        Int_Vec, Stack, MTT: CNB 0x33f00000 ~ 0x33ffffff

        SDRAM Download: NCNB 0x31000000 ~ 0x33efffff

        SDRAM Exec RW: CB 0x30800000 ~ 0x30ffffff

        SDRAM Exec R CNB 0x30000000 ~ 0x307fffff

        Bank5, FPGA: NCNB 0x28000000 ~ 0x2fffffff

        Bank4, FPGA: NCNB 0x20000000 ~ 0x27ffffff

        Bank3, Bottom NIC: NCNB 0x18000000 ~ 0x1fffffff

        Bank2, Bottom Flash: CNB 0x10000000 ~ 0x17ffffff

        Bank1, Bottom Sram: CNB 0x08000000 ~ 0x0fffffff

        Bank0, Flash or Sram: CNB 0x00000000 ~ 0x07ffffff


        Nor Flash Bootloader
        這是我著手寫的第一個程序,我的想法是讓這個程序同時支持通過串口對Nand 和 Nor FLASH的燒寫,如果不進行任何燒寫,那么就跳到Nor Flash的第二個section啟動應用程序,這樣一來,即使脫離JTGA,我也可以使用串口進行盲調。

        由于有現成的初始化文件和flash燒寫的示例程序,開發起來還比較快。當然也遇到了一些問題,一開始連flash的device ID都讀不出來,后來發現我指針沒有定義成volatile類型,flash的操作時序被編譯器優化了;再者,在對Nor Flash進行操作時,bank0在MMU中的類型一定要設為NCNB,這樣比較保險。

        遇到最大的問題就是下面的了,一開始我用jtag把程序下載到0x30000000的地方運行,對Nor Flash的燒寫完全正常,但是當把程序下載到Nor Flash中啟動運行后,再對Nor Flash的section 2進行燒寫時,就出現了問題。所幸沒多久我就意識到了問題,將程序放在Nor Flash中運行,同時有對同一片flash進行操作,那么操作時序勢必會被CPU的指令讀取時序所破壞,因此程序必須搬運到SDRAM中運行。

        但是啟動地址有必須是零地址,所以我采用了前文提到的scatter文件的方法,將非必要的代碼全部搬到sdram中運行,scf文件格式就是前文中的那個。當然采用了__main的入口,調用了ADS的鏈接庫,讓它幫忙建立程序的運行環境。

        至此,Nor Flash Bootloader可以順暢無憂的實現其功能了。


        上一頁 1 2 3 下一頁

        關鍵詞: S3c2410 軟件調試

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 浙江省| 苏尼特右旗| 新竹市| 乾安县| 怀宁县| 额敏县| 临高县| 白城市| 靖安县| 巴楚县| 达尔| 子洲县| 南康市| 巴东县| 锡林浩特市| 旺苍县| 隆回县| 松滋市| 桐城市| 汪清县| 阿鲁科尔沁旗| 金阳县| 鹤庆县| 汉源县| 神木县| 罗山县| 无极县| 水富县| 海宁市| 高陵县| 阳东县| 西藏| 沁阳市| 斗六市| 武定县| 长海县| 邢台县| 如东县| 班戈县| 墨脱县| 乌兰察布市|