日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 通信技術 > 通信設計應用
[導讀]   字節(jié) 8位   半字 16位   字 32位   Code, RO-data   RW-data,ZI-data   Code為程序代碼部分

  字節(jié) 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個字節(jié)),Thumb指令的長度剛好是半字(占用2個字節(jié))

  R0-R15 (R15-PC,R14-LR,R13-SP) 32位

  每個異常模式還帶有一個程序狀態(tài)保存寄存器 (SPSR),它用于保存在異常事件發(fā)生之前的CPSR

  LDMIA R1!,{R2-R7, R12} ;將R1單兀中的數(shù)據(jù)讀出到R2-R7,R12, R1自動加1

  STMIA RO!,{R3-R6,R10} ;將R3-R6,R10中的數(shù)據(jù)保存到RO指向的地址,RO自動加1

  在數(shù)據(jù)傳送之前,將偏移量加到Rn中,其結(jié)果作為傳送數(shù)據(jù)的存儲地址。若使用后綴“!”,則結(jié)果寫回到Rn中,且Rn值不允許為R15.指令舉例如下:

  LDR Rd, [Rn, #Ox4]!

  LDMFD SP!,{R0-R3,PC}^ ;中斷返回

  “^”符號表示這是一條特殊形式的指令。這條指令在從存儲器中裝載PC的同時(PC是最后恢復的),CPSR也得到恢復

  大端格式(Big-endian)

  小端格式(Little-endian)

  數(shù)據(jù)0x12345678存儲格式

  大端格式

  低地址《----0x12|0x34|0x56|0x78----》高地址

  小端格式

  低地址《----0x78|0x56|0x34|0x12----》高地址

  ARM微處理器支持7種運行模式,分別為: CPSR M[4:0]

  用戶模式(usr):ARM處理器正常的程序執(zhí)行狀態(tài)。 10000

  快速中斷模式(fiq):用于高速數(shù)據(jù)傳輸或通道處理。 10001

  外部中斷模式(irq):用于通用的中斷處理。 10010

  管理模式(svc):操作系統(tǒng)使用的保護模式。 10011

  數(shù)據(jù)訪問終止模式(abt):當數(shù)據(jù)或指令預取終止時進入該模式,可用于虛擬存儲及存儲保護。10111

  系統(tǒng)模式(sys):運行具有特權(quán)的操作系統(tǒng)任務。 11111

  定義指令中止模式(und):當未定義的指令執(zhí)行時進入該模式,可用于支持硬件協(xié)處理器的軟件仿真。 11011

  ARM正常工作一般工作在用戶模式和系統(tǒng)模式,復位的時候進入管理模式

  對于ARM指令集來說,PC指向當前指令的下兩條指令的地址

  注意pc,在調(diào)試的時候顯示的是當前指令地址,而用mov lr,pc的時候lr保存的是此指令向后數(shù)兩條指令的地址

  假設反匯編代碼: 0x000001 : mov lr pc

 ?。ù藭r查看PC寄存器的值是0x000001,但實際PC值是0x000003, lr里面保存的就是0x000003)

  fields 指定傳送的區(qū)域(psr CPSR或SPSR)

  c 控制域屏蔽字節(jié)(psr[7..0])

  x 擴展域屏蔽字節(jié)(psr[15..8])

  s 狀態(tài)域屏蔽字節(jié)(psr[23..16])

  f 標志域屏蔽字節(jié)(psr[31..24])

  例如:MSR cpsr_c, #0xD3 ; CPSR[7.。.0] = 0xD3

  CODE SIZE, RO DATA, RW DATA, ZI DATA, idata, pdata---project Map 文件解讀(一)

  opTImizaTIon project時,開始往往是關注一時間性能,如codec mips或MCPS等。當時間性能達到了要求時,往往還會加入size這一參數(shù)來作比較,這時就要考慮各種各樣的size。這一性能參數(shù)可能在 project requirements book中有明顯的說明,在test performance result或在release note中也有更加準備的數(shù)據(jù)記錄。

  如下表:

  Program ROM Data RAMROM Table

  Scratch StackStaTIc

  XXXXXXXXXX

  首先我們要弄清楚這些size的含義以及所反應的性能意義。

  1、CODE SIZE, RO DATA, RW DATA, ZI DATA

  上面這些變量是在ARM 開發(fā)環(huán)境下會出現(xiàn)的數(shù)值,可以在armlink中加一些參數(shù),得到相應有.map文件,從中就能準確的獲取這些值,有一篇文章詳細說明這些含義:

  ARM程序(指在ARM系統(tǒng)中正在執(zhí)行的程序,而非保存在ROM中的bin文件)的組成

  一個ARM程序包含3部分:RO段,RW段和ZI段

  RO是程序中的指令和常量

  RW是程序中的已初始化變量

  ZI是程序中的未初始化的變量

  由以上3點說明可以理解為:

  RO就是readonly,

  RW就是read/write,

  ZI就是zero

  ARM映像文件的組成

  所謂ARM映像文件就是指燒錄到ROM中的bin文件,也成為image文件。以下用Image文件來稱呼它。

  Image文件包含了RO和RW數(shù)據(jù)。

  之所以Image文件不包含ZI數(shù)據(jù),是因為ZI數(shù)據(jù)都是0,沒必要包含,只要程序運行之前將ZI數(shù)據(jù)所在的區(qū)域一律清零即可。包含進去反而浪費存儲空間。

  Q:為什么Image中必須包含RO和RW?

  A:因為RO中的指令和常量以及RW中初始化過的變量是不能像ZI那樣“無中生有”的。

  ARM程序的執(zhí)行過程

  從以上兩點可以知道,燒錄到ROM中的image文件與實際運行時的ARM程序之間并不是完全一樣的。因此就有必要了解ARM程序是如何從ROM中的image到達實際運行狀態(tài)的。

  實際上,RO中的指令至少應該有這樣的功能:

  1. 將RW從ROM中搬到RAM中,因為RW是變量,變量不能存在ROM中。

  2. 將ZI所在的RAM區(qū)域全部清零,因為ZI區(qū)域并不在Image中,所以需要程序根據(jù)編譯器給出的ZI地址及大小來將相應得RAM區(qū)域清零。ZI中也是變量,同理:變量不能存在ROM中

  在程序運行的最初階段,RO中的指令完成了這兩項工作后C程序才能正常訪問變量。否則只能運行不含變量的代碼。

  說了上面的可能還是有些迷糊,RO,RW和ZI到底是什么,下面我將給出幾個例子,最直觀的來說明RO,RW,ZI在C中是什么意思。

