ARM裸機開發

1. ARM版本號:

  • ARM 內核版本號 — ARMv7
  • ARM Soc版本號 — Cortex-A8 
  • 芯片型號 — S5PV210
內核版本號 Soc版本號 芯片型號(三星)
ARMv1    
...    
ARMv4 ARM7 S3C44B0
ARMv4 ARM9 S3C2440 S3C2410
ARMv5 ARM9+xScale  
ARMv6 ARM11 S3C6410
ARMv7 Cortex-M/A/R  

說明:編程

  • Cortex-M Microcontroller,單片機使用
  • Cortex-A  application 手機,平板電腦使用
  • Cortex-R  real time,實時操做系統

Soc :System on chip (將一部分外設和CPU集成的芯片)安全

外設(Peripherial) : 外部設備(除了CPU之外的設備)架構

BSP :board support package 板級支持包(支持硬件的相關軟件,官方給的硬件包/驅動,根據板子移植過的)app

地址總線和數據總線dom

    CPU經過地址總線尋址,而後經過數據總線與外部設備互換信息,地址總線的位數決定CPU的尋址範圍;數據總線的位數決定CPU單次通訊能交換的信息數量。總線的速度決定CPU和外設互換信息的速度。CPU的地址總線位數和數據總線能夠不一樣,但通常都相同,CPU的位數指的是數據總線的位數,32位CPU尋址範圍是4G,因此最多支持4G內存,數據總線是32位的,因此內存32位的好,因此編程最好用int工具

2. 可編程器件

可編程邏輯器件 英文全稱爲:programmable logic device 即 PLD。測試

對於可編程邏輯器件,設計人員可利用價格低廉的軟件工具快速開發、仿真和測試其設計。 而後,可快速將設計編程到器件中,並當即在實際運行的電路中對設計進行測試。spa

3.RISC和CISC

CISC: complex instruction set computer複雜指令集CPU操作系統

  • 用最少的指令來完成任務
  • 設計複雜、工藝複雜
  • 編譯器好設計

RISC: Reduced Instruction-Set Computer精簡指令設計

  • 讓軟件來完成具體的任務,CPU自己僅提供基本功能指令集
  • CPU的設計和工藝簡單
  • 編譯器的設計變難

4. 統一編址&獨立編址

  內存 IO  
定義 程序的運行場所,和CPU之間經過總線鏈接,內存經過CPU的地址總線來尋址定位,而後經過CPU數據總線來讀寫。 輸入輸出接口,是CPU和其餘外部設備之間通訊的道路。通常的,IO就是指CPU的各類內部或外部外設。  
與CPU的鏈接方式 直接鏈接 IO與內存統一編址方式 : 相似於訪問內存的方式,即把外設的寄存器看成一個內存地址來讀寫,從而以訪問內存相同的方式來操做外設

IO與內存獨立編址 : 使用專用的CPU指令來訪問
某種特定外設

優勢 效率高訪問快 IO看成內存來訪問,編程簡單 不佔用CPU地址空間
缺點 資源有限,擴展性差。 IO也須要佔用必定的CPU地址空間,而CPU的地址空間是有限資源。 CPU設計變複雜了
  馮諾依曼結構 哈佛結構
定義 程序和數據都放在內存中,且不彼此分離 程序和數據分開獨立放在不一樣的內存塊中,彼此徹底分離
優勢 處理起來簡單 安全和穩定性高
缺點 安全和穩定性低 軟件處理複雜一些

5.寄存器

寄存器是CPU內部用來存放數據的一些小型存儲區域,用來暫時存放參與運算的數據和運算結果, 是CPU的硬件設計者制定的,目的是留做外設被編程控制的「 活動開關 」,正如彙編指令集是CPU的編程接口API同樣,寄存器是外設硬件的軟件編程接口API。使用軟件編程控制某一硬件,其實就是編程讀寫該硬件的寄存器。
編程操做寄存器相似於訪問內存,每一個bit位都有特定含義,所以編程操做時須要位操做。單個寄存器的位寬通常和CPU的位寬同樣,以實現最佳訪問效率。
SoC中有2類寄存器:
    •  通用寄存器(ARM中有37個)是CPU的組成部分,CPU的不少活動都須要通用寄存器的支持和參與。
    •  SFR(special function register,特殊功能寄存器)不在CPU中,而存在於CPU的外設中,咱們經過訪問外設的SFR來編程操控這個外設,這就是硬件編程控制的方法。

6. ARM體系結構

  • ARM是RISC架構
  • 經常使用ARM彙編指令只有二三十條,是低功耗CPU
  • SoC中的各類內部外設經過各自的SFR編程訪問,這些SFR的訪問方式相似於訪問普通內存,這叫IO與內存統一編址。
  • ARM是哈佛結構的,保證了ARM CPU運行的穩定性和安全性,所以ARM適用於嵌入式領域,哈佛結構也決定了ARM裸機程序(使用實地址即物理地址)的連接比較麻煩,必須使用複雜的連接腳本告知連接器如何組織程序;對於OS之上的應用(工做在虛擬地址之中)則不需考慮這麼多

7.S5PV210的內存映射

ROM:read only memory 只讀存儲器。ROM所存數據,通常是裝入整機前事先寫好的,整機工做過程當中只能讀出,而不像隨機 存儲器那樣能快速地、方便地加以改寫。ROM所存數據穩定,斷電後所存數據也不會改變;
RAM:ramdom access memory 隨機訪問存儲器,CPU直接交換數據,也叫 主存(內存)。它能夠隨時讀寫,並且速度很快,一般做爲 操做系統或其餘正在運行中的程序的臨時數據存儲媒介。當電源關閉時RAM不能保留 數據。若是須要保存數據,就必須把它們寫入一個長期的存儲設備中(例如 硬盤)。

  通常來講會比較難以理解RAM與ROM和平時所說的運行內存和硬盤容量有什麼關係,其實從通常意義上來講是同樣的,但從計算機和手機的角度來講又有一些區別。

從電腦來講通常比較好理解,RAM就是咱們平時所說的運行內存,它的確是隨時可讀寫的。由於CPU處理的數據都是以運行內存爲中介的。斷電後信息是不保存的。那麼對於ROM來講,是否是就是硬盤呢?不是說ROM只能夠讀嗎?硬盤倒是能夠修改的。的確,必須明確一點,RAM與ROM都是內存,而硬盤是外存,因此ROM不等於硬盤。計算機中的ROM主要是用來存儲一些系統信息,或者啓動程序BIOS程序,這些都是很是重要的,只能夠讀通常不能修改,斷電也不會消失。

      那麼對於手機來講呢?其實不少困惑都來自於手機廠商的宣傳信息的誤導。由於通常手機廠商都會說有多少G的RAM,多少G的ROM;在手機裏面,RAM就是跟電腦同樣的運行內存同樣;而ROM就不同了,你想一想看,若是隻用來存儲一些系統信息和開機引導程序,須要幾個G的容量?其實手機的ROM就跟硬盤掛上鉤了,手機中的ROM有一部分用來存儲系統信息,還有一些裝機軟件,剩餘的大部分容量都是就是拿來做爲硬盤用的,可讀可寫。

IROM:internal rom 內部ROM,指的是集成到SoC內部的ROM
IRAM:internal ram 內部RAM,指的是集成到SoC內部的RAM
DRAM動態RAM,須要刷新,容量大。

SRAM靜態RAM,不用刷新,速度能夠很是快,像CPU內部的cache,都是靜態RAM,缺點是一個內存單元須要的晶體管數量多,於是價格昂貴,容量不大。

ONENAND/NAND:
SFR:special function register
相關文章
相關標籤/搜索