在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 2440啟動(dòng)代碼分析心得體會(huì)

            2440啟動(dòng)代碼分析心得體會(huì)

            作者: 時(shí)間:2016-11-26 來(lái)源:網(wǎng)絡(luò) 收藏
            通過(guò)研究2440啟動(dòng)代碼,發(fā)現(xiàn)這個(gè)啟動(dòng)代碼壓根就沒(méi)有從nandflash復(fù)制代碼的功能,怪不得下載到nandflash沒(méi)現(xiàn)象呢!

            用偽C代碼來(lái)描述2440的正常的啟動(dòng)過(guò)程。

            本文引用地址:http://www.biyoush.com/article/201611/321602.htm

            2440啟動(dòng)函數(shù)()

            {

            復(fù)位函數(shù)();

            未定義模式函數(shù)()//這個(gè)是死循環(huán)

            SWI函數(shù)();//這個(gè)函數(shù)在其他文件中存在

            PAbt_Addr函數(shù)();//又是個(gè)死循環(huán)函數(shù)

            DAbt_Addr函數(shù)();//還是個(gè)死循環(huán)函數(shù)
            ......

            }

            復(fù)位函數(shù)()

            {

            if(關(guān)掉看門狗==1)

            關(guān)掉看門狗;

            Else

            不關(guān);

            if(設(shè)置時(shí)鐘==1)

            設(shè)置好時(shí)鐘;

            Else

            不設(shè)置時(shí)鐘;

            If(初始化儲(chǔ)存控制器==1)

            初始化內(nèi)存控制器;

            Else

            不初始化儲(chǔ)存控制器;

            If(初始化I/O控制寄存器==1)

            初始化I/O控制寄存器;

            Else不初始化I/O控制寄存器

            If(異常中斷向量復(fù)制到IRAM==1)

            異常中斷向量到IRAM;//IRAM為0x40000000;

            Else不復(fù)制;

            配置相應(yīng)模式堆棧的大??;//最后配置的是用戶模式堆棧的大小,在用戶模式下進(jìn)入main函數(shù)

            main();//調(diào)用main函數(shù),這就是為什么單片機(jī)裸奔的時(shí)候需要死循環(huán)了。

            }

            其實(shí)在2440中main函數(shù)中不用死循環(huán),在執(zhí)行main函數(shù)完畢之后,相當(dāng)于復(fù)位函數(shù)()已經(jīng)執(zhí)行完畢,接下來(lái)執(zhí)行的是未定義函數(shù)(),由于剛才分析未定義函數(shù)是個(gè)死循環(huán),相當(dāng)于最壞的情況是,2440一直在未定義函數(shù)中停留著。當(dāng)然并不希望看到這樣的情況,所以2440裸奔時(shí),最好在main函數(shù)中構(gòu)成死循環(huán)!對(duì)于51單片機(jī)來(lái)說(shuō),沒(méi)有死循環(huán)的話,這個(gè)51單片機(jī)程序會(huì)跑飛!?。?/p>

            如果想從nandflash啟動(dòng),并啟動(dòng)一個(gè)系統(tǒng)的話,需要在C函數(shù)之前加入初始化nandflash函數(shù)以及從nandflash代碼復(fù)制到sdram的函數(shù)。如果再加一點(diǎn)其他的東西的話,一個(gè)小的bootloader就完成啦!




            評(píng)論


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

            關(guān)閉