日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > > 充電吧
[導(dǎo)讀]前一段時(shí)間做了arm的一些開發(fā),主要是編寫了arm的啟動(dòng)軟件和移植了uCOS-II到arm7。我做事情喜歡深入簡(jiǎn)出,及從最簡(jiǎn)單,最原理的方面先做一個(gè)框架,然后在這個(gè)框架里面進(jìn)行補(bǔ)充。我還是一個(gè)很喜歡和別人討論的人,希望

前一段時(shí)間做了arm的一些開發(fā),主要是編寫了arm的啟動(dòng)軟件和移植了uCOS-II到arm7。我做事情喜歡深入簡(jiǎn)出,及從最簡(jiǎn)單,最原理的方面先做一個(gè)框架,然后在這個(gè)框架里面進(jìn)行補(bǔ)充。我還是一個(gè)很喜歡和別人討論的人,希望有人可以給我提出意見和建議。我的這個(gè)心得很初級(jí),都是一些基本的東西。現(xiàn)在拿出來和大家分享,希望在我畢業(yè)之前能給大家留一些紀(jì)念。 

由于這些東西發(fā)paper實(shí)在是沒有價(jià)值,但是我感覺可以作為arm開發(fā)的入門。由于我的水平和經(jīng)驗(yàn)有限,錯(cuò)誤也是難免的。但是如果不拿出來和大家分享,就算有錯(cuò)誤我也發(fā)現(xiàn)不了,是么?呵呵。我現(xiàn)試試發(fā)連載的第一篇,看看有多少價(jià)值,如果大家覺得有價(jià)值,我會(huì)繼續(xù)連載的。  

前言 
這個(gè)文檔是我學(xué)習(xí)ARM編程的總結(jié)和心得。閱讀這個(gè)文檔的人應(yīng)當(dāng)首先閱讀ADS1.2的幫助文檔及相關(guān)內(nèi)容。這個(gè)文檔不會(huì)對(duì)編譯器及連接器做出詳細(xì)的說明,在需要的時(shí)候會(huì)指出具體內(nèi)容在相關(guān)資料的章節(jié)。同時(shí)閱讀這個(gè)文檔的人需要了解ARM指令集和一些ARM匯編的基本內(nèi)容以及C和C++的相關(guān)編程內(nèi)容。同時(shí)還需要了解ARM的流水線結(jié)構(gòu)及一些基本的編程知識(shí)。同時(shí)為了方便查閱英文文檔,所有的相關(guān)術(shù)語都使用英文原文。 

第一章 STARTUP1 ARM的啟動(dòng) 
一般的嵌入式系統(tǒng)在主程序執(zhí)行之前都需要執(zhí)行一些初始化的過程以創(chuàng)造嵌入式程序運(yùn)行的環(huán)境,尤其是一些高級(jí)的嵌入式系統(tǒng),由于核心芯片使用內(nèi)存映射、內(nèi)存保護(hù)等機(jī)制以及編程使用高級(jí)語言C,C++甚至JAVA語言,都需要先創(chuàng)建一個(gè)適合程序運(yùn)行的硬件環(huán)境,然后初始化或者配置或者剪裁run-time library, 這些工作都必須在主程序運(yùn)行前完成,所以一個(gè)startup程序或者程序組對(duì)于一個(gè)嵌入式系統(tǒng)來說是非常重要的。要編寫startup程序,需要對(duì)編譯器、鏈接器和匯編器的細(xì)節(jié)有一定的了解,同時(shí)對(duì)ARM芯片硬件本身的地址分配以及memory mapping機(jī)制也需要有一些了解。 

