中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
ARM的存儲(chǔ)管理單元MMU
ARM的存儲(chǔ)管理單元MMU2008-01-19 22:06:08
MMU提供的一個(gè)關(guān)鍵服務(wù)是,能使各個(gè)任務(wù)作為獨(dú)立的程序在其自己的私有存儲(chǔ)空間運(yùn)行.地址轉(zhuǎn)換過程允許運(yùn)行的多個(gè)程序使用相同的虛擬地址,而各自存儲(chǔ)在物理存儲(chǔ)器的不同位置.
區(qū)域可以是活躍的,也可以是睡眠的:活躍區(qū)域包含當(dāng)前系統(tǒng)正在使用的代碼或數(shù)據(jù);睡眠區(qū)域包含當(dāng)前不使用,但可能在短時(shí)間內(nèi)變?yōu)榛钴S的代碼或數(shù)據(jù).睡眠區(qū)域是被保護(hù)的,因此當(dāng)前正在運(yùn)行的任務(wù)是不能訪問的.MPU和MMU的主要區(qū)別是,MMU中增加了額外的硬件,以支持虛存.
一個(gè)重定位寄存器只能轉(zhuǎn)換一塊存儲(chǔ)空間.這塊存儲(chǔ)空間的大小由虛擬地址的偏移量部分所占的位數(shù)所決定.ARM的MMU中臨時(shí)存放轉(zhuǎn)換數(shù)據(jù)的一組重定位寄存器實(shí)際上是一個(gè)由64個(gè)重定位寄存器組成的全相聯(lián)cache.這個(gè)cache就是轉(zhuǎn)換旁路緩沖器--TLB.TLB緩存最近被訪問的頁的轉(zhuǎn)換數(shù)據(jù).MMU還使用主存中的表來存放描述系統(tǒng)中用到的虛擬存儲(chǔ)器映射數(shù)據(jù),這些轉(zhuǎn)換數(shù)據(jù)的表就是頁表.頁表中的每個(gè)項(xiàng)代表了將虛擬存儲(chǔ)器的一個(gè)頁轉(zhuǎn)換到物理存儲(chǔ)器的一個(gè)頁幀所需要的所有信息.
在MMU中,區(qū)域被定義為一組頁表的集合,并作為虛存中的連續(xù)頁完全由軟件控制.除了L1一級(jí)頁表外,所有其他的頁表都代表虛存的1MB空間.如果一個(gè)區(qū)域的大小大于1MB或者它跨過頁表的1MB邊界地址,那么就必須使用一組頁表來描述這個(gè)區(qū)域.頁表可以駐留在存儲(chǔ)器中,而不必映射到MMU硬件.
當(dāng)在2個(gè)應(yīng)用程序任務(wù)間實(shí)現(xiàn)上下文切換時(shí),處理器其實(shí)要發(fā)生多次上下文切換.它先從用戶模式任務(wù)切換到內(nèi)核模式任務(wù),以處理準(zhǔn)備運(yùn)行下一個(gè)應(yīng)用程序任務(wù)時(shí)的上下文數(shù)據(jù)的移動(dòng);然后,它從內(nèi)核模式任務(wù)切換到下一個(gè)上下文的新的用戶模式任務(wù).
MMU在轉(zhuǎn)換一個(gè)地址時(shí)失敗,就會(huì)產(chǎn)生一個(gè)中止異常.MMU只有在轉(zhuǎn)換失敗,權(quán)限錯(cuò)誤和域錯(cuò)誤時(shí),才會(huì)中止.
L1住頁表包含2種類型的頁表項(xiàng):保存指向二級(jí)頁表起始地址指針的頁表項(xiàng)和保存用于轉(zhuǎn)換1MB頁的頁表項(xiàng).L1頁表也稱為段頁表.當(dāng)L1頁表作為頁目錄時(shí),其頁表項(xiàng)包含的是1MB虛擬空間的L2粗頁表或L2細(xì)頁表指針;當(dāng)L1頁表用于轉(zhuǎn)換一個(gè)1MB的段時(shí),其頁表項(xiàng)包含的是物理存儲(chǔ)器中1MB頁幀的首地址.目錄頁表項(xiàng)和1MB的段頁表項(xiàng)可以共存于L1主頁表.CP15:c2寄存器保存轉(zhuǎn)換表基地址TTB--指向L1主頁表在虛存中的位置.
TLB只支持兩種類型的命令:清除TLB和鎖定TLB中的轉(zhuǎn)換數(shù)據(jù).存儲(chǔ)器訪問時(shí),MMU將虛擬地址的一部分與TLB中的所有值進(jìn)行比較.如果TLB中已有所要的轉(zhuǎn)換數(shù)據(jù),即為一次TLB命中,則由TLB提供物理地址的轉(zhuǎn)換數(shù)據(jù).如果TLB中不存在有效的轉(zhuǎn)換數(shù)據(jù),即為一次TLB失效,則MMU會(huì)由硬件自動(dòng)處理TLB失效,通過主存中的頁表搜索有效的轉(zhuǎn)換數(shù)據(jù),并將其裝入TLB的64行的一行.如果TLB中的某一行是鎖定的,則當(dāng)TLB清除命令發(fā)出時(shí),它仍然保留在TLB中.
ARM的存儲(chǔ)保護(hù)單元MPU2008-01-19 22:03:38
在受保護(hù)的系統(tǒng)中,主要有兩類資源需要監(jiān)視:存儲(chǔ)器系統(tǒng)和外圍設(shè)備.存儲(chǔ)器中對區(qū)域的訪問可以是讀/寫,只讀或不可訪問,基于當(dāng)時(shí)的處理器模式--管理模式或用戶模式,還有一些附加的權(quán)限.區(qū)域還有控制cache和寫緩沖器屬性的cache寫策略.當(dāng)處理器訪問主存的一個(gè)區(qū)域時(shí),MPU比較該區(qū)域的訪問權(quán)限屬性和當(dāng)時(shí)的處理器模式.如果請求符合區(qū)域訪問標(biāo)準(zhǔn),則MPU允許內(nèi)核讀/寫主存;如果存儲(chǔ)器請求導(dǎo)致存儲(chǔ)器訪問違例,則MPU產(chǎn)生一個(gè)異常信號(hào).
區(qū)域與內(nèi)核是馮.諾依曼結(jié)構(gòu)還是哈佛結(jié)構(gòu)無關(guān).每個(gè)區(qū)域通過0~7的號(hào)碼來標(biāo)識(shí)和引用.區(qū)域的屬性如下:
(1)區(qū)域可以相互重疊;
(2)每個(gè)區(qū)域都分配有一個(gè)優(yōu)先級(jí),該優(yōu)先級(jí)與分配區(qū)域的權(quán)限無關(guān);
(3)當(dāng)區(qū)域重疊時(shí),具有最高優(yōu)先級(jí)的區(qū)域的屬性可以覆蓋其他區(qū)域的屬性,優(yōu)先級(jí)僅作用于重疊部分的地址;
(4)區(qū)域的起始地址必須是其大小的倍數(shù);
(5)區(qū)域的大小可以是4KB~4GB之間的任何2的乘冪;
(6)訪問所定義區(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ù)單元.控制器通過設(shè)置CP15的主寄存器c1~5來配置MPU.通過配置寄存器c2和c3來設(shè)置區(qū)域的cache和寫緩沖器的屬性,寄存器c5控制區(qū)域的訪問權(quán)限,在寄存器c6里有8個(gè)或16個(gè)次寄存器用來定義每個(gè)區(qū)域的大小和位置.初始化MPU,cache和寫緩沖器需要以下步驟:
(1)使用CP15:c6來定義指令和數(shù)據(jù)區(qū)域的大小和位置
(2)使用CP15:c5來設(shè)置每個(gè)區(qū)域的訪問權(quán)限
(3)分別使用CP15:c2和CP15:c3來設(shè)置每個(gè)區(qū)域的cache和寫緩沖器屬性
(4)使用CP15:c1來使能cache和MPU
每個(gè)內(nèi)核有3個(gè)CP15寄存器用來控制區(qū)域的cache和寫緩沖器屬性.其中CP15:c2:c0:0和CP15:c2:c0:1兩個(gè)寄存器保存D-cache和I-cache區(qū)域?qū)傩?第三個(gè)寄存器,CP15:c3:c0:0用于保存區(qū)域?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)wince2008-04-16 15:47:25
經(jīng)過一周的時(shí)間終于在s3c2440上把sdboot給跑起來了。整個(gè)任務(wù)是在已有的bootloader上(用usb線從pc下載的方式)修改以支持直接從sd卡上拷貝nk.nb0文件到內(nèi)存并啟動(dòng)。    有關(guān)sd卡驅(qū)動(dòng)和fat fs的實(shí)現(xiàn)用了3個(gè)文件來實(shí)現(xiàn)。sdboot.c為sd的驅(qū)動(dòng)(可理解為pdd)層,主要實(shí)現(xiàn)一些對sd控制器的配置以及一些基本sd命令的實(shí)現(xiàn)和對sd卡的操作。sdmmc.c實(shí)現(xiàn)了從sd卡讀取nk并跳到內(nèi)存去運(yùn)行的代碼(基本可以理解為sd驅(qū)動(dòng)的mdd層)。sdfat.c文件就是實(shí)現(xiàn)fat fs的。mdd層通過fatfs來對pdd層操作以實(shí)現(xiàn)讀取文件。
在整個(gè)過程中遇到了很多問題,現(xiàn)在列舉如下:
1)sd卡初始化問題
配置gpio有關(guān)sd的功能:SDCMD, SDDAT[3:0]。
使能CLKCON中的SDI位。
時(shí)鐘以及計(jì)算公式:SDIPRE   = PCLK/(CLK)-1;INICLK=300000;SDCLK=24000000; MMCCLK= 15000000
cmd0-cmd55-cmd41-cmd2-cmd3-cmd7-cmd6-cmd17
2)對sd卡操作問題
SD卡包括:一個(gè)標(biāo)識(shí)寄存器CID,一個(gè)相應(yīng)地址寄存器RCA,一個(gè)其他參數(shù)寄存器
CSD。
對sd卡的操作是驅(qū)動(dòng)通過sd controller來發(fā)相應(yīng)的命令以達(dá)到讀寫等操作的:發(fā)送命令通過SDICmdCon[7:0]的除了開始2bit:CmdIndex放置要發(fā)送的命令號(hào);SDICmdCon[8]開始發(fā)送命令來完成的。
檢測卡的插入,直接用中斷引腳的電平來判斷。
判斷插入的卡是否是sd卡,用命令cmd55和cmd41,因?yàn)閙mc卡對cmd55不做回應(yīng)。
命令9就是獲取sd卡中csd寄存器的值的,該值包括很多sd卡的信息,其中就有sd卡的容量。這個(gè)值在sd卡接收到cmd9之后會(huì)以response的形式存放在sd控制器的SDI Response Register[0,1,2,3]中。在執(zhí)行cmd9,cmd10等這樣的命令的時(shí)候,卡的狀態(tài)應(yīng)該是不選中的,或直接在執(zhí)行它們之前發(fā)送cmd7(0)不選中卡,不然的話會(huì)timeout。
用cmd17來讀取單個(gè)block的數(shù)據(jù),該命令要帶地址參數(shù)(該參數(shù)通過cmd3命令來獲?。缓蟾鶕?jù)SDIDSTA和SDIFSTA狀態(tài)值來從sd控制器的SDIDAT寄存器中讀出要讀的數(shù)據(jù)。該命令與cmd9相反,在執(zhí)行它之前要選中卡。讀完一個(gè)block之后要做一些善后工作,為下次讀取做好準(zhǔn)備,不然的話checkcmdend就要一直循環(huán)了。因?yàn)橛玫氖敲看味甲x一個(gè)block,并地址要以block對齊,這樣就要考慮要讀取的地址是否是block對齊的,長度是否夠一個(gè)block。
SDIDCON這個(gè)數(shù)據(jù)控制寄存器也很重要,一些對數(shù)據(jù)的操作形式就是在這里設(shè)置的。
3)fat文件系統(tǒng)問題
根據(jù)MBR找到分區(qū)表,根據(jù)分區(qū)表找到該分區(qū)MBR[446B+4個(gè)分區(qū)表(每個(gè)16B)+2B結(jié)束符)
分區(qū)表中的第9-12字節(jié)為該分區(qū)的啟始地址(單位沒sector),第13-16字節(jié)為分區(qū)的長度(單位也是sector)
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
s3c2440硬件學(xué)習(xí)筆記----內(nèi)存管理單元MMU
MIPS的內(nèi)存映射
ARM920T虛擬地址原理分析及實(shí)現(xiàn)
ARMv7-A 處理器窺探
MMU結(jié)構(gòu)以及工作原理
淺談Cache和MMU
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服