Blob在S3C44B0上的移植

時間:2023-05-01 08:55:22 計算機(jī)論文 我要投稿
  • 相關(guān)推薦

Blob在S3C44B0上的移植

 摘要:Bootloader是嵌入式系統(tǒng)軟件開發(fā)的第一個環(huán)節(jié),它緊密地將軟硬件銜接在一起,對于一個嵌入式設(shè)備后續(xù)的軟件開發(fā)至關(guān)重要。Blob是一款功能強(qiáng)大的Bootloader,S3C44B0是三星公司一款基于ARM7TDMI的嵌入式通用處理器。本文詳細(xì)介紹Blob在基于S3C44B0的開發(fā)板上的運(yùn)行原理與移植過程。

    關(guān)鍵詞:S3C44B0 Blob Bootloader 移值

Bootloader對于嵌入式設(shè)備來說至關(guān)重要,它涉及到許多硬件相關(guān)的知識。對于自制的嵌入式開發(fā)板,它又是不可跳過的步驟,所以很多人對于它感到很頭痛。本文將以一款優(yōu)秀的Bootloader Blob為例,詳細(xì)講解它的運(yùn)行原理以及在S3C44B0通用處理器上的移植過程,為在嵌入式設(shè)備上的后續(xù)軟件開發(fā)打下基礎(chǔ)。

1 Blob簡介

Blob是Boot Loader Object的縮寫,是一款功能強(qiáng)大的Bootloader。它遵循GPL,源泉代碼完全開放。Blob既可以用來簡單的調(diào)試,也可以啟動Linux kernel。Blob最初是Jan-Derk Bakker和Erik Mouw為一塊名為LART(Linux Advanced Radio Terminal)的板子寫的,該板使用的處理器是StrongARM SA-1100,F(xiàn)在Blob已經(jīng)被移植到了很多CPU上,包括S3C44B0。

MBA44B0是一款基于S3C44B0的開發(fā)板。本文將以運(yùn)行在MBA44B0開發(fā)板上的Blob的源代碼為基礎(chǔ),再針對自己的開發(fā)板進(jìn)行Blob的移植。

開發(fā)板的主要配置為:

*三星ARM7處理器S3C44B0;

*2MB的Flash,地址范圍0x0000 0000~0x0020 0000;

*8MB的SDRAM,地址范圍0x0c00 0000~0x0c80 0000;

*1個串口,2個LED燈;

*JTAG接口;

*晶振為6MHz,系統(tǒng)主頻為60MHz。

2 Blob的運(yùn)行過程分析

圖1為Blob程序啟動流程

Blob編譯后的代碼定義最大為64KB,并且這64KB又分成兩個階段來執(zhí)行。第一階段的代碼在start.s中定義,大小為1KB,它包括從系統(tǒng)上電后在0x00000000地址開始執(zhí)行的部分。這部分代碼運(yùn)行在Flash中,它包括對S3C44B0的一些寄存器的初始化和將Blob第二階段代碼從Flash拷貝到SDRAM中。除去第一階段的1KB代碼,剩下的部分都是第二階段的代碼。第二階段的起始文件為trampoline.s,被復(fù)制到SDRAM后,就從第一階段跳到這個文件開始執(zhí)行剩余部分代碼。第二階段最大為63KB,單詞trampoline詞義為“蹦床”,所以在這個程序中進(jìn)行一些BSS段設(shè)置,堆棧的初始化等工作后,最后跳轉(zhuǎn)到main.c進(jìn)入C函數(shù)。

[1] [2] [3] [4] [5] 

【Blob在S3C44B0上的移植】相關(guān)文章:

移植04-29

記憶移植作文02-20

核移植與線粒體04-26

記憶移植作文02-21

記憶移植不是夢04-26

大樹移植技術(shù)04-28

假如記憶可以移植02-17

「記憶移植」開新花04-26

假如記憶可以移植作文02-04

假如記憶可以移植作文02-05