當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]嵌入式系統(tǒng)對(duì)功能、可靠性、成本、體積、功耗等均有嚴(yán)格要求,以ARM體系結(jié)構(gòu)為基礎(chǔ)的各種RISC微處理器具有靈活的特性和強(qiáng)大的性能,在嵌入式系統(tǒng)中得到了廣泛的應(yīng)用。---S3C2410是三星公司基于ARM920T設(shè)計(jì)的一款處理

嵌入式系統(tǒng)對(duì)功能、可靠性、成本、體積、功耗等均有嚴(yán)格要求,以ARM體系結(jié)構(gòu)為基礎(chǔ)的各種RISC微處理器具有靈活的特性和強(qiáng)大的性能,在嵌入式系統(tǒng)中得到了廣泛的應(yīng)用。
---S3C2410是三星公司基于ARM920T設(shè)計(jì)的一款處理器,在開發(fā)基于S3C2410的系統(tǒng)的過程中,如何讓系統(tǒng)快速穩(wěn)定地啟動(dòng)是一個(gè)重要問題。嵌入式系統(tǒng)的資源有限,程序通常都是固化在ROM中運(yùn)行。但在實(shí)際應(yīng)用中,為提高系統(tǒng)的實(shí)時(shí)性,加快代碼的執(zhí)行速度,系統(tǒng)啟動(dòng)后程序往往要被搬移到RAM中,因?yàn)镽AM的存取速度要比ROM快得多,這樣大大提升系統(tǒng)的性能。啟動(dòng)程序要完成的任務(wù)包括:硬件初始化,系統(tǒng)存儲(chǔ)系統(tǒng)的配置,復(fù)制二級(jí)中斷向量表。
啟動(dòng)程序過程
● 系統(tǒng)硬件初始化
---系統(tǒng)上電或復(fù)位后,程序從位于地址0x0的Reset Exception Vector處開始執(zhí)行,因此需要在這里放置Bootloader的第一條指令:b ResetHandler,跳轉(zhuǎn)到標(biāo)號(hào)為ResetHandler處進(jìn)行第一階段的硬件初始化,主要內(nèi)容為:關(guān)看門狗定時(shí)器,關(guān)中斷,初始化PLL和時(shí)鐘,初始化存儲(chǔ)器系統(tǒng)。執(zhí)行完以上程序后,系統(tǒng)進(jìn)行堆棧和存儲(chǔ)器的初始化。系統(tǒng)堆棧初始化取決于用戶使用了哪些中斷,以及系統(tǒng)需要處理哪些錯(cuò)誤類型。一般情況下,管理者堆棧必須設(shè)置,如果使用了IRQ中斷,則IRQ堆棧也必須設(shè)置。如果系統(tǒng)使用了外設(shè),則需要設(shè)置相關(guān)的寄存器,以確定其刷新頻率、總線寬度等信息。
● 代碼段復(fù)制到RAM中運(yùn)行
---因?yàn)榍度胧较到y(tǒng)的代碼通常都是固化在ROM或者Flash中,上電后開始運(yùn)行。由于ROM和Flash的讀取速度相對(duì)較慢,這樣無疑會(huì)降低代碼的執(zhí)行速度和系統(tǒng)的運(yùn)行效率。為此,需要把系統(tǒng)的代碼復(fù)制到RAM中運(yùn)行。使用SDT鏈接器ARMLink產(chǎn)生的定位信息,把RO的有效代碼和數(shù)據(jù)段到RAM中。ARMLink將編譯后的程序鏈接成ELF文件。映像文件內(nèi)部共有三種輸出段:RO段、RW段和ZI段。這三種輸出段分別包含了只讀代碼及包含在代碼段中的少量數(shù)據(jù)、可讀寫的數(shù)據(jù)、初始化為0的數(shù)據(jù),ARMLink同時(shí)還產(chǎn)生了這三種輸出段的起始和終止定位信息:Image$$RO$$Base、Image$$RO$$Limit、Image$$RW$$Base、Image$$Limit、Image$$Linit和Image$$ZI$$Limit??梢栽诔绦蛑惺褂眠@些定位信息。將ROM中的代碼和數(shù)據(jù)搬移到RAM中,具體程序如下。
---LDR r0, =|Image$$RO$$Base| /*RO段起始地址*/
---LDR r1, =|Image$$RO$$Limit| /*RO段結(jié)束地址*/
---LDR r2, =|Image$$RW$$Base|
---LDR r3, =|Image$$RW$$Limit|
---/*分別求出需要映像的代碼和數(shù)據(jù)的長度并累加,放到寄存器R1中*/
---SUB r1, r1, r0
---SUB r3, r3, r2
---ADD r1, r1, r3
---/*將需要映象的代碼和數(shù)據(jù)復(fù)制到RAM中去*/
---0 /*標(biāo)示符*/
---LDR r3, [r0], #4
---STR r3, [r2], #4
---SUBS r1, r1, #4
---BNE %B0 /*如果沒有復(fù)制完,跳轉(zhuǎn)到0標(biāo)示符處的匯編語句,繼續(xù)復(fù)制,參見ARM指令幫助手冊(cè)*/
● 建立二級(jí)中斷向量表
---在ARM系統(tǒng)中,中斷向量表位于0X0開始的地址處,意味著無論運(yùn)行什么樣的上層軟件,一旦發(fā)生中斷,程序就得到Flash存儲(chǔ)器中的中斷向量表里去,降低系統(tǒng)的運(yùn)行效率。因此在RAM中建立自己的二級(jí)中斷向量表,當(dāng)中斷發(fā)生后,程序直接從RAM中取中斷向量進(jìn)入中斷子程序。尤其是在中斷頻繁發(fā)生的系統(tǒng)里,這種方法可以大大提高系統(tǒng)的運(yùn)行效率,具體的實(shí)現(xiàn)代碼如下。
---b ResetHandler
---b HandlerUndef /*未定義模式句柄*/
---b HandlerSWI /*SWI中斷句柄*/
---b HandlerPabort /*PAbort中斷句柄*/
---b HandlerDabort /*Dabort中斷句柄*/
---b. /*保留*/
---b HandlerIRQ /*IRQ 中斷句柄*/
---b HandlerFIQ /*FIQ中斷句柄*/
---HandlerFIQ HANDLER HandleFIQ
---HandlerIRQ HANDLER HandleIRQ
---HandlerUndef HANDLER HandleUndef
---HandlerSWI HANDLER HandleSWI
---HandlerDabort HANDLER HandleDabort
---HandlerPabort HANDLER HandlePabort
---其中HANDLER是一個(gè)宏,用于查找中斷處理程序的入口地址。這些地址存放在由HandleXXX指向的表項(xiàng)中,該表定位在RAM高端,基地址為_ISR_STARTADDRESS。
---^ _ISR_STARTADDRESS
---HandleReset # 4
---HandleUndef # 4
---HandleSWI # 4
---HandlePabort # 4
---HandleDabort # 4
---HandleReserved # 4
---HandleIRQ # 4
---HandleFIQ # 4
● MMU的應(yīng)用
---MMU是存儲(chǔ)器管理單*的縮寫,是用來管理虛擬內(nèi)存系統(tǒng)的器件。MMU通常是CPU的一部分,本身有少量存儲(chǔ)空間存放從虛擬地址到物理地址的匹配表,此表稱作TLB(轉(zhuǎn)換旁置緩沖區(qū))。所有數(shù)據(jù)請(qǐng)求都送往MMU,由MMU決定數(shù)據(jù)是在RAM內(nèi)還是在大容量外部存儲(chǔ)器設(shè)備內(nèi)。如果數(shù)據(jù)不在存儲(chǔ)空間內(nèi),MMU將產(chǎn)生頁面錯(cuò)誤中斷。MMU存儲(chǔ)器系統(tǒng)的結(jié)構(gòu)允許對(duì)存儲(chǔ)器系統(tǒng)的精細(xì)控制,大部分的控制細(xì)節(jié)由存在存儲(chǔ)器中的轉(zhuǎn)換表提供。這些表的入口定義了從1KB~1MB的各種存儲(chǔ)器區(qū)域的屬性。MMU完成的兩個(gè)主要功能是:將虛地址轉(zhuǎn)換成物理地址,控制存儲(chǔ)器存取允許。MMU關(guān)掉時(shí),虛地址直接輸出到物理地址總線。
---經(jīng)過以上的分析可以發(fā)現(xiàn),系統(tǒng)啟動(dòng)程序主要是完成了硬件的初始化,以及克服Flash或ROM讀取速度慢的弱點(diǎn),提高指令和數(shù)據(jù)的讀取速度,實(shí)現(xiàn)系統(tǒng)的高速運(yùn)行,并且通過MMU的應(yīng)用,減少RAM的使用,降低系統(tǒng)成本。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動(dòng)力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