2014-05-09 57 views
-1

對於串行閃存設備中現代系統的啓動概念,我有點失落。在裸機上編寫了許多從8位PIC到32位Power Architecture的簡單微型程序(總是通過重新編程正常的總線尋址閃存),我想知道現代SoC如何從串行設備啓動。我沒有在網上找到太多的東西,因爲每個系統似乎都依賴於SD卡編程工具和輔助引導程序的組合,兩者都很少受到關注。ARM如何從SD卡啓動?

+0

我沒有對此投票,但如果您可以更具體,您可能會得到更好的答案。我對這個話題不夠了解,不知道如何獲得更具體的內容,但是如果你能專注於你明確不瞭解的部分過程,那麼這將會產生更好的問題。 –

回答

4

'how'是一個基於mask-PROM的主引導加載程序,它被烘焙到SoC中。除了初始化SD卡接口以及可能有一些具有極其保守時序的SDRAM(儘管有些器件在此處嵌入了SRAM)之後,它不需要做太多的工作。

然後枚舉卡接口,從它找到的第一張卡中讀取FAT,並從此將輔助引導加載程序複製到SRAM或SDRAM中並執行它。

通常會有一些限制,例如輔助引導加載程序是卡上的第一個文件,並且分配的鎖是連續的。

許多系統然後在此加載另一個引導加載程序,這是引導操作系統的引導加載程序。

+0

而SD卡上的損耗平衡不妨礙? – Vroomfondel

+0

磨損平衡是SD卡上控制器的功能,對系統完全透明。這樣說,我從來沒有發現SD卡是完全可靠的。他們也不傾向於使用Ext3或Ext4文件系統快速工作 - 但是,啓動分區不可變FAT32 - 通常不帶VFAT擴展名,以避免專利侵權。 – marko