S3C2440學(xué)習(xí)筆記一(系統(tǒng)頻率以及一些入門(mén)級(jí)問(wèn)題)_第1頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余1頁(yè)可下載查看

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、s3c2440學(xué)習(xí)筆記一(系統(tǒng)頻率以及一些入門(mén)級(jí)問(wèn)題)對(duì)于mpll用法到mpllcon,而upll用法到upllcon寄存器,同屬于時(shí)鐘單元。mpllcon地址是0x4c000004,upll地址是0x4c000008。mpll用于cpu及其他外圍器件,這里把他理解成的主頻就對(duì)了,upll用于。產(chǎn)生fclk,hclk,pclk三種頻率。clkdivn時(shí)鐘分配控制寄存器,地址是0x4c000014,對(duì)fclk分頻給uclk,pclk,不分頻或2分頻,camdivn照相機(jī)時(shí)鐘分配寄存器,地址是0x4c000018,也是做一個(gè)時(shí)鐘分配。2440slib.s中浮現(xiàn)mrc,bic,mcr,mov_pc_

2、lr是什么意思,有什么資料學(xué)習(xí)和討論?前面三條是屬于匯編命令,mrc 命令的格式為:mrc條件 協(xié)處理器編碼,協(xié)處理器操作碼1,目的寄存器,源寄存器1,源寄存器2,協(xié)處理器操作碼2。mrc 命令用于將協(xié)處理器寄存器中的數(shù)據(jù)傳送到 處理器寄存器中,若協(xié)處理器不能勝利完成操作,則產(chǎn)生未定義命令異樣。其中協(xié)處理器操作碼1和協(xié)處理器操作碼2 為協(xié)處理器將要執(zhí)行的操作,目的寄存器為arm 處理器的寄存器,源寄存器1 和源寄存器2 均為協(xié)處理器的寄存器。命令示例:mrc p3 , 3 , r0 , c4 , c5 , 6 ;該命令將協(xié)處理器 p3 的寄存器中的數(shù)據(jù)傳送到 arm 處理器寄存器中.mcr 命

3、令的格式為: mcr條件 協(xié)處理器編碼,協(xié)處理器操作碼1,源寄存器,目的寄存器1,目的寄存器2,協(xié)處理器操作碼2。mcr 命令用于將arm 處理器寄存器中的數(shù)據(jù)傳送到協(xié)處理器寄存器中,若協(xié)處理器不能勝利完成操作,則產(chǎn)生未定義命令異樣。其中協(xié)處理器操作碼1 和協(xié)處理器操作碼2為協(xié)處理器將要執(zhí)行的操作,源寄存器為arm 處理器的寄存器,目的寄存器1 和目的寄存器2 均為協(xié)處理器的寄存器。命令示例:mcr p3 , 3 , r0 , c4 , c5 , 6 ;該命令將 arm 處理器寄存器 r0 中的數(shù)據(jù)傳送到協(xié)處理器 p3 的寄存器 c4 和 c5 中。cp15寄存器圖概述cp15定義了16個(gè)寄存

4、器。cp15的寄存器圖如下表所示a.在位置0可以拜訪兩個(gè)寄存器。詳細(xì)拜訪哪一個(gè)寄存器取決于其次個(gè)操作碼的值。b.分命令寄存器和數(shù)據(jù)寄存器unpredictable(unp):從這個(gè)地方讀出的值可以是隨意的should be zero(sbz):往這個(gè)地方寫(xiě)入的時(shí)候,這個(gè)域的全部位都應(yīng)當(dāng)清0只能在特權(quán)模式下用法mrc和mcr命令拜訪cp15的寄存器。mcr和mrc的命令位模式如下:它們的匯編代碼為:mcr/mrccond p15,opcode_1,rd,crn,crm,opcode_2cond是條件碼,bit20是l位,假如l=1就表示load,從外面讀到cpu核中,也就是mrc命令,假如l=0

5、就表示store,也就是mcr命令。11:8這四個(gè)位是協(xié)處理器編號(hào),cp15編號(hào)是15,因此是4個(gè)1。crn是cp15寄存器編號(hào),rd是cpu核寄存器編號(hào),各占4位。對(duì)于cp15協(xié)處理器,規(guī)定opcod1應(yīng)當(dāng)為0,opcode2和crm是命令的選項(xiàng),詳細(xì)含義取決于不同的寄存器。寄存器0,id編碼寄存器這是一個(gè)用于返回設(shè)備id編碼的只讀寄存器你可以通過(guò)將opcode2設(shè)置為除1以外的值來(lái)拜訪cp15的id編碼寄存器r0(crm此時(shí)應(yīng)置為0)。例如:mrc p15,0,rd,c0,c0,0;返回id寄存器的值寄存器0,緩存類(lèi)型寄存器這是一個(gè)只讀寄存器,它包含了緩存的架構(gòu)和大小的信息,這就允許操作系

6、統(tǒng)來(lái)確定要如何執(zhí)行諸如清理緩存和鎖定緩存的操作。全部armv4t版本及以后的帶緩存處理器都包含這個(gè)寄存器,允許實(shí)時(shí)操作系統(tǒng)的廠商生產(chǎn)他們的操作系統(tǒng)的實(shí)驗(yàn)版本。你可以通過(guò)將opcode_2設(shè)置為1來(lái)拜訪cp15的緩存類(lèi)型寄存器r0。如:mrc p15,0,rd,c0,c0,1;返回關(guān)于緩存的具體信息還有一個(gè)bic是清除命令,bic位清除命令命令格式:bicconds rd,rn,operand2bic命令將rn 的值與操作數(shù)operand2 的反碼按位規(guī)律”與”,結(jié)果存放到目的寄存器rd中。命令示例:bic r0,r0,0x0f ;將r0最低4位清零,其余位不變。最后還有一個(gè)mov_pc_lr,

