ARM開發總結的小知識
字節 8位
半字 16位
字 32位
Code, RO-data
RW-data,ZI-data
Code為程序代碼部分
RO-data 表示 程序定義的常量 const temp;
RW-data 表示 已初始化的全局變量
ZI-data 表示 未初始化的全局變量
Program Size: Code="18248" RO-data=320 RW-data=260 ZI-data=3952
Code, RO-data,RW-data ..............flash
RW-data, ZIdata...................RAM
初始化時RW-data從flash拷貝到RAM
生成的map文件位于list文件夾下 (KEIL)
Total RO Size (Code + RO Data) 18568 ( 18.13kB)
Total RW Size (RW Data + ZI Data) 4212 ( 4.11kB)
Total ROM Size (Code + RO Data + RW Data) 18828 ( 18.39kB)
ARM指令的長度剛好是1個字(分配為占用4個字節),Thumb指令的長度剛好是半字(占用2個字節)
R0-R15 (R15-PC,R14-LR,R13-SP) 32位
每個異常模式還帶有一個程序狀態保存寄存器 (SPSR),它用于保存在異常事件發生之前的CPSR
LDMIA R1!,{R2-R7, R12} ;將R1單兀中的數據讀出到R2-R7,R12, R1自動加1
STMIA RO!,{R3-R6,R10} ;將R3-R6,R10中的數據保存到RO指向的地址,RO自動加1
在數據傳送之前,將偏移量加到Rn中,其結果作為傳送數據的存儲地址.若使用后綴“!”,則結果寫回到Rn中,且Rn值不允許為R15.指令舉例如下:
LDR Rd, [Rn, #Ox4]!
LDMFD SP!,{R0-R3,PC}^ ;中斷返回
“^”符號表示這是一條特殊形式的指令。這條指令在從存儲器中裝載PC的同時(PC是最后恢復的),CPSR也得到恢復
大端格式(Big-endian)
小端格式(Little-endian)
數據0x12345678存儲格式
大端格式
低地址<----0x12|0x34|0x56|0x78---->高地址
小端格式
低地址<----0x78|0x56|0x34|0x12---->高地址
ARM微處理器支持7種運行模式,分別為: CPSR M[4:0]
用戶模式(usr):ARM處理器正常的程序執行狀態。 10000
快速中斷模式(fiq):用于高速數據傳輸或通道處理。 10001
外部中斷模式(irq):用于通用的中斷處理。 10010
管理模式(svc):操作系統使用的保護模式。 10011
數據訪問終止模式(abt):當數據或指令預取終止時進入該模式,可用于虛擬存儲及存儲保護。10111
系統模式(sys):運行具有特權的操作系統任務。 11111
定義指令中止模式(und):當未定義的指令執行時進入該模式,可用于支持硬件協處理器的軟件仿真。 11011
ARM正常工作一般工作在用戶模式和系統模式,復位的時候進入管理模式
對于ARM指令集來說,PC指向當前指令的下兩條指令的地址
注意pc,在調試的時候顯示的是當前指令地址,而用mov lr,pc的時候lr保存的是此指令向后數兩條指令的地址
假設反匯編代碼: 0x000001 : mov lr pc
(此時查看PC寄存器的值是0x000001,但實際PC值是0x000003, lr里面保存的就是0x000003)
fields 指定傳送的區域(psr CPSR或SPSR)
c 控制域屏蔽字節(psr[7..0])
x 擴展域屏蔽字節(psr[15..8])
s 狀態域屏蔽字節(psr[23..16])
f 標志域屏蔽字節(psr[31..24])
例如:MSR cpsr_c, #0xD3 ; CPSR[7...0] = 0xD3
上一篇:ARM 啟動過程
下一篇:嵌入式Linux之我行——ARM MMU工作原理剖析
推薦閱讀
史海拾趣
在激烈的市場競爭中,倍(DBIC)公司不斷優化供應鏈管理,降低成本,提高效率。公司與全球多家供應商建立了長期穩定的合作關系,確保原材料的穩定供應。同時,倍(DBIC)公司還加強了對生產過程的監控和管理,確保產品質量和交貨期。這些措施使倍(DBIC)公司在成本控制和交付能力方面具備了明顯的競爭優勢。
正泰公司始建于1984年,初期以低壓電器業務為主。隨著公司業務的不斷拓展,正泰逐漸將業務范圍擴展至智慧能源系統領域。在這一過程中,公司深入踐行“產業化、科技化、國際化、數字化、平臺化”戰略舉措,形成了“綠色能源、智能電氣、智慧低碳”三大板塊。正泰的低壓電器產品長期保持國內領先地位,品牌認知度和客戶粘性極強,為公司后續的發展奠定了堅實的基礎。
為了更好地服務全球客戶,Artesyn Embedded Technologies不斷加強其在全球市場的布局。公司在北美、歐洲和亞洲等地設立了區域中心,并通過直接辦事處、代理機構以及分銷商提供全球性銷售與支援。這種全球化的戰略使公司能夠更好地滿足不同地區客戶的需求,同時也為公司帶來了更多的商業機會。
隨著公司的不斷發展壯大,AE公司于某一時期成功在納斯達克上市。這一里程碑事件標志著AE公司在電子行業的地位得到了進一步的鞏固和提升。上市為公司帶來了更多的資金支持,使得AE公司能夠加大在研發、生產、銷售等方面的投入,進一步提升了公司的競爭力。同時,上市也增強了公司的品牌影響力,吸引了更多的合作伙伴和客戶。
在穩步發展的同時,蘇州鋒馳也積極拓展對外合作與投資。公司共對外投資了3家企業,并通過這些投資進一步拓寬了業務范圍和市場渠道。這些合作不僅為蘇州鋒馳帶來了更多的技術資源和市場機會,也增強了公司的綜合競爭力。同時,公司還積極與上下游企業建立緊密的合作關系,形成了良好的產業生態。
在電子行業的初期,Continental Industries憑借其深厚的技術積累,成功研發出了一款固態繼電器。這款繼電器以其高度可靠性、長壽命和減少電磁干擾的特性,迅速在市場中占據了重要地位。公司不斷投入研發資源,優化產品性能,逐漸在工業自動化和建筑環境控制領域樹立起了技術領先的形象。
概述:基于IEEE802.15.4無線微控制器,為在2.4G頻帶上應用IEEE802.15.4標準及zigbee網絡的開發應用提供了完整的解決方案; 其使用是JN5121芯片,文中主要介紹了JN5121 SPI總線特點、配置方式及相關函數等等;… 查看全部問答∨ |
|
*****香版主:IAR422+st-linkII在中斷內調試出問題 用IAR442,IAR5.X還未支持ST-LINK II, ST-LINK II也不支高密度的FLASH,IAR422下用st-link II 在中斷內斷點調試,老是會跳不出中斷!何解?打算以后用IAR5.X+WIGGLER+HJTAG.EXE 不知功能如何?有沒有ST&nb ...… 查看全部問答∨ |
|
近日看74LS164的用法以及一些相關程序。配上時序圖,真的,感覺基本沒關聯。 程序一般都是循環8次,每次都是一位檢驗。然后再移動一位。 觀74LS164的時序圖,自己分析如下: AB A B C D ...… 查看全部問答∨ |