本站聲明: 本文章由作者或相關機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀

在半導體產(chǎn)業(yè)的傳統(tǒng)認知中,Arm 是構(gòu)建數(shù)字世界的“圖紙?zhí)峁┥獭?。然而,隨著代理式 AI(Agentic AI)對異構(gòu)計算需求的指數(shù)級增長,單純的 IP 和計算子系統(tǒng)授權(quán)已難以完全消納市場對于算力部署時效性的渴求。Arm...

關鍵字: ARM AGI CPU 數(shù)據(jù)中心 AI

展望未來,當摩根士丹利預測中 800 倍增長的機器人半導體市場真正兌現(xiàn)時,Arm 的物理 AI 平臺將作為底層基礎設施,支撐起從工廠到家庭、從道路到天空的智能物理世界。計算的邊界正在被重新定義,而 Arm 已在新邊界上筑...

關鍵字: ARM 物理 AI 自動駕駛 機器人

3月25日消息,一直以來,Arm都是一家對外提供IP授權(quán)的芯片企業(yè),包括CPU、GPU、NPU和各種系統(tǒng)IP。

關鍵字: ARM META

成立三十余年來,Arm一直是芯片行業(yè)特殊的“幕后推手”——不生產(chǎn)一顆芯片,卻定義了全球99%智能手機的底層架構(gòu)。然而,這家長期保持中立的IP授權(quán)巨頭,如今正打破自己一手建立的商業(yè)規(guī)則。

關鍵字: ARM CPU 芯片

Arm 首次將其平臺矩陣拓展至量產(chǎn)芯片產(chǎn)品,為業(yè)界提供覆蓋 IP、Arm計算子系統(tǒng) (CSS)及芯片的最廣泛的計算產(chǎn)品選擇。 發(fā)布首款由 Arm 設計的數(shù)據(jù)中心 CPU——Arm AGI CPU,專為代理式AI 基...

關鍵字: ARM CPU 數(shù)據(jù)中心 代理式AI

為下一代 AI 基礎設施實現(xiàn)突破性機架級性能、擴展性和效率

關鍵字: ARM AGI CPU 代理式AI

在工業(yè)控制、汽車電子等實時性要求嚴苛的領域,中斷風暴如同懸在系統(tǒng)頭頂?shù)倪_摩克利斯之劍——當多個高優(yōu)先級中斷密集觸發(fā)時,傳統(tǒng)MCU常因處理能力不足陷入癱瘓。ARM Cortex-M內(nèi)核通過NVIC(嵌套向量中斷控制器)的優(yōu)...

關鍵字: 中斷風暴 ARM

在現(xiàn)代電子設備的研發(fā)、生產(chǎn)與維護鏈條中,JTAG(Joint Test Action Group,聯(lián)合測試行動組)技術如同一條"隱形橋梁",連接著開發(fā)者與芯片內(nèi)部的核心邏輯。從最初解決電路板測試難題的工業(yè)標準,到如今成為...

關鍵字: JTAG ARM

當工程師將代碼從經(jīng)典的8051架構(gòu)遷移至現(xiàn)代ARM Cortex-M系列時,常常會遇到因內(nèi)存對齊規(guī)則差異導致的硬件異?;蛐阅芟陆祮栴}。以某物聯(lián)網(wǎng)設備廠商的遷移案例為例,其將基于8051的溫濕度傳感器通信協(xié)議移植至STM3...

關鍵字: ARM 8051
關閉