7、這個(gè)是用于子程序返回,代碼分析(這是自己在總結(jié),將別人的東西通過(guò)歸納收拾和分析):macro /這個(gè)是宏定義的關(guān)鍵字mov_pc_lr /作用是子程序返回 thumbcodebx lr /當(dāng)目標(biāo)程序是thumb時(shí),就要用bx跳轉(zhuǎn)返回,并轉(zhuǎn)換模式|mov pc,lr /目標(biāo)程序是arm命令集,挺直把lr賦給pc就可以了,是挺直處理的(這個(gè)要查thumb命令集)。mend /宏定義的結(jié)束標(biāo)記main函數(shù)帶了兩個(gè)參數(shù),有何不同,分離有什么用?int main(int argc, char *argv);這個(gè)語(yǔ)句是常用的程序開(kāi)頭接口函數(shù),前面的int表示返回的類(lèi)型,至于main是經(jīng)過(guò)啟動(dòng)引導(dǎo)的一個(gè)標(biāo)志

8、,可以對(duì)應(yīng)的修改。至于里面的兩個(gè)參數(shù),argc的值表示后面argv數(shù)組傳遞了幾個(gè)參數(shù),可以使argv0、argv1.。對(duì)于gpio如何控制,io有多少功能?大致有三個(gè)寄存器,拿portb口來(lái)說(shuō)吧,gpbcon用來(lái)控制囫圇b口的功能,gpbdat用來(lái)確定是高電平還是低電平,gpbup就是要不要挑選上拉。其次第三功能后面再說(shuō)。什么是協(xié)處理器?協(xié)處理器,一種芯片,用于減輕系統(tǒng)微處理器的特定處理任務(wù)。超級(jí)cpu,pc機(jī)普通沒(méi)有協(xié)處理器,速度歡樂(lè),不需要幫忙了,arm微處理器命令包括5條:一 cdp協(xié)處理器數(shù)操作命令,二 ldc協(xié)處理器數(shù)據(jù)加載命令,三 stc協(xié)處理器存儲(chǔ)命令,四 mcr arm處理器寄

9、存器到協(xié)處理器的數(shù)據(jù)傳送命令,五mrc協(xié)處理器寄存器到arm處理器寄存器的數(shù)據(jù)傳送命令。arm920t協(xié)處理器cp15。什么是影子寄存器?全部的影子寄存器都是一個(gè)實(shí)際存在的物理寄存器,通過(guò)引入影子寄存器,命令可以重復(fù)用法相同的寄存器編碼,但是在不同模式下,這些編碼對(duì)應(yīng)不同的物理寄存器。引入影子寄存器的另外一個(gè)目的是當(dāng)中斷或異樣產(chǎn)生時(shí),cpu會(huì)將當(dāng)前“cpu的狀態(tài)”保存在影子寄存器中。從cpu角度看,它的“狀態(tài)”包括: (1) pc(也就是r15)值 (2) cpsr的值。您大概認(rèn)為r0等通用寄存器也是狀態(tài),從某種意義上說(shuō)您是對(duì)的。但是那些不是“cpu的狀態(tài)”,它們是“應(yīng)用的狀態(tài)”。當(dāng)中斷或異樣

10、產(chǎn)生后,cpu并不關(guān)懷它們,cpu只是:(1) pc值被保存在當(dāng)前模式下的r14中 (2)cpsr值被保存在當(dāng)前模式下的影子寄存器中保存cpu的狀態(tài)是一種便宜的操作,但是要保存應(yīng)用的狀態(tài)可就很昂貴了,由于起碼有13個(gè)寄存器(r0 r12)需要保存,為了加快這種操作,arm的內(nèi)存拜訪命令可以將一組寄存器的內(nèi)容保存到內(nèi)存中,反之亦然。(后面復(fù)習(xí)時(shí)再?gòu)氐追治?thumb命令如何對(duì)使pc工作?本來(lái)arm命令集是32位的,然而也兼容16位的thumb命令集,thumb命令集是arm命令集的一個(gè)子集,是針對(duì)代碼密度問(wèn)題而提出的,它具有16位的代碼寬度。當(dāng)處理器在執(zhí)行arm程序段時(shí),稱(chēng)arm處理器處于arm

11、工作狀態(tài),當(dāng)處理器在執(zhí)行thumb程序段時(shí),稱(chēng)arm處理器處于thumb工作狀態(tài)。thumb命令集并沒(méi)有轉(zhuǎn)變arm體系底層的編程模型,只是在該模型上增強(qiáng)了一些限制條件,只要遵循一定的調(diào)用規(guī)章,thumb子程序和arm子程序就可以相互調(diào)用。thumb命令與arm命令的時(shí)光效率和空間效率關(guān)系為:thumb代碼所需的存儲(chǔ)空間約為arm代碼的60%70%。thumb代碼用法的命令數(shù)比arm代碼多約30%40%。若用法32位的存儲(chǔ)器,arm代碼比thumb代碼快約40%。若用法16位的存儲(chǔ)器,thumb代碼比arm代碼快約40%50%。與arm代碼相比較,用法thumb代碼,存儲(chǔ)器的功耗會(huì)降低約30%。明顯,arm命令集和thumb命令集各有其優(yōu)點(diǎn),若對(duì)系統(tǒng)的性能有較高要求,應(yīng)用法32位的存儲(chǔ)系統(tǒng)和arm命令集,若對(duì)系統(tǒng)的成本

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論