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