一、首先普及一下什么是Cache
基于程序訪問的局限性,在主存和CPU通用寄存器之前設(shè)置了一類高速的、容量較小的存儲器,把正在執(zhí)行的指令地址附件的一部分指令或數(shù)據(jù)從主存調(diào)入這類存儲器,供CPU在一段時間內(nèi)使用,這對提高程序的運(yùn)行速度有很大的作用。這類介于主存和CPU之間的高速小容量存儲器稱作高速cache。比較常見的cache包括icache和dcache。
icache的使用比較簡單,系統(tǒng)剛上電時,icache中的內(nèi)容是無效的,并且icache的功能是關(guān)閉的,往CP15協(xié)處理器中的寄存器1的bit[12]寫1可以啟動icache,寫0可以停止icache。icache關(guān)閉時,CPU每次取指都要讀主存,性能非常低。因?yàn)閕cache可隨時啟動,越早開icache越好。與icache相似,系統(tǒng)剛上電時, dcache中的內(nèi)容是無效的,并且dcache的功能是關(guān)閉的,往CP15協(xié)處理器中的寄存器1的bit[2]寫1可以啟動dcache,寫0可以停止dcache。因?yàn)?dcache必須在啟動mmu后才能被啟動,而對于裸機(jī)而言,沒必要開mmu,所以本教程的程序?qū)⒉粫觗cache。
二、再介紹一下ARM協(xié)處理器CP15及MCR和MRC指令
在基于ARM的嵌入式應(yīng)用系統(tǒng)中,存儲系統(tǒng)通常是通過系統(tǒng)控制協(xié)處理器CP15完成的。CP15包含16個32位的寄存器,其編號為0~15。
訪問CP15寄存器的指令
MCR ARM寄存器到協(xié)處理器寄存器的數(shù)據(jù)傳送
MRC 協(xié)處理器寄存器到ARM寄存器的數(shù)據(jù)傳送
MCR指令和MRC指令只能在處理器模式為系統(tǒng)模式時執(zhí)行,在用戶模式下執(zhí)行MCR指令和MRC指令將會觸發(fā)未定義指令的異常中斷。
①M(fèi)CR指令
MCR指令將ARM處理器的寄存器中的數(shù)據(jù)傳送到協(xié)處理器寄存器中。如果協(xié)處理器不能成功地執(zhí)行該操作,將產(chǎn)生未定義的指令異常中斷。
指令語法格式:
MCR{ ,< opcode_1>, MCR{ 其中, < opcode_1>為協(xié)處理器將執(zhí)行的操作的操作碼。對于CP15協(xié)處理器來說,< opcode_1>永遠(yuǎn)為0b000,當(dāng)< opcode_1>不為0b000時,該指令操作結(jié)果不可預(yù)知。 The CRm field and opcode_2 field are used to specify a particular action when addressing registers.The opcode_1, opcode_2 and CRm fields should be zero, except when the values specified are used to select the desired operations, in all instructions which access CP15. Using other values will result in unpredictable behavior. Attempting to read from a non-readable register, or writing to a non-writable register will cause unpredictable results. 使用示例: 下面的指令從ARM寄存器R4中中將數(shù)據(jù)傳送到協(xié)處理器CP15的寄存器C1中。其中R4為ARM寄存器,存放源操作數(shù),C1、C0為協(xié)處理器寄存器,為目標(biāo)寄存器,opcode_1為0,opcode_2為0。 MCR p15, 0, R4, C1, C0, 0 ②MRC指令 MRC指令將協(xié)處理器的寄存器中的數(shù)值傳送到ARM處理器的寄存器中、如果協(xié)處理器不能成功地執(zhí)行該操作,將產(chǎn)生未定義的指令異常中斷。 指令語法格式: MRC{ ,< opcode_1>, MRC{ 參數(shù)用法同MCR指令 先介紹到這里,等著開一篇文章專門介紹CP15協(xié)處理器的寄存器 三、程序說明 從這一小節(jié)開始,我們加入自己關(guān)閉看門狗的代碼,盡管IROM已經(jīng)這樣做了: // 關(guān)閉看門狗 ldr r0, =0x10060000 mov r1, #0 str r1, [r0] 基于上一個實(shí)驗(yàn)的程序,其他文件不動,我們只改變start.S文件,增加如下代碼: mrc p15, 0, r0, c1, c0, 0 orr r0, r0, #0x00001000 mcr p15, 0, r0, c1, c0, 0 這樣就打開了ICache。 四、程序編譯及燒寫 1.編譯 通過FTP或者其他工具將文件上傳到服務(wù)器上去,輸入make命令進(jìn)行編譯將得到open_ichche.bin文件。 2.燒寫 將SD卡插入電腦,并讓VmWare里的Ubuntu識別出來,然后執(zhí)行如下命令: sudo ./sd_fusing.sh /dev/sdb ../7_open_icache/open_icache.bin 五、上電實(shí)驗(yàn) 你會發(fā)現(xiàn)LED閃動的頻率和上一個實(shí)驗(yàn)完全相同,為什么呢?因?yàn)镮ROM的固化代碼已經(jīng)幫我們啟動了icache,如果我們要想體驗(yàn)icache 的威力,只需修改start.S文件為以下即可: // 打開icache可提高運(yùn)行速度 mrc p15, 0, r0, c1, c0, 0 //orr r0, r0, #0x00001000 //打開ICache bic r0, r0, #0x00001000 //關(guān)閉ICache mcr p15, 0, r0, c1, c0, 0 然后重新編譯、燒寫、上電運(yùn)行,你會發(fā)現(xiàn)LED的閃動頻率慢了很多很多,由此就可以看到ICache的強(qiáng)大威力!!
上一篇:Tiny4412裸機(jī)程序,時鐘操作
下一篇:Exynos4412 裸機(jī)開發(fā) —— IIC總線
推薦閱讀
史海拾趣
隨著企業(yè)規(guī)模的擴(kuò)大和影響力的提升,廣東奧科公司開始積極承擔(dān)社會責(zé)任,推動可持續(xù)發(fā)展。公司注重環(huán)保和節(jié)能技術(shù)的應(yīng)用,致力于生產(chǎn)環(huán)保型電子產(chǎn)品,減少生產(chǎn)過程中的能源消耗和環(huán)境污染。同時,廣東奧科公司還積極參與社會公益事業(yè),為社會的發(fā)展貢獻(xiàn)自己的力量。這些舉措不僅提升了公司的社會形象,也為公司的可持續(xù)發(fā)展奠定了堅實(shí)的基礎(chǔ)。
這些故事展示了廣東奧科公司在電子行業(yè)中的發(fā)展歷程和取得的成就,也體現(xiàn)了公司不斷創(chuàng)新、追求卓越的精神。未來,廣東奧科公司將繼續(xù)秉持這一精神,為電子行業(yè)的發(fā)展貢獻(xiàn)更多的力量。
隨著電子技術(shù)的快速發(fā)展,廣東奧科公司意識到只有不斷創(chuàng)新才能在市場中立足。公司加大了對研發(fā)的投入,引進(jìn)了一批高素質(zhì)的研發(fā)人才,并建立了完善的研發(fā)體系。經(jīng)過多次嘗試和實(shí)驗(yàn),廣東奧科公司成功開發(fā)出了多款具有創(chuàng)新性和競爭力的電子產(chǎn)品,這些產(chǎn)品不僅性能卓越,而且設(shè)計獨(dú)特,深受消費(fèi)者的喜愛。這些技術(shù)突破和產(chǎn)品創(chuàng)新為廣東奧科公司贏得了市場的認(rèn)可,也推動了公司的快速發(fā)展。
在國內(nèi)市場取得一定成績后,廣東奧科公司開始積極拓展國際市場。公司參加了多個國際電子展會,與國際知名企業(yè)建立了合作關(guān)系,成功將產(chǎn)品打入國際市場。同時,廣東奧科公司還注重品牌建設(shè),通過提升產(chǎn)品質(zhì)量和服務(wù)水平,逐漸樹立了良好的品牌形象。這些努力使得廣東奧科公司在國際市場上也獲得了廣泛的認(rèn)可和好評。
在穩(wěn)步發(fā)展國內(nèi)市場的同時,CST積極拓展國際市場。公司建立了分布世界各地的銷售渠道,與多家國際知名企業(yè)建立了長期穩(wěn)定的合作關(guān)系。通過不斷的市場拓展和品牌建設(shè),CST在國際市場上樹立了良好的企業(yè)形象和品牌形象。
隨著中國市場的崛起,ETERNA開始將目光投向了亞洲市場。2011年,中國從德國保時捷家族手中接過ETERNA的旗幟,開始在全球大力拓展ETERNA品牌。在中國市場的推動下,ETERNA的知名度和影響力不斷提升。同時,公司還加強(qiáng)了與其他國家和地區(qū)的合作與交流,通過參加國際展會和舉辦品牌活動等方式,進(jìn)一步擴(kuò)大了品牌影響力。這些努力使ETERNA在全球電子行業(yè)中逐漸嶄露頭角,成為了一個備受矚目的品牌。
2016年,F(xiàn)airchild Semiconductor被ON Semiconductor收購。這一收購標(biāo)志著Fairchild Semiconductor的發(fā)展進(jìn)入了一個新的階段。ON Semiconductor是一家全球領(lǐng)先的半導(dǎo)體公司,擁有廣泛的產(chǎn)品線和強(qiáng)大的技術(shù)實(shí)力。通過整合Fairchild Semiconductor的技術(shù)和資源,ON Semiconductor進(jìn)一步鞏固了其在半導(dǎo)體行業(yè)中的領(lǐng)導(dǎo)地位,并繼續(xù)為全球客戶提供優(yōu)質(zhì)的半導(dǎo)體產(chǎn)品和服務(wù)。
Q2406B型GPRS模塊在三害預(yù)防系統(tǒng)中的應(yīng)用 在環(huán)境問題日益迫切的今天,以信息化促進(jìn)環(huán)境保護(hù)、建設(shè)美麗家園已成為最有效有力的舉措之一。 北京xx科技有限公司的Q2406B型 GPRS無線數(shù)據(jù)傳輸產(chǎn)品,在環(huán)境監(jiān)測、氣象、汛情測報中得到良好應(yīng)用,成為了: 環(huán)境監(jiān)測的"特種信號兵"; ...… 查看全部問答∨ |
如題,偶是很想問一下,學(xué)嵌入式軟件(搞ARM的),有沒有必要學(xué)java呢? 各位大蝦給個指點(diǎn)吧!~ 期待中。。。… 查看全部問答∨ |
六位電子鐘我想是每個初學(xué)電子或者初學(xué)單片機(jī)程序的朋友必做的項(xiàng)目吧,大家基本都在學(xué)習(xí)板上利用小尺寸數(shù)碼管做過,但是如果讓大家用1.8寸以上數(shù)碼管甚至20寸數(shù)碼管制作,大家覺得會什么問題呢?下面開始就大尺寸數(shù)碼管電子鐘制作談?wù)剛€人的設(shè)計思 ...… 查看全部問答∨ |
|
請問用 ethereal 的時候識別不到網(wǎng)卡,是怎么回事? 在選擇網(wǎng)卡的interface處只有下面一行,發(fā)現(xiàn)并不是我機(jī)器上的網(wǎng)卡。 Generic dialup adapter: \\Device\\NPF_GenericDialupAdapter 這個現(xiàn)象 是由于我用優(yōu)化工具優(yōu)化電腦,之后抓包工具就找不 ...… 查看全部問答∨ |
evc DirectDraw 中DirectDrawCreate創(chuàng)建失敗 LPDIRECTDRAW pDD = NULL; hRet = ::DirectDrawCreate(NULL, &pDD, NULL); 返回-2005532450 不知道什么原因? 高手指點(diǎn)啊。… 查看全部問答∨ |
2440用TCP/IP往上位機(jī)發(fā)送文件 有些問題 新手求助 PC采用TCP&UDP測試工具接收2440發(fā)送的數(shù)據(jù) 新手求助 大家?guī)兔纯? 問題:1.若發(fā)送內(nèi)容只是一行字符的文件 只收到文件內(nèi)容的第一個字符 TCP&UDP測試工具 計數(shù)顯示的數(shù) 是文件字符數(shù)2倍 2.若發(fā)送分辨率640X480 600K的b ...… 查看全部問答∨ |
請教使用過AT89C5131A-M的兄弟,關(guān)于程序最后燒寫的問題 我基于AT89C5131A-M寫了代碼,現(xiàn)在已經(jīng)調(diào)試通過了,我想問問最后如何將代碼固化到芯片里,在使用外部電源供電的情況下正常使用。 按照datasheet寫的用flip勾掉BLJB之后就應(yīng)該可以上電后進(jìn)入用戶自己的應(yīng)用運(yùn)行了啊,我這樣做了就是上電后不工作啊 ...… 查看全部問答∨ |
STM32F103執(zhí)行的程序代碼是放在哪里呢? 下載后,程序代碼是放在0x0800 0000 —— 0x0807 FFFF 這個區(qū)間之內(nèi)嗎? 另外,程序里面需要保存一些固定的參數(shù)!可以放到這個空間里面嗎?… 查看全部問答∨ |
設(shè)計資源 培訓(xùn) 開發(fā)板 精華推薦
- 面壁智能端側(cè)大模型首日上線,英特爾工程師聯(lián)合優(yōu)化實(shí)現(xiàn)2.2倍推理效率躍升
- 瞄準(zhǔn)車規(guī)級碳化硅,理想發(fā)表重要成果
- 車規(guī)級MCU國內(nèi)替代提速
- 博世新獲國內(nèi)頭部車企座艙域控項(xiàng)目定點(diǎn)
- 首款測量電動汽車電機(jī)溫度的傳感器問世,提升對磁鐵的保護(hù)以減少稀土的使用
- Arm開發(fā)出計算子系統(tǒng) 以加速汽車設(shè)計的下一代AI芯片的開發(fā)
- 福特汽車申請新專利 或?qū)崿F(xiàn)車庫定向音樂播放
- 泊車場景一定需要超聲波嗎?
- 同星新一代TC1055 Pro開啟車載網(wǎng)絡(luò)測試新時代
- 福特汽車申請新專利 或?qū)⑴鋫浒踩ㄗ粉櫹到y(tǒng)
- EEWORLD 示波器問卷有獎大調(diào)查
- 不可錯過的一次邂逅,TTI攜TE傳感器樣片與你相見!免費(fèi)樣片申請活動開始啦~
- 有獎直播 | 與英飛凌一同革新您的電動汽車溫控系統(tǒng):集成熱管理系統(tǒng)(低壓側(cè))
- 有獎直播 | ST25 NFC新產(chǎn)品及應(yīng)用方案介紹 報名中
- 電源情報站 MPS小程序干貨推薦,下載有好禮!3月活動開始啦~
- TTI&TE直播:傳感器在工業(yè)電機(jī)里的發(fā)展及最新應(yīng)用
- 【摸黑搶樓】贏大禮,關(guān)于示波器的狂想曲!正式開搶!!!
- VISHAY工業(yè)電源主題月 幸運(yùn)闖關(guān)贏大獎!
- 有獎直播 | 德州儀器 C2000™ 系列培訓(xùn)會
- 紅外典型應(yīng)用*技術(shù)分享*趣味尋圖,帶你走進(jìn)紅外世界
- 掀起5G普及風(fēng)暴 紫光展銳和海信簽署戰(zhàn)略合作協(xié)議
- MOSFET SGT 5年內(nèi)不會為其他產(chǎn)品取代
- ITC作出光伏電池337案終裁:涉案企業(yè)產(chǎn)品不侵權(quán),終止調(diào)查
- 英政府準(zhǔn)備立法限制外資收購本土企業(yè),違者或罰款或監(jiān)禁
- 紫光展銳和海信簽署戰(zhàn)略合作協(xié)議,深化5G業(yè)務(wù)合作
- 2020前三季度集成電路產(chǎn)量達(dá)1822億塊,產(chǎn)量同比增長14.7%
- SK海力士90億美元收購英特爾NAND閃存業(yè)務(wù)
- Cree正式退出LED業(yè)務(wù),專注SiC領(lǐng)域
- 美能源部發(fā)現(xiàn)“同位素抑制散熱法” 可提高下一代太陽能電池的效率
- 降低氫燃料成本有新法