s3c2450的整個bootloader包括四個部分:
1):eboot.whimory
2):nbl1.irom_sd
3):nbl1.lsb
4):nbl2
實現功能:生成三個有用的檔案:block0img.nb0,eboot.nb0/eboot.bin,以及irom_sd_eboot.nb0。其中前兩個檔案用於燒到nand的前幾個block,用於初始化整個系統的環境,以及引導nk。最後面的irom_sd_eboot.nb0檔案,是將第二個eboot.nb0/eboot.bin檔案打包得到的檔案,用於燒寫到sd卡中,從sd卡啟動。下面針對前面的四個檔案逐一說明。
一:nbl2
該檔案用於生成block0img.nb0。用於完成如下功能:
1):初始化硬體配置,如堆疊,中斷向量表,mmu等。
2):將後面生成的eboot.bin檔案拷備到dram中。
3):列印部分串列埠資訊,表示系統已經啟動。
4):初始化顯示裝置,輸出開機logo。但此時背光沒點亮,故肉眼是看不清有開機logo顯示的。
5):初始化nand flash。
注:執行此段**的前提是,開機必須是從nand啟動的。之所以從sd卡啟動時會白屏一下,就是因為從sd卡啟動並沒有執行這一段**,即先點亮了背光,再初始化顯示裝置。如果從t卡啟動,這段**沒有任何作用。
二:nbl1.lsb
此段**個人覺得沒有任何用處,應該可以直接刪除。將該段遮蔽掉後,仍然能從sd卡啟動,但是由於從nand啟動需要跳線,沒做相關實驗。但是block0img.nb0和eboot.bin兩個檔案已經生成。
三:eboot.whimory
整個bootloader最關鍵的部分就是這一塊了。該部分用於產生eboot.bin和eboot.nb0檔案。
主函式中由三個函式組成:
1):powerlock_init();
用於軟置鎖,開機後通過io口給電源的使能腳供電,保證系統正常供電。
2):bootloadermain();
整個bootloader的最關鍵的函式。下面將重點介紹。
3):spinforever();
這個函式是不會執行的,在執行第二個函式後,就會跳到nk的位址啟動系統了。如果執行到這個函式,那系統肯定就掛在eboot這裡了。
下面主要看bootloadermain()這個函式。
整個函式**如下:
從以上程式可以看出,整個bootloadermain()函式由五大函式組成,分別是:
1):kernelrelocate (ptoc);
用於將全域性變數在dram中宣告。
2):oemdebuginit ();
用於初始化串列埠,給後續**提供串列埠列印資訊,便於除錯。
3):oemplatforminit ();
用於初始化硬體平台,如時鐘,驅動等。
該函式通過如下子函式完成各硬體平台的初始化:
a:memset():
初始化bsp args結構;
b:initusb();
初始化usb介面;
c:isr_init();
初始化中斷;
d:bp_init();
初始化nand flash;
e:initdisplay();
初始化顯示裝置;
f:showlogo();
顯示logo;
g:fmd_getinfo();
讀flash資訊;
h:toc_read();
讀toc資訊;
i:oemethgetsecs();
j:backlight_open();
亮背光。
以上是oemplatforminit ()函式的作用,具體每一句如何執行,每個函式是如何工作的,限於篇幅,這裡就不詳細介紹了。
4):oempredownload ();
5):downloadimage()或oemlaunch() 函式;
複製搜尋 複製
搜尋
S3C6410和S3C2410的區別
s3c6400平台和s3c24xx平台而言,基本上沒什麼大的變化 1.記憶體支援ddr記憶體一般都是128m,起始位址是0x50000000,其他暫存器位址與s3c24xx有很大的不同。2.時鐘沒有了epll換上了mpll所以時鐘方面要小心了。3.新增tv卡的支援,以及keypad.的支援。4.fl...
s3c2410與s3c2440的部分細節區別整理
這兩個soc都是arm920,cpuid都是0x41129200,很多暫存器設定都是一樣的,但是你要想直接把2410的bootloader 核心拿到2440上用,那是肯定會出錯的 網上這樣的文章很多,大多都僅僅是巨集觀上比劃兩句,如攝像頭驅動 主頻之類,沒有什麼意義 細節是魔鬼,只有在細節上充分積累...
S3C2410 S3C2440開發板相關書籍
1 arm處理器裸機開發實戰 機制而非策略 王小強 主編 電子工業出版社 實驗平台 tq2440。裸跑中的經典教程,有注釋,例項多而實用,是目前市場上最受好評的2440 裸跑教程。讓您從微控制器51入手arm 從此再無憂。2.c os ii原理與arm應用程式設計 張勇 方勤 蔡鵬 許波 著 3.嵌...