入門ARM必須要理解的22個常用概念
本文羅列了關(guān)于ARM的22個常用概念。包括一些使用注意事項(xiàng)、ARM啟動代碼設(shè)計(jì)、ARM處理器運(yùn)行模式、ARM體系結(jié)構(gòu)所支持的異常類型和一些基本操作方法等等。
-
MSB:最高有效位 -
LSB:最低有效位 -
AHB:先進(jìn)的高性能總線 -
VPB:連接片內(nèi)外設(shè)功能的VLSI外設(shè)總線 -
EMC:外部存儲器控制器 -
MAM:存儲器加速模塊 -
VIC:向量中斷控制器 -
SPI:全雙工串行接口 -
CAN:控制器局域網(wǎng),一種串行通訊協(xié)議 -
PWM:脈寬調(diào)制器 -
ETM:嵌入式跟蹤宏 -
CPSR:當(dāng)前程序狀態(tài)寄存器 -
SPSR:程序保護(hù)狀態(tài)寄存器
-
中斷向量表 -
初始化存儲器系統(tǒng) -
初始化堆棧初始化有特殊要求的端口、設(shè)備 -
初始化用戶程序執(zhí)行環(huán)境 -
改變處理器模式 -
呼叫主應(yīng)用程序
-
保存處理器當(dāng)前狀態(tài)、中斷屏蔽位以及各條件標(biāo)志位 -
設(shè)置當(dāng)前程序狀態(tài)寄存器CPSR中的相應(yīng)位 -
將寄存器lr_mode設(shè)置成返回地址 -
將程序計(jì)數(shù)器值PC,設(shè)置成該異常中斷的中斷向量地址,跳轉(zhuǎn)到相應(yīng)異常中斷處執(zhí)行
-
用戶模式(usr):arm處理器正常的程序執(zhí)行狀態(tài) -
快速中斷模式(fiq):用于高速數(shù)據(jù)傳輸或通道管理 -
外部中斷模式(irq):用于通用的中斷處理 -
管理模式(svc):操作系統(tǒng)使用的保護(hù)模式 -
數(shù)據(jù)訪問終止模式(abt):當(dāng)數(shù)據(jù)或指令預(yù)取終止時進(jìn)入該模式,用于虛擬存儲及存儲保護(hù) -
系統(tǒng)模式(sys):運(yùn)行具有特權(quán)的操作系統(tǒng)任務(wù) -
未定義指令中止模式(und):當(dāng)未定義指令執(zhí)行時進(jìn)入該模式,可用于支持硬件協(xié)處理器的軟件仿真
-
復(fù)位①:當(dāng)處理器的復(fù)位電平有效時,產(chǎn)生復(fù)位異常,程序跳轉(zhuǎn)到復(fù)位異常處執(zhí)行(異常向量:0x0000,0000) -
數(shù)據(jù)中止②:若處理器數(shù)據(jù)訪問的指令的地址不存在,或該地址不允許當(dāng)前指令訪問,產(chǎn)生數(shù)據(jù)中止異常(異常向量:0x0000,0010) -
FIQ③(快速中斷請求):當(dāng)處理器的快速中斷請求引腳有效,且CPSR中的F位為0時,產(chǎn)生FIQ異常(異常向量:0x0000,001C)。 -
IRQ④(外部中斷請求):當(dāng)處理器的外部中斷請求引腳有效,且CPSR中的I位為0時,產(chǎn)生IRQ異常。系統(tǒng)的外設(shè)可以該異常請求中斷服務(wù)(異常向量:0x0000,0018) -
指令預(yù)取中止⑤:若處理器的預(yù)取指令的地址不存在,或該地址不允許當(dāng)前指令訪問,存儲器會向處理器發(fā)出中止信號,當(dāng)預(yù)取指令被執(zhí)行時,才會產(chǎn)生指令預(yù)取中止異常(異常向量:0x0000,000C) -
未定義指令⑥:當(dāng)ARM處理器或協(xié)處理器遇到不能處理的指令時,產(chǎn)生為定義異常??墒褂迷摦惓C(jī)制進(jìn)行軟件仿真(異常向量:0x0000,0004) -
軟件中斷⑥:有執(zhí)行SWI指令產(chǎn)生,可用于用戶模式下程序調(diào)用特權(quán)操作指令??墒褂迷摦惓C(jī)制實(shí)現(xiàn)系統(tǒng)功能調(diào)用(異常向量:0x0000,0008)
-
大端格式:字?jǐn)?shù)據(jù)的高字節(jié)存儲在低地址中,字?jǐn)?shù)據(jù)的低字節(jié)存放在高地址中 -
小端格式:與大端存儲格式相反,高地址存放數(shù)據(jù)的高字節(jié),低地址存放數(shù)據(jù)的低字節(jié)。
-
PLL在芯片復(fù)位或進(jìn)入掉電模式時被關(guān)閉并旁路,在掉電喚醒后不會自動恢復(fù)PLL的設(shè)定 -
PLL只能通過軟件使能 -
PLL在激活后必須等待其鎖定,然后才能連接 -
PLL如果設(shè)置不當(dāng)將會導(dǎo)致芯片的錯誤操作
-
把某個引腳設(shè)置為外部中斷功能后,該引腳為輸入模式,由于沒有內(nèi)部上拉電阻,所以必須外接一個上拉電阻,確保引腳不被懸空 -
除了引腳連接模塊的設(shè)置,還需要設(shè)置VIC模塊,才能產(chǎn)生外部中斷,否則外部中斷只能反映在EXTINT寄存器中 -
要使器件進(jìn)入掉電模式并通過外部中斷喚醒,軟件應(yīng)該正確設(shè)置引腳的外部中斷功能,再進(jìn)入掉電模式
-
設(shè)置I/O連接到UART0 -
設(shè)置串口波特率(U0DLM、U0DLL) -
設(shè)置串口工作模式(U0LCR、U0FCR) -
發(fā)送或接收數(shù)據(jù)(U0THR、U0RBR) -
檢查串口狀態(tài)字或等待串口中斷(U0LSR)
-
設(shè)置I2C管腳連接 -
設(shè)置I2C時鐘速率(I2SCLH、I2SCLL) -
設(shè)置為主機(jī),并發(fā)送起始信號(I2CONSET的I2EN、STA位為1、AA位為0) -
發(fā)送從機(jī)地址(I2DAT),控制I2CONSET發(fā)送 -
判斷總線狀態(tài)(I2STAT),進(jìn)行數(shù)據(jù)傳輸控制 -
發(fā)送結(jié)束信號(I2CONSET)
-
連接PWM功能管腳輸出,即設(shè)置PINSEL0、PINSEL1 -
設(shè)置PWM定時器的時鐘分頻值(PWMPR),得到所要的定時器時鐘 -
設(shè)置比較匹配控制(PWMMCR),并設(shè)置相應(yīng)比較值(PWMMRx) -
設(shè)置PWM輸出方式并允許PWM輸出(PWMPCR)及鎖存使能控制(PWMLER) -
設(shè)置PWMTCR,啟動定時器,使能PWM
推薦閱讀
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務(wù)。文章僅代表作者個人觀點(diǎn),不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!