arm映像檔案的組成:
乙個映像檔案由乙個或多個域(region,也有譯為「區」)組成
每個域包含乙個或多個輸出段(section,也有譯為「節」)
每個輸出段包含乙個或多個輸入段
各個輸入段包含了目標檔案中的**和資料
輸入段中包含了四類內容:**、已經初始化的資料、未經過初始化的儲存區域、內容初始化為零的儲存區域。
每個輸入段有相應的屬性:唯讀的(ro)、可讀寫的(rw)以及初始化成零的(zi)。
到這裡我們就可以知道,一般情況下,**會被放到ro屬性的輸入節,
已經初始化的變數會被分配到rw屬性輸入區,而「zi」屬性輸入節可以理解為是初始化成零變數的集合。
total ro size (code + ro data) 54520 ( 53.24kb)
total rw size (rw data + zi data) 6088 ( 5.95kb)
total rom size (code + ro data + rw data) 54696 ( 53.41kb)
對於乙個變數,它可能有三種屬性:
1、用const修飾符修飾的變數最可能放在ro屬性區。
2、已經初始化的變數會放在rw屬性區。
3、那麼剩下的變數就要放到zi屬性區了。
ARM核心架構
接下來我們可以討論arm核心架構,這裡我提一下,為啥討論這個arm,因為筆者最先接觸和知道這個,riscv熟悉了我後面會補上這個內容,毫不誇張的說,riscv可能也會像linux那樣成功引領乙個時代的發展。廢話不扯多了,前面繞了個大圈子再回來講了這個arm架構,主要目的是也是為了講這個作一些鋪墊,a...
ARM儲存管理
本文對arm儲存管理進行簡要歸納,不涉及具體對映和暫存器設定。一 mmu 記憶體管理部件使用記憶體對映技術實現虛擬空間到物理空間的對映。嵌入式系統中通常把異常中斷向量表存放在ram中。當系統加電時,將rom flash對映為位址0,這樣可以進行一些初始化處理 當這些初始化處理完成後將sdram對映為...
ARM微控制器與ARM核心
人們常常把arm架構和arm微控制器混淆,其實使用arm核心的微控制器有很多,比如st公司的stm32f103,它就是使用arm cortext m3核心,那麼究竟什麼是arm核心呢?mcu microcontrol unit 俗稱微控制器,它有cpu,rom,ram,i o,中斷系統,定時器,時鐘...