www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 通信技術(shù) > 通信設(shè)計(jì)應(yīng)用
[導(dǎo)讀]   字節(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

  初始化時(shí)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指令的長(zhǎng)度剛好是1個(gè)字(分配為占用4個(gè)字節(jié)),Thumb指令的長(zhǎng)度剛好是半字(占用2個(gè)字節(jié))

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

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

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

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

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

  LDR Rd, [Rn, #Ox4]!

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

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

  大端格式(Big-endian)

  小端格式(Little-endian)

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

  大端格式

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

  小端格式

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

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

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

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

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

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

  數(shù)據(jù)訪問終止模式(abt):當(dāng)數(shù)據(jù)或指令預(yù)取終止時(shí)進(jìn)入該模式,可用于虛擬存儲(chǔ)及存儲(chǔ)保護(hù)。10111

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

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

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

  對(duì)于ARM指令集來說,PC指向當(dāng)前指令的下兩條指令的地址

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

  假設(shè)反匯編代碼: 0x000001 : mov lr pc

  (此時(shí)查看PC寄存器的值是0x000001,但實(shí)際PC值是0x000003, lr里面保存的就是0x000003)

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

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

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

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

  f 標(biāo)志域屏蔽字節(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時(shí),開始往往是關(guān)注一時(shí)間性能,如codec mips或MCPS等。當(dāng)時(shí)間性能達(dá)到了要求時(shí),往往還會(huì)加入size這一參數(shù)來作比較,這時(shí)就要考慮各種各樣的size。這一性能參數(shù)可能在 project requirements book中有明顯的說明,在test performance result或在release note中也有更加準(zhǔn)備的數(shù)據(jù)記錄。

  如下表:

  Program ROM Data RAMROM Table

  Scratch StackStaTIc

  XXXXXXXXXX

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

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

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

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

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

  RO是程序中的指令和常量

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

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

  由以上3點(diǎn)說明可以理解為:

  RO就是readonly,

  RW就是read/write,

  ZI就是zero

  ARM映像文件的組成

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

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

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

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

  A:因?yàn)镽O中的指令和常量以及RW中初始化過的變量是不能像ZI那樣“無中生有”的。

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

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

  實(shí)際上,RO中的指令至少應(yīng)該有這樣的功能:

  1. 將RW從ROM中搬到RAM中,因?yàn)镽W是變量,變量不能存在ROM中。

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

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

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

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

LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動(dòng)電源

在工業(yè)自動(dòng)化蓬勃發(fā)展的當(dāng)下,工業(yè)電機(jī)作為核心動(dòng)力設(shè)備,其驅(qū)動(dòng)電源的性能直接關(guān)系到整個(gè)系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動(dòng)勢(shì)抑制與過流保護(hù)是驅(qū)動(dòng)電源設(shè)計(jì)中至關(guān)重要的兩個(gè)環(huán)節(jié),集成化方案的設(shè)計(jì)成為提升電機(jī)驅(qū)動(dòng)性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動(dòng)電源

LED 驅(qū)動(dòng)電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個(gè)照明設(shè)備的使用壽命。然而,在實(shí)際應(yīng)用中,LED 驅(qū)動(dòng)電源易損壞的問題卻十分常見,不僅增加了維護(hù)成本,還影響了用戶體驗(yàn)。要解決這一問題,需從設(shè)計(jì)、生...

關(guān)鍵字: 驅(qū)動(dòng)電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動(dòng)電源的公式,電感內(nèi)電流波動(dòng)大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計(jì) 驅(qū)動(dòng)電源

電動(dòng)汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動(dòng)汽車的核心技術(shù)之一是電機(jī)驅(qū)動(dòng)控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機(jī)驅(qū)動(dòng)系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動(dòng)汽車的動(dòng)力性能和...

關(guān)鍵字: 電動(dòng)汽車 新能源 驅(qū)動(dòng)電源

在現(xiàn)代城市建設(shè)中,街道及停車場(chǎng)照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨(dú)特的優(yōu)勢(shì)逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動(dòng)電源 LED

LED通用照明設(shè)計(jì)工程師會(huì)遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動(dòng)電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動(dòng)電源的電磁干擾(EMI)問題成為了一個(gè)不可忽視的挑戰(zhàn)。電磁干擾不僅會(huì)影響LED燈具的正常工作,還可能對(duì)周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動(dòng)電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動(dòng)電源

關(guān)鍵字: LED 驅(qū)動(dòng)電源 開關(guān)電源

LED驅(qū)動(dòng)電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動(dòng)LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動(dòng)電源
關(guān)閉