下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
ARM的儲(chǔ)存管理單元MMUARM的儲(chǔ)存管理單元MMUARM的儲(chǔ)存管理單元MMU2021-01-1922:06:08MMU供給的一個(gè)重點(diǎn)服務(wù)是,能使各個(gè)任務(wù)作為獨(dú)立的程序在其自己的私有儲(chǔ)存空間運(yùn)行.地點(diǎn)變換過(guò)程同意運(yùn)轉(zhuǎn)的多個(gè)程序使用同樣的虛構(gòu)地點(diǎn),而各自儲(chǔ)存在物理儲(chǔ)存器的不一樣地點(diǎn).地區(qū)能夠是活躍的,也能夠是睡眠的:活躍地區(qū)包含目前系統(tǒng)正在使用的代碼或數(shù)據(jù);睡眠地區(qū)包含目前不使用,但可能在短時(shí)間內(nèi)變成活躍的代碼或數(shù)據(jù).睡眠地區(qū)是被保護(hù)的,所以目前正在運(yùn)轉(zhuǎn)的任務(wù)是不可以接見(jiàn)的.MPU和MMU的主要差別是,MMU中增添了額外的硬件,以支持虛存.一個(gè)重定位寄存器只好變換一塊儲(chǔ)存空間.這塊儲(chǔ)存空間的大小由虛構(gòu)地點(diǎn)的偏移量部分所占的位數(shù)所決定.ARM的MMU中暫時(shí)寄存變換數(shù)據(jù)的一組重定位寄存器其實(shí)是一個(gè)由64個(gè)重定位寄存器構(gòu)成的全相聯(lián)cache.這個(gè)cache就是變換旁路緩沖器--TLB.TLB緩存近來(lái)被接見(jiàn)的頁(yè)的變換數(shù)據(jù).MMU還使用主存中的表來(lái)寄存描繪系統(tǒng)頂用到的虛構(gòu)儲(chǔ)存器映照數(shù)據(jù),這些變換數(shù)據(jù)的表就是頁(yè)表.頁(yè)表中的每個(gè)項(xiàng)代表了將虛構(gòu)儲(chǔ)存器的一個(gè)頁(yè)變換到物理儲(chǔ)存器的一個(gè)頁(yè)幀所需要的全部信息.在MMU中,地區(qū)被定義為一組頁(yè)表的會(huì)合,并作為虛存中的連續(xù)頁(yè)完整由軟件控制.除了L1一級(jí)頁(yè)表外,全部其余的頁(yè)表都代表虛存的1MB空間.假如一個(gè)地區(qū)的大小大于1MB或許它越過(guò)頁(yè)表的1MB界限地點(diǎn),那么就一定使用一組頁(yè)表來(lái)描繪這個(gè)地區(qū).頁(yè)表能夠駐留在儲(chǔ)存器中,而不用映照到MMU硬件.當(dāng)在2個(gè)應(yīng)用程序任務(wù)間實(shí)現(xiàn)上下文切換時(shí),辦理器其實(shí)要發(fā)生多次上下文切換從用戶模式任務(wù)切換到內(nèi)核模式任務(wù),以辦理準(zhǔn)備運(yùn)轉(zhuǎn)下一個(gè)應(yīng)用程序任務(wù)時(shí)的上下文數(shù)
.它先據(jù)的挪動(dòng);而后,它從內(nèi)核模式任務(wù)切換到下一個(gè)上下文的新的用戶模式任務(wù).MMU在變換一個(gè)地點(diǎn)時(shí)失敗,就會(huì)產(chǎn)生一此中斷異樣.MMU只有在變換失敗,權(quán)限錯(cuò)誤和域錯(cuò)誤時(shí),才會(huì)中斷.L1住頁(yè)表包含2種種類的頁(yè)表項(xiàng):保存指向二級(jí)頁(yè)表開(kāi)端地點(diǎn)指針的頁(yè)表項(xiàng)和保存用于變換1MB頁(yè)的頁(yè)表項(xiàng).L1頁(yè)表也稱為段頁(yè)表.當(dāng)L1頁(yè)表作為頁(yè)目錄時(shí),其頁(yè)表項(xiàng)包含的是1MB虛構(gòu)空間的L2粗頁(yè)表或L2細(xì)頁(yè)表指針;當(dāng)L1頁(yè)表用于變換一個(gè)1MB的段時(shí),其頁(yè)表項(xiàng)包含的是物理儲(chǔ)存器中1MB頁(yè)幀的首地點(diǎn).目錄頁(yè)表項(xiàng)和1MB的段頁(yè)表項(xiàng)能夠共存于L1主頁(yè)表.CP15:c2寄存器保存變換表基地點(diǎn)TTB--指向L1主頁(yè)表在虛存中的地點(diǎn).TLB只支持兩種種類的命令:消除TLB和鎖定TLB中的變換數(shù)據(jù).儲(chǔ)存器接見(jiàn)時(shí),MMU將虛構(gòu)地點(diǎn)的一部分與TLB中的全部值進(jìn)行比較.假如TLB中已有所要的變換數(shù)據(jù),即為一次TLB命中,則由TLB供給物理地點(diǎn)的變換數(shù)據(jù).假如TLB中不存在有效的變換數(shù)據(jù),即為一次TLB無(wú)效,則MMU會(huì)由硬件自動(dòng)辦理TLB無(wú)效,經(jīng)過(guò)主存中的頁(yè)表搜尋有效的變換數(shù)據(jù),并將其裝入TLB的64行的一行.假如TLB中的某一行是鎖定的,則當(dāng)TLB消除命令發(fā)出時(shí),它仍舊保存在TLB中.ARM
的儲(chǔ)存保護(hù)單元
MPU2021-01-1922:03:38在受保護(hù)的系統(tǒng)中,主要有兩類資源需要監(jiān)督:儲(chǔ)存器系統(tǒng)和外頭設(shè)施.儲(chǔ)存器中對(duì)區(qū)域的接見(jiàn)能夠是讀/寫,只讀或不行接見(jiàn),鑒于當(dāng)時(shí)的辦理器模式--管理模式或用戶模式,還有一些附帶的權(quán)限.地區(qū)還有控制cache和寫緩沖器屬性的cache寫策略.當(dāng)辦理器接見(jiàn)主存的一個(gè)地區(qū)時(shí),MPU比較該地區(qū)的接見(jiàn)權(quán)限屬性和當(dāng)時(shí)的辦理器模式.假如懇求切合地區(qū)接見(jiàn)標(biāo)準(zhǔn),則MPU同意內(nèi)核讀/寫主存;假如儲(chǔ)存器懇求致使儲(chǔ)存器接見(jiàn)違例,則MPU產(chǎn)生一個(gè)異樣信號(hào).地區(qū)與內(nèi)核是馮.諾依曼構(gòu)造仍是哈佛構(gòu)造沒(méi)關(guān).每個(gè)地區(qū)經(jīng)過(guò)0~7的號(hào)碼來(lái)表記和引用.地區(qū)的屬性以下:地區(qū)能夠互相重疊;每個(gè)地區(qū)都分派有一個(gè)優(yōu)先級(jí),該優(yōu)先級(jí)與分派地區(qū)的權(quán)限沒(méi)關(guān);當(dāng)?shù)貐^(qū)重疊時(shí),擁有最高優(yōu)先級(jí)的地區(qū)的屬性能夠覆蓋其余地區(qū)的屬性,優(yōu)先級(jí)僅作用于重疊部分的地點(diǎn);地區(qū)的開(kāi)端地點(diǎn)一定是其大小的倍數(shù);地區(qū)的大小能夠是4KB~4GB之間的任何2的乘冪;接見(jiàn)所定義地區(qū)外的儲(chǔ)存器將產(chǎn)生異樣.假如是內(nèi)核預(yù)取指令,則MPU產(chǎn)生預(yù)取指令中斷異樣;假如是儲(chǔ)存器數(shù)據(jù)懇求,則產(chǎn)生數(shù)據(jù)中斷異樣.在啟用儲(chǔ)存器保護(hù)單元以前,一定起碼定義一個(gè)數(shù)據(jù)地區(qū)和一個(gè)指令地區(qū),并且一定在啟用cache和寫緩沖器以前(或同時(shí))啟用儲(chǔ)存器保護(hù)單元.控制器經(jīng)過(guò)設(shè)置CP15的主寄存器c1~5來(lái)配置MPU.經(jīng)過(guò)配置寄存器c2和c3來(lái)設(shè)置地區(qū)的cache和寫緩沖器的屬性,寄存器c5控制地區(qū)的接見(jiàn)權(quán)限,在寄存器c6里有8個(gè)或16個(gè)次寄存器用來(lái)定義每個(gè)地區(qū)的大小和地點(diǎn).初始化MPU,cache和寫緩沖器需要以下步驟:使用CP15:c6來(lái)定義指令和數(shù)據(jù)地區(qū)的大小和地點(diǎn)使用CP15:c5來(lái)設(shè)置每個(gè)地區(qū)的接見(jiàn)權(quán)限(3)分別使用CP15:c2和CP15:c3來(lái)設(shè)置每個(gè)地區(qū)的cache和寫緩沖器屬性(4)使用CP15:c1來(lái)使能cache和MPU每個(gè)內(nèi)核有3個(gè)CP15寄存器用來(lái)控制地區(qū)的cache和寫緩沖器屬性.此中CP15:c2:c0:0和CP15:c2:c0:1兩個(gè)寄存器保存D-cache和I-cache地區(qū)屬性;第三個(gè)寄存器,CP15:c3:c0:0用于保存地區(qū)寫緩沖器屬性,并應(yīng)用于儲(chǔ)存器數(shù)據(jù)地區(qū).當(dāng)配置數(shù)據(jù)地區(qū)時(shí),地區(qū)的cache位和寫緩沖器位一同決定地區(qū)的策略.寫緩沖器位有2個(gè)用途:使能和禁止地區(qū)的寫緩沖器和設(shè)置地區(qū)的cache策略.地區(qū)的cache位控制寫緩沖器位的作用.當(dāng)cache位為0時(shí),寫緩沖器位為1,則使能寫緩沖器;寫緩沖器位為0,則禁用寫緩沖器.當(dāng)cache位為1時(shí),cache和寫緩沖器都被使能,此時(shí)寫緩沖器位決定cache策略.若寫緩沖器位為0,則地區(qū)使用直寫策略;若寫緩沖器位為1,則地區(qū)使用回寫策略.S3C2440從sd卡啟動(dòng)wince2021-04-1615:47:25經(jīng)過(guò)一周的時(shí)間終于在s3c2440上把sdboot給跑起來(lái)了。整個(gè)任務(wù)是在已有的bootloader上(用usb線從pc下載的方式)改正以支持直接從sd卡上拷貝nk.nb0文件到內(nèi)存并啟動(dòng)。相關(guān)sd卡驅(qū)動(dòng)和fatfs的實(shí)現(xiàn)用了3個(gè)文件來(lái)實(shí)現(xiàn)。sdboot.c為sd的驅(qū)動(dòng)(可理解為pdd)層,主要實(shí)現(xiàn)一些對(duì)sd控制器的配置以及一些基本sd命令的實(shí)現(xiàn)和對(duì)sd卡的操作。sdmmc.c實(shí)現(xiàn)了從sd卡讀取nk并跳到內(nèi)存去運(yùn)轉(zhuǎn)的代碼(基本能夠理解為sd驅(qū)動(dòng)的mdd層)。sdfat.c文件就是實(shí)現(xiàn)fatfs的。mdd層經(jīng)過(guò)fatfs來(lái)對(duì)pdd層操作以實(shí)現(xiàn)讀取文件。在整個(gè)過(guò)程中碰到了好多問(wèn)題,此刻列舉以下:1)sd卡初始化問(wèn)題配置gpio相關(guān)sd的功能:SDCMD,SDDAT[3:0]。使能CLKCON中的SDI位。時(shí)鐘以及計(jì)算公式:SDIPRE=PCLK/(CLK)-1;INICLK=300000;SDCLK=24000000;MMCCLK=15000000cmd0-cmd55-cmd41-cmd2-cmd3-cmd7-cmd6-cmd172)對(duì)sd卡操作問(wèn)題SD卡包含:一個(gè)表記寄存器CID,一個(gè)相應(yīng)地點(diǎn)寄存器RCA,一個(gè)其余參數(shù)寄存器對(duì)sd卡的操作是驅(qū)動(dòng)經(jīng)過(guò)sdcontroller來(lái)發(fā)相應(yīng)的命令以達(dá)到讀寫等操作的:發(fā)喪命令經(jīng)過(guò)SDICmdCon[7:0]的除了開(kāi)始2bit:CmdIndex擱置要發(fā)送的命令號(hào);SDICmdCon[8]開(kāi)始發(fā)喪命令來(lái)達(dá)成的。檢測(cè)卡的插入,直接用中斷引腳的電平來(lái)判斷。判斷插入的卡是不是sd卡,用命令cmd55和cmd41,由于mmc卡對(duì)cmd55不做回應(yīng)。命令9就是獲得sd卡中csd寄存器的值的,該值包含好多sd卡的信息,此中就有卡的容量。這個(gè)值在sd卡接收到cmd9以后會(huì)以response的形式寄存在sd控制器的ResponseRegister[0,1,2,3]中。在履行cmd9,cmd10等這樣的命令的時(shí)候,卡的狀態(tài)應(yīng)當(dāng)是不選中的,或直接在履行它們以前發(fā)送cmd7(0)不選中卡,否則的話會(huì)timeout。
sdSDI用cmd17來(lái)讀取單個(gè)block的數(shù)據(jù),該命令要帶地點(diǎn)參數(shù)(該參數(shù)經(jīng)過(guò)cmd3命令來(lái)獲得),而后依據(jù)SDIDSTA和SDIFSTA狀態(tài)值來(lái)從sd控制器的SDIDAT寄存器中讀出要讀的數(shù)據(jù)。該命令與cmd9相反,在履行它以前要選中卡。讀完一個(gè)block以后要做一些善后工作,為下次讀取做好準(zhǔn)備,否則的話checkcmdend就要向來(lái)循環(huán)了。由于用的是每次都讀一個(gè)block,并地點(diǎn)要以block對(duì)齊,這樣就要考慮要讀取的地點(diǎn)是不是blo
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 司機(jī)崗位聘用合同協(xié)議要點(diǎn)
- 2024年探店選址合作協(xié)議書模板
- 2024年燒傷診所三人合作協(xié)議書模板
- 2024年二手住宅買賣合同范本
- 2024年健康項(xiàng)目推廣合作協(xié)議書模板
- Web 前端開(kāi)發(fā)技術(shù) 教案 項(xiàng)目三 HTML5 基礎(chǔ)
- 甘肅省武威市第四中學(xué)2024年招生全國(guó)統(tǒng)一考試數(shù)學(xué)試題仿真試題
- 騎車技巧課程設(shè)計(jì)
- 霓虹燈 eda課程設(shè)計(jì)
- 地質(zhì)災(zāi)害治理工程竣工報(bào)告
- 三年級(jí) 上冊(cè)科學(xué) 課件-2.4 哺乳動(dòng)物 |湘教版(一起)(共23張PPT)
- 三年級(jí)檢討書100字(5篇)
- 四年級(jí)上冊(cè)美術(shù)教案-第10課 黑白灰 蘇少版
- 樂(lè)山市市中區(qū)2022-2023學(xué)年度上期期中調(diào)研考試八年級(jí)生物試題及答案
- 《出塞》優(yōu)秀課件
- 《鐵道概論》考試復(fù)習(xí)題庫(kù)400題(含答案)
- 江西省九江市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名明細(xì)及行政區(qū)劃代碼
- 公安網(wǎng)站設(shè)計(jì)方案
- 冷干機(jī)使用說(shuō)明書
- 箱變施工方案
- 心系中國(guó)夢(mèng)兒童競(jìng)選少先隊(duì)大隊(duì)長(zhǎng)PPT飄揚(yáng)紅領(lǐng)巾光榮少先隊(duì)PPT課件(帶內(nèi)容)
評(píng)論
0/150
提交評(píng)論