知識零散:
1.flash:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?nor flash? ? 可被尋地址? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?nand? flash? 不可尋地址
? ? ? ? ? 指令:
? ? ? ? ? ? ? ? ? ? add? ?加? ? ? Sub 減? ? ?cmp 比較大小? ?orr 置1? bic? 清0
? ? ? ? ? ? ? ? ? ?ASR 算數(shù)右移? ? LSL邏輯左移? ? Ldv? 偽指令
? ? ? ? ? ? ? ? ? ?16G+128G? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?RAM? ? ROM(flash)
? ? ? ? ? ? ? ? ? mov? 后加s? ? ? nvcv位? ? ? ? moveq
1、ARM的工作模式有哪些?(7種)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ??User:非特權(quán)模式,大部分任務執(zhí)行 在這種模式? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?FIQ: 當一個高優(yōu)先級(fast)中斷產(chǎn)生時將會進入這種模式? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? IRQ?:當一個低優(yōu)先級(normal)中斷產(chǎn)生時將會進入這種模式? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Supervisor:當復位或軟中斷指令執(zhí)行時將會進入這種模式? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??Abort:當存取異常時將會進入到這種模式? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Undef: 當執(zhí)行 未定義指令 時會進入這種模式? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??System:使用和User模式相同寄存器集的特權(quán)模式? ? ? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
2、ARM9的通用寄存器有幾個?
ARM9通用寄存器有? 37個? ? ? ? ? ? ? ? ? ? r0-r12? 存數(shù)據(jù)
Cortex通用寄存器有? 40個
3、異常向量表中irq的異常向量是多少?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 0x18
4、cpsr中的那幾位是用來設置工作模式的?
? ? ? ?切換arm內(nèi)核的工作模式(低5位 M)
由于內(nèi)核的工作模式是由cpsr寄存器的低5位來設置的,那么就可以先把cpsr讀出來,更改低5位之后再設置進去。這里讀取cpsr使用mrs指令,寫cpsr寄存器用msr指令,需要注意的是在keil環(huán)境下寫cpsr需要寫成: ??msr cpsr_c r0;將r0的值寫入到cpsr寄存器
psr分為
? ? ? ?cpsr:當前程序狀態(tài)寄存器
? ? ? spsr:保存程序狀態(tài)寄存器(保護現(xiàn)場)
5、r13,r14,15別名是什么?有什么作用?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
R15(PC):
? ? ? ? ? ? ? 程序計數(shù)器,用于存儲當前取址指令的地址
?R14(LR):
? ? 鏈接寄存器,一般有以下兩種用途:
? ? 1.執(zhí)行跳轉(zhuǎn)指令(BL/BLX)時,LR會自動保存跳轉(zhuǎn)指令下一條指令的地址
? ? ? 程序需要返回時將LR的值復制到PC即可實現(xiàn)
? ? 2.產(chǎn)生異常時,對應異常模式下的LR會自動保存被異常打斷的指令的下
? ? ? 一條指令的地址,異常處理結(jié)束后將LR的值復制到PC可實現(xiàn)程序返回
?R13(SP):
? ? 棧指針,用于存儲當前模式下的棧頂?shù)刂?/strong>(棧里都是臨時數(shù)據(jù))
6.那么是什么立即數(shù)呢?
指令要操作的 數(shù)據(jù)以常量的 形式出現(xiàn)在 指令 中,稱為立即數(shù)
12位立即數(shù)的條件是?
- 如果某個數(shù)的數(shù)值范圍是0~255之間,那么這個數(shù)一定是立即數(shù);
- 把某個數(shù)展開成2進制,這個數(shù)的最高位1至最低位1之間的二進制數(shù)序列的位數(shù)不能超過8位;
- 這個數(shù)的二進制序列的右邊必須為偶數(shù)個連續(xù)的?0
例如:0x234 = 0000 0000 0000 0000 0000 0010 0011 0100
最高位1至最低位1之間的二進制數(shù)序列:1000 1101沒有超過8位
末尾1的右邊有2個0,所以0x234是立即數(shù)
最高位1至最低位1之間的二進制數(shù)序列:0011 1110 1010 1101?從第一個1開始到最后一個1之間超過8位,不滿足條件1,所以這個數(shù)不是立即數(shù)
這是因為ARM中將這 12bits 分為 8bit 常數(shù)(0~255)和 4bit 循環(huán)右移位值(0~15)
8bit 常數(shù)范圍(0~255),位移的步進值是以2為單位(即實際位移 2 * rotate 位),可以表示循環(huán)有以(0~30)偶數(shù)位: 0、2、4、6、8、10、12、14、16、18、20、22、24、26、28、30。在實際存儲這個數(shù)值的時候,要想辦法把這個數(shù)壓縮到這12位中去。壓縮的方法就是找一個數(shù),這個數(shù)必須是一個8bit數(shù),之后循環(huán)右移2 * rotate位。如果能找打這個數(shù),那么待保存的數(shù)就是立即數(shù),否則就不是。
7.RAM? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?1.??sram? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?2.? dram? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?3.? sdram? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?4.??ddr? ram? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
8.ROM
1.rom? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 2.prom? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 3.eprom? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 4.eeprom? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 5.flash閃存? ? 新一代非易失性存儲器
存儲大小比較文章來源:http://www.zghlxwxcb.cn/news/detail-851453.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-851453.html
到了這里,關于嵌入式學習52-ARM1的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!