2 ARM 程序的工作過程 
首先由各種source file經(jīng)過編譯產(chǎn)生object文件,然后object文件經(jīng)過鏈接生成Image文件,然后通過ICE的方法,根據(jù)描述文件的指定下載到目標(biāo)板上的固態(tài)存儲(chǔ)器指定地址當(dāng)中,比如flash,EEPROM, ROM等等。在程序執(zhí)行之前,根據(jù)某些描述文件,將需要讀寫數(shù)據(jù)的部分讀出放入動(dòng)態(tài)存儲(chǔ)器比如RAM當(dāng)中,然后程序從ROM開始執(zhí)行。或者有時(shí)為了提高程序的運(yùn)行速度,也可以將所有的程序(有一些root的部分除外,以后會(huì)提及)通過一個(gè)描述文件放入指定的RAM當(dāng)中,然后程序從RAM開始執(zhí)行,但是這樣會(huì)耗費(fèi)大量的動(dòng)態(tài)存儲(chǔ)器,所以大部分程序會(huì)取折中的方法,將需要快速運(yùn)行的部分和要讀寫的部分放入RAM中(一般讀固態(tài)存儲(chǔ)器的過程和動(dòng)態(tài)存儲(chǔ)器的過程是一樣的,但是寫就不同了,所以讀寫的部分一定要放到RAM中),而只讀的部分和對(duì)速度要求不是那么高的部分放入固態(tài)存儲(chǔ)器。同時(shí)ARM結(jié)構(gòu)的異常向量表規(guī)定放在地址為0x00000000開始的地址空間上,而一般的CPU為了提高異常相應(yīng)速度,會(huì)將這個(gè)向量段remap到其他的RAM當(dāng)中,所以在描述文件當(dāng)中必須精確指定異常向量跳轉(zhuǎn)程序的地址到remap的地方。在application程序執(zhí)行前,還需要由一些文件描述application程序執(zhí)行的環(huán)境。比如系統(tǒng)工作時(shí)鐘,總線頻率?,F(xiàn)在一般嵌入式編程語言為C,C++等。如果在使用它們的時(shí)候使用的runtime-library,那么在程序執(zhí)行前還需要為這些庫函數(shù)初始化heap。然后ARM可能工作在不同的模式,還需要為不同的工作模式設(shè)置stack。這樣,描述鏈接地址的文件,以及在application運(yùn)行前所有的初始化程序就是startup程序組。 

3 STARTUP分類 
這樣,將startup程序所完成的功能分類。一類是鏈接地址描述,一類是各種初始化的程序。根據(jù)不同的應(yīng)用,描述文件和初始化程序的內(nèi)容以及結(jié)構(gòu)和復(fù)雜程度都會(huì)不同。但是基本上,它們都必須實(shí)現(xiàn)以下功能。 

3.1 描述文件實(shí)現(xiàn)功能 

描述文件可以是鏈接命令行上簡(jiǎn)單的幾個(gè)字符,也可以是一個(gè)非常復(fù)雜的文件,但是它必須完成如下功能: 

; 指定程序下載的地址 

; 指定程序執(zhí)行的地址  [!--empirenews.page--]

3.2 初始化程序?qū)崿F(xiàn)的功能 

初始化程序根據(jù)不同的應(yīng)用,其結(jié)構(gòu)和復(fù)雜度也不同,但是它必須完成如下基本功能: 

; 異常向量初始化 

; 內(nèi)存環(huán)境初始化 

; 其他硬件環(huán)境初始化 

4 描述文件 
要編寫描述文件,必須知道ARM Image文件的組成及ARM Image文件執(zhí)行的機(jī)理。 

4.1 ARM Image的結(jié)構(gòu) 

一個(gè)ARM Image structure由linker在以下幾個(gè)方面定義: 

? 組成它的regions 和 output sections 

? 當(dāng)Image 下載的時(shí)候這些regions 和 sections 在內(nèi)存中的位置 

? 當(dāng)Image 執(zhí)行時(shí)這些regions和sections在內(nèi)存中的位置 

4.1.1 ARM Image的組成 

一個(gè)ARM Image被保存在可執(zhí)行文件當(dāng)中,它的層次結(jié)構(gòu)可以包括Image,regions,output sections和input sections。 

? 一個(gè)Image由一個(gè)或多個(gè)regions組成,每個(gè)region包括一個(gè)或多個(gè)output sections 

? 每個(gè)output section由一個(gè)或多個(gè)input sections組成 

? Input sections是一個(gè)object file中的code和data信息。 

同時(shí)Input section 有幾種屬性,分別為readonly,read-write,zero-initialized。分別稱為RO,RW和ZI。屬性來源于AREA后的attr屬性。 

比如CODE是RO,DATA是RW,NOINT默認(rèn)為ZI,即用0值初始化,但是可以選擇不進(jìn)行0值初始化。ZI屬性僅僅來源于SPACE, DCB, DCD, DCDU, DCQ, DCQU, DCW, 或者DCWU。由以上定義,ZI屬性的包含于RW屬性,它是有初始值的RW數(shù)據(jù)。又例如在C語言中,代碼為RO,靜態(tài)變量和全局變量是RW,ZI的。 


4.1.2 Image 的Load view 和 execution view 

在下載的時(shí)候Image regions被放置在memory map當(dāng)中,而在執(zhí)行Image前,或許你需要將一些regions放置在它們執(zhí)行時(shí)的地址上,并建立起ZI regions。例如,你初始化的RW數(shù)據(jù)需要從它在下載時(shí)的在ROM中的地址處移動(dòng)到執(zhí)行時(shí)RAM的地址處,附圖: 


