日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

      歡迎訪問 生活随笔!

      生活随笔

      當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

      编程问答

      S5PV210启动过程

      發(fā)布時(shí)間:2025/3/15 编程问答 27 豆豆
      生活随笔 收集整理的這篇文章主要介紹了 S5PV210启动过程 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

      常用器件特性

      內(nèi)存:
      SRAM 靜態(tài)內(nèi)存 特點(diǎn)就是容量小、價(jià)格高,優(yōu)點(diǎn)是不需要軟件初始化直接上電就能用
      DRAM 動(dòng)態(tài)內(nèi)存 特點(diǎn)就是容量大、價(jià)格低,缺點(diǎn)就是上電后不能直接使用,需要軟件初始化后才可以使用。

      單片機(jī)中:內(nèi)存需求量小,而且希望開發(fā)盡量簡單,適合全部用SRAM
      嵌入式系統(tǒng):內(nèi)存需求量大,而且沒有NorFlash等可啟動(dòng)介質(zhì)
      PC機(jī): 內(nèi)存需求量大,而且軟件復(fù)雜,不在乎DRAM的初始化開銷,適合全部用DRAM

      外存:
      NorFlash:特點(diǎn)是容量小,價(jià)格高,優(yōu)點(diǎn)是可以和CPU直接總線式相連,CPU上電后可以直接讀取,所以一般用作啟動(dòng)介質(zhì)。
      NandFlash(跟硬盤一樣):特點(diǎn)是容量大,價(jià)格低,缺點(diǎn)是不能總線式訪問,也就是說不能上電CPU直接讀取,需要CPU先運(yùn)行一些初始化軟件,然后通過時(shí)序接口讀寫。

      所以一般PC機(jī)都是:很小容量的BIOS(NorFlash)+ 很大容量的硬盤(類似于NandFlash)+ 大容量的DRAM
      一般的單片機(jī): 很小容量的NorFlash + 很小容量的SRAM
      嵌入式系統(tǒng):因?yàn)镹orFlash很貴,所以現(xiàn)在很多嵌入式系統(tǒng)傾向于不用NorFlash,
      直接用:外接的大容量Nand + 外接大容量DRAM + SoC內(nèi)置SRAM

      S5PV210使用的啟動(dòng)方式是:外接的大容量Nand + 外接大容量DRAM + SoC內(nèi)置SRAM

      ?

      1.大體的啟動(dòng)過程如下:

      第零步:設(shè)置OM PIN引腳,就可以選擇啟動(dòng)方式了,譬如從SD卡啟動(dòng),emmc啟動(dòng),norflash啟動(dòng)等等,我們這里假設(shè)從SD卡啟動(dòng)。

      第一步:IROM內(nèi)的代碼(BL0)對(duì)SOC進(jìn)行初步的初始化工作

      第二步:從SD卡中復(fù)制BL1到SOC內(nèi)的SRAM,執(zhí)行BL1內(nèi)的代碼

      第三步:從SD卡中復(fù)制BL2到SOC內(nèi)的SRAM,執(zhí)行BL2內(nèi)的代碼(作用:初始化SDRAM控制器,那樣我們就可以用DDR內(nèi)存了)

      第四步:把我們的操作系統(tǒng)OS復(fù)制到SDRAM中

      第五步:我們?cè)贐L2中進(jìn)行一個(gè)長跳轉(zhuǎn),跳轉(zhuǎn)到SDRAM中去執(zhí)行程序,這樣我們整個(gè)啟動(dòng)過程就完成了。

      2.大體流程的具體實(shí)現(xiàn)過程

      (0)設(shè)置OM PIN引腳,選擇啟動(dòng)的介質(zhì)(圖為部分截取)

        從圖上我們可以看到,只要我們的OM[0-5]設(shè)置為:100000或000000(1代表的就是供電,0代表接地)的時(shí)候,我們就選擇了essd介質(zhì)的啟動(dòng)方式

      當(dāng)我們OM[0-5]設(shè)置為:001100或者101100的時(shí)候,我們選擇的就是SD/MMC的模式。這就看你需要什么啟動(dòng)方式了。

        我的開發(fā)板(九鼎X210)支持SD卡啟動(dòng)和USB啟動(dòng):

        SD卡啟動(dòng):001100或者101100

        USB啟動(dòng):1XXXX1(x表示沒有)

        所以,我們?cè)谇袚Q的時(shí)候,只需要在SD卡的基礎(chǔ)上進(jìn)行改動(dòng)(因?yàn)镺M[1-4]位為什么并不影響USB啟動(dòng)的),撥動(dòng)引腳OM5就可以了,OM為1就是USB啟動(dòng),OM為0就是SD卡啟動(dòng)。

      (1)IROM代碼所做的工作

      第一步:關(guān)看門狗

      第二步:初始化iCache

      第三步:初始化棧區(qū)域

      第四步:初始化堆區(qū)域

      第五步:初始化塊設(shè)備拷貝功能

      第六步:初始化PLL并設(shè)置系統(tǒng)時(shí)鐘

      第七步:檢查OM PIN引腳,看看從哪種介質(zhì)(如SD/MMC)中復(fù)制BL1到SRAM,這里就和第零步的工作相照應(yīng)了,選擇了啟動(dòng)方式了

      第八步:檢查BL1中的checksum,如果checksum失敗,就嘗試以第二種啟動(dòng)方式啟動(dòng)(SD/MMC 通道2)

      第九步:檢查是不是安全模式啟動(dòng)(這步比較少應(yīng)用)

      第十步:跳到BL1的起始地址去執(zhí)行程序

      以上就是IROM所做的工作。具體的圖示如下:

        從上圖我們可以看到,我們的啟動(dòng)凡事可以有6種,找到啟動(dòng)方式后,就從那介質(zhì)中復(fù)制BL1到SDRAM中,然后執(zhí)行BL1,,執(zhí)行完BL1之后,查看它是不是喚醒狀態(tài),不是就載入BL2到SRAM中,然后就不是安全模式,就跳轉(zhuǎn)到BL2執(zhí)行,然后判斷是不是喚醒狀態(tài),不是就開始初始化DRAM了,然后就把操作系統(tǒng)OS載入到DRAM中,之后就跳轉(zhuǎn)到DRAM中去了,然后就是操作系統(tǒng)啟動(dòng)了。(這里就是后面步驟的示意圖了)

      第二種情況:我們的第一種啟動(dòng)方式不成功,進(jìn)入到第二種啟動(dòng)方式去執(zhí)行程序的過程。

        從上圖我們可以看到:第一種啟動(dòng)方式失敗之后,就會(huì)跳轉(zhuǎn)到第二種啟動(dòng)方式,然后檢查checkSum(校驗(yàn)和),如果正常的話,就跳轉(zhuǎn)到從第二種啟動(dòng)介質(zhì)里面復(fù)制過來的BL1去執(zhí)行,如果不正常,就跳轉(zhuǎn)到了串口啟動(dòng)的方式去執(zhí)行,串口成功的話,那就跳轉(zhuǎn)到串口上傳過來的BL1去執(zhí)行,還是不行的話,就跳轉(zhuǎn)到USB啟動(dòng)的方式去執(zhí)行,可以就跳轉(zhuǎn)到USB下載下來的BL1執(zhí)行,還是不行的話就是啟動(dòng)失敗了。

      最后:我們的文檔還涉及了一些其他的具體的內(nèi)容,如:USB/UART啟動(dòng)模式(注意:UART模式啟動(dòng)的時(shí)候,只是支持UART2這個(gè)接口,我們不要接錯(cuò)了)的設(shè)置的一些內(nèi)容,還有SRAM內(nèi)存映射的區(qū)域,還有從SD卡等內(nèi)存介質(zhì)中復(fù)制BL1到SRAM中需要用到的一些函數(shù),還有一些時(shí)鐘設(shè)置的內(nèi)容。

      因?yàn)檫M(jìn)行裸機(jī)實(shí)驗(yàn)的時(shí)候,需要用到USB啟動(dòng)的方式,還有后面的SRAM內(nèi)存映射的一些內(nèi)容,所以下面就順帶介紹一下這些內(nèi)容。

      首先是:USB啟動(dòng)模式

      1.我們可以使用DNW工具,看看我們的USB是否接好(看到上面的USB:OK字樣)

      2.設(shè)置好具體的值:波特率是115200,你用的是哪個(gè)COM端口,就設(shè)哪個(gè)COM端口,具體的COM端口可以看右鍵我的電腦->管理->設(shè)備管理器->usbdnw處

      3.下載具體的程序就好了

      注意:因?yàn)槲覀兊腢ART/USB啟動(dòng)模式都不需要頭校驗(yàn)的,所以,我們的下載地址是:0xD0020000,像SD卡那些的,需要頭校驗(yàn)和的,他們的下載地址就是:0xD0020010

      接下來就是:SRAM的內(nèi)存映像了

      看著這個(gè)圖:我們就知道了我們的下載地址為什么是0xD0020000和0xD0020010了,因?yàn)镾RAM的頭地址就是這些。

      Exception Vector Table:中斷異常向量表

      Heap:堆,申請(qǐng)堆的時(shí)候,在這里申請(qǐng)

      Global Variable:全局變量放在這里

      IRQ stack:中斷模式下的棧

      SVC stack:SVC模式下的棧,我們平時(shí)就是SVC模式下的,所以我們說的設(shè)置棧的時(shí)候,就是設(shè)置這里的棧

      ?

      bootloader、Kernel、filesystem等在nand中的分布

      S5PV210的啟動(dòng)方式很多種,第一次學(xué)習(xí)的理解就這么多,做個(gè)記錄,相信隨著學(xué)習(xí)的深入理解也會(huì)不一樣,到時(shí)候再回來更新。

      總結(jié)

      以上是生活随笔為你收集整理的S5PV210启动过程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

      如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。