娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2024年12月21日(星期六)

2021年12月21日 | Tiny4412裸機(jī)程序之操作ICache

發(fā)布者:獨(dú)享留白1028 來源: eefocus關(guān)鍵字:Tiny4412  裸機(jī)程序 手機(jī)看文章 掃描二維碼
隨時隨地手機(jī)看文章

一、首先普及一下什么是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{} p15,0,,,{,}


其中,為指令執(zhí)行的條件碼。當(dāng)忽略時指令為無條件執(zhí)行。

< opcode_1>為協(xié)處理器將執(zhí)行的操作的操作碼。對于CP15協(xié)處理器來說,< opcode_1>永遠(yuǎn)為0b000,當(dāng)< opcode_1>不為0b000時,該指令操作結(jié)果不可預(yù)知。

作為源寄存器的ARM寄存器,其值將被傳送到協(xié)處理器寄存器中。

作為目標(biāo)寄存器的協(xié)處理器寄存器,其編號可能是C0,C1,…,C15。

兩者組合決定對協(xié)處理器寄存器進(jìn)行所需要的操作,如果沒有指定,則將為為C0,opcode_2為0,否則可能導(dǎo)致不可預(yù)知的結(jié)果。

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{} p15,0,,,{,}


參數(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)大威力!!

關(guān)鍵字:Tiny4412  裸機(jī)程序 引用地址:Tiny4412裸機(jī)程序之操作ICache

上一篇:Tiny4412裸機(jī)程序,時鐘操作
下一篇:Exynos4412 裸機(jī)開發(fā) —— IIC總線

推薦閱讀

之前的說明: 文中大量引用網(wǎng)上資料,在文后已給出資料的引用說明。文件涉及到的USB各種傳輸包各個位的含義以及USB標(biāo)準(zhǔn)設(shè)備請求的含義都沒有做說明,推薦看《圈圈教你玩USB》里面有詳細(xì)的說明一、枚舉前的工作 系統(tǒng)上電后,程序開始運(yùn)行,簡單介紹一下USB的初始化 根據(jù)STM32的USB庫做移植,介紹枚舉過程 SetSystem函數(shù)是一些初...
據(jù)外媒報道,取證軟件開發(fā)商Elcomsoft剛剛更新了自家的工具包,允許對運(yùn)行iOS 12到iOS 13.3的未解鎖iPhone設(shè)備進(jìn)行部分?jǐn)?shù)據(jù)提取。最新的5.21版本主要升級了對iOS鑰匙串的提取,而后者則用于存儲應(yīng)用程序和在線服務(wù)的憑據(jù)。  換句話說就是Elcomsoft 5.21適用于采用蘋果 A7到A11芯片的所有設(shè)備,即覆蓋iPhone 5s和iPhone X、iPad mini 2...
三星 Exynos(@SamsungExynos)的推文表示:“全新的 Exynos 即將面世”。三星將在 2021 年 1 月 12 日發(fā)布新的 Exynos 芯片。盡管三星尚未正式透露 SoC 的名稱,但有報道稱它是下一代旗艦 SoC,并帶有 Exynos 2100 名稱。與高通公司的產(chǎn)品一樣,它有望在新的 5nm 工藝上打造。它可能會以 1 + 3 + 4 組合的方式到來: 1 x Cort...
今年9月,智利最重要的銀行之一智利銀行(Banco de Chile)允許其客戶將信用卡添加到iPhone的錢包應(yīng)用中使用Apple Pay。幾天后,由于蘋果還沒有準(zhǔn)備好推廣這項(xiàng)服務(wù),銀行取消了這一功能。現(xiàn)在,一項(xiàng)新的證據(jù)表明,智利銀行正準(zhǔn)備在不久的將來再次推出對Apple Pay的支持。據(jù)智利科技博客Pisapeles報道,智利銀行增加了客戶使用Apple Pay的條款和條件。早...

史海拾趣

問答坊 | AI 解惑

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)測的"特種信號兵"; ...…

查看全部問答∨

java是否和c一樣 以后會廣泛用于ARM?

如題,偶是很想問一下,學(xué)嵌入式軟件(搞ARM的),有沒有必要學(xué)java呢? 各位大蝦給個指點(diǎn)吧!~ 期待中。。。…

查看全部問答∨

跟我一起制作大尺寸數(shù)碼管電子鐘

六位電子鐘我想是每個初學(xué)電子或者初學(xué)單片機(jī)程序的朋友必做的項(xiàng)目吧,大家基本都在學(xué)習(xí)板上利用小尺寸數(shù)碼管做過,但是如果讓大家用1.8寸以上數(shù)碼管甚至20寸數(shù)碼管制作,大家覺得會什么問題呢?下面開始就大尺寸數(shù)碼管電子鐘制作談?wù)剛€人的設(shè)計思 ...…

查看全部問答∨

ethereal 的時候識別不到網(wǎng)卡

請問用 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)行了啊,我這樣做了就是上電后不工作啊 ...…

查看全部問答∨

有人在村田買過器件嗎?

本信息來自合作QQ群:電子工程師技術(shù)交流(12425841) 群主在壇子ID:Kata   有人在村田買過器件嗎…

查看全部問答∨

STM32F103執(zhí)行的程序代碼是放在哪里呢?

STM32F103執(zhí)行的程序代碼是放在哪里呢?   下載后,程序代碼是放在0x0800 0000 —— 0x0807 FFFF 這個區(qū)間之內(nèi)嗎?   另外,程序里面需要保存一些固定的參數(shù)!可以放到這個空間里面嗎?…

查看全部問答∨
小廣播
設(shè)計資源 培訓(xùn) 開發(fā)板 精華推薦

最新單片機(jī)文章

 
EEWorld訂閱號

 
EEWorld服務(wù)號

 
汽車開發(fā)圈

 
機(jī)器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號 京ICP備10001474號-1 電信業(yè)務(wù)審批[2006]字第258號函 京公網(wǎng)安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 吉安县| 穆棱市| 平阳县| 黎平县| 治多县| 寿宁县| 莆田市| 绥芬河市| 哈尔滨市| 夏河县| 隆安县| 安化县| 安庆市| 娱乐| 石棉县| 项城市| 青浦区| 彝良县| 嘉鱼县| 涿州市| 金阳县| 金华市| 裕民县| 河曲县| 峨眉山市| 苏尼特右旗| 晋宁县| 玉山县| 平度市| 潼南县| 当阳市| 永嘉县| 清水县| 新野县| 凌源市| 盐池县| 来凤县| 商都县| 贵定县| 朝阳县| 兴山县|