NOTE Load view 和execution view的詳細(xì)定義見ADS_LinkerGuide 3-4。 

以上的描述包括二個(gè)內(nèi)容,一是要指定各個(gè)section在load view和execution view時(shí)的地址即memory map,二是要在執(zhí)行前根據(jù)這些地址進(jìn)行section的初始化。 

本站聲明: 本文章由作者或相關(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)系本站刪除。
換一批
延伸閱讀

特朗普集團(tuán)近日取消了其新推出的T1智能手機(jī)“將在美國制造”的宣傳標(biāo)語,此舉源于外界對(duì)這款手機(jī)能否以當(dāng)前定價(jià)在美國本土生產(chǎn)的質(zhì)疑。

關(guān)鍵字: 特朗普 蘋果 AI

美國總統(tǒng)特朗普在公開場(chǎng)合表示,他已要求蘋果公司CEO蒂姆·庫克停止在印度建廠,矛頭直指該公司生產(chǎn)多元化的計(jì)劃。

關(guān)鍵字: 特朗普 蘋果 AI

4月10日消息,據(jù)媒體報(bào)道,美國總統(tǒng)特朗普宣布,美國對(duì)部分貿(mào)易伙伴暫停90天執(zhí)行新關(guān)稅政策,同時(shí)對(duì)中國的關(guān)稅提高到125%,該消息公布后蘋果股價(jià)飆升了15%。這次反彈使蘋果市值增加了4000多億美元,目前蘋果市值接近3萬...

關(guān)鍵字: 特朗普 AI 人工智能 特斯拉

3月25日消息,據(jù)報(bào)道,當(dāng)?shù)貢r(shí)間3月20日,美國總統(tǒng)特朗普在社交媒體平臺(tái)“真實(shí)社交”上發(fā)文寫道:“那些被抓到破壞特斯拉的人,將有很大可能被判入獄長(zhǎng)達(dá)20年,這包括資助(破壞特斯拉汽車)者,我們正在尋找你?!?/p> 關(guān)鍵字: 特朗普 AI 人工智能 特斯拉

1月22日消息,剛剛,新任美國總統(tǒng)特朗普放出重磅消息,將全力支持美國AI發(fā)展。

關(guān)鍵字: 特朗普 AI 人工智能

特朗普先生有兩件事一定會(huì)載入史冊(cè),一個(gè)是筑墻,一個(gè)是挖坑。在美墨邊境筑墻的口號(hào)確保邊境安全,降低因非法移民引起的犯罪率過高問題;在中美科技產(chǎn)業(yè)之間挖坑的口號(hào)也是安全,美國企業(yè)不得使用對(duì)美國國家安全構(gòu)成威脅的電信設(shè)備,總統(tǒng)...

關(guān)鍵字: 特朗普 孤立主義 科技產(chǎn)業(yè)

據(jù)路透社1月17日消息顯示,知情人士透露,特朗普已通知英特爾、鎧俠在內(nèi)的幾家華為供應(yīng)商,將要撤銷其對(duì)華為的出貨的部分許可證,同時(shí)將拒絕其他數(shù)十個(gè)向華為供貨的申請(qǐng)。據(jù)透露,共有4家公司的8份許可被撤銷。另外,相關(guān)公司收到撤...

關(guān)鍵字: 華為 芯片 特朗普

曾在2018年時(shí)被美國總統(tǒng)特朗普稱作“世界第八奇跡”的富士康集團(tuán)在美國威斯康星州投資建設(shè)的LCD顯示屏工廠項(xiàng)目,如今卻因?yàn)楦皇靠祵㈨?xiàng)目大幅縮水并拒絕簽訂新的合同而陷入了僵局。這也導(dǎo)致富士康無法從當(dāng)?shù)卣抢铽@得約40億美...

關(guān)鍵字: 特朗普 富士康

今年5月,因自己發(fā)布的推文被貼上“無確鑿依據(jù)”標(biāo)簽而與推特發(fā)生激烈爭(zhēng)執(zhí)后,美國總統(tǒng)特朗普簽署了一項(xiàng)行政令,下令要求重審《通信規(guī)范法》第230條。

關(guān)鍵字: 谷歌 facebook 特朗普

眾所周知,寄往白宮的所有郵件在到達(dá)白宮之前都會(huì)在他地進(jìn)行分類和篩選。9月19日,根據(jù)美國相關(guān)執(zhí)法官員的通報(bào),本周早些時(shí)候,執(zhí)法人員截獲了一個(gè)寄給特朗普總統(tǒng)的包裹,該包裹內(nèi)包含蓖麻毒蛋白。

關(guān)鍵字: 美國 白宮 特朗普
關(guān)閉