<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > S3C2440支持的兩種啟動(dòng)方式

          S3C2440支持的兩種啟動(dòng)方式

          作者: 時(shí)間:2016-11-25 來(lái)源:網(wǎng)絡(luò) 收藏
          在ARM上電的情況下,流程如下:

          1、 關(guān)閉看門狗,關(guān)閉所有中斷。

          本文引用地址:http://www.ex-cimer.com/article/201611/321544.htm

          2、 設(shè)置系統(tǒng)工作頻率,F(xiàn)CLK,HCLK,PCLK,UCLK。

          3、 初始化內(nèi)存控制寄存器,初始化參數(shù)在段SMRDATA里定義。SDRAM初始化在這里處理。

          4、 在開發(fā)板上電時(shí),按住接在EINT0腳上的按鍵會(huì)清零64MSDRAM。

          5、 初始化堆棧

          6、 讀OM0,OM1引腳狀態(tài),判斷是從NAND FLASH啟動(dòng)還是從NOR FLASH啟動(dòng)。

          如果是從NAND FLASH啟動(dòng),把NAND FLASH的代碼拷貝到SDRAM中,接著程序開始在SDARM中運(yùn)行。然后初始化數(shù)據(jù)段,最后跳轉(zhuǎn)到main()函數(shù)開始運(yùn)行。

          如果是從NOR FLASH啟動(dòng),判斷ResetEntry值和BaseOfROM值是否相等,BaseOfROM值是在ADS里定義的RO BASE,如果定義為0X30000000,因?yàn)锳RM上電ResetEntry值為0,所以接下來(lái)程序會(huì)把NOR FLASH里的程序拷貝到SDRAM中。如果RO BASE定義為0,將直接在NOR FLASH里運(yùn)行。然后初始化數(shù)據(jù)段,最后跳轉(zhuǎn)到main()函數(shù)開始運(yùn)行。

          1: 從NAND FLASH啟動(dòng)時(shí),在ARM上電時(shí),ARM會(huì)自動(dòng)把NAND FLASH前4K的內(nèi)容拷貝到S3C2440內(nèi)部SRAM中,同時(shí)把SRAM的地址映射到0X00000000。ARM上電后會(huì)從SRAM處開始運(yùn)行。

          2:從NOR FLASH啟動(dòng)時(shí),因?yàn)镹OR FLASH接在bank0。地址映射是0X00000000。所以ARM上電后直接運(yùn)行NOR FLASH里的程序。此時(shí)S3C2440內(nèi)部SRAM地址為0X40000000。

          3:ARM上電啟動(dòng)都是從0X00000000開始運(yùn)行。但是對(duì)于復(fù)位程序入口,ResetEntry的值在ARM上電運(yùn)行時(shí)是0X00000000,在JTAG仿真時(shí)是0X30000000。這個(gè)值很關(guān)鍵,在拷貝程序時(shí)會(huì)用到。



          關(guān)鍵詞: S3C2440啟動(dòng)方

          評(píng)論


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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();