新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 2440啟動步驟

        2440啟動步驟

        作者: 時間:2016-11-21 來源:網絡 收藏
        S3C2440支持兩種啟動方式:NAND FLASH和NOR FLASH。

        網上有很多文章分析TQ2440的啟動文件2440init.s。介紹的很詳細,我這里只是把S3C2440上電后的程序流程描述下。
        不管在哪種啟動方式下,ARM上電啟動都是從0X00000000開始運行。下面是復位程序入口。
        AREA Init,CODE,READONLY
        ENTRY
        ResetEntry
        b ResetHandler
        ……
        ResetEntry的值在ARM上電運行時是0X00000000,在JTAG仿真時是0X30000000。這個值很關鍵,在拷貝程序時會用到。
        從NAND FLASH啟動時,在ARM上電時,ARM會自動把NAND FLASH前4K的內容拷貝到S3C2440內部SRAM中,同時把SRAM的地址映射到0X00000000。ARM上電后會從SRAM處開始運行。
        從NOR FLASH啟動時,因為NOR FLASH接在bank0。地址映射是0X00000000。所以ARM上電后直接運行NOR FLASH里的程序。此時S3C2440內部SRAM地址為0X40000000。

        本文引用地址:http://www.104case.com/article/201611/319273.htm

        在ARM上電的情況下,流程如下:
        1、 關閉看門狗,關閉所有中斷。
        2、 設置系統工作頻率,FCLK,HCLK,PCLK,UCLK。
        3、 初始化內存控制寄存器,初始化參數在段SMRDATA里定義。SDRAM初始化在這里處理。
        4、 在開發板上電時,按住接在EINT0腳上的按鍵會清零64MSDRAM。
        5、 初始化堆棧
        6、 讀OM0,OM1引腳狀態,判斷是從NAND FLASH啟動還是從NOR FLASH啟動。如果是從NAND FLASH啟動,把NAND FLASH的代碼拷貝到SDRAM中,接著程序開始在SDARM中運行。然后初始化數據段,最后跳轉到main()函數開始運行。
        如果是從NOR FLASH啟動,判斷ResetEntry值和BaseOfROM值是否相等,BaseOfROM值是在ADS里定義的RO BASE,如果定義為0X30000000,因為ARM上電ResetEntry值為0,所以接下來程序會把NOR FLASH里的程序拷貝到SDRAM中。如果RO BASE定義為0,將直接在NOR FLASH里運行。然后初始化數據段,最后跳轉到main()函數開始運行。



        關鍵詞: 2440啟動步

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 合肥市| 措美县| 石林| 当涂县| 云林县| 韶关市| 邮箱| 普定县| 根河市| 伊川县| 时尚| 湟源县| 永年县| 拜城县| 临沂市| 方正县| 岢岚县| 报价| 若尔盖县| 青神县| 长葛市| 九江县| 杭锦后旗| 白玉县| 宜兴市| 喜德县| 车险| 资溪县| 永福县| 和硕县| 德安县| 宁乡县| 绥江县| 高平市| 洪泽县| 滨海县| 天门市| 贡嘎县| 兴义市| 龙山县| 中牟县|