一、ARM內核基礎知識
1.ALU:算術邏輯單元;完成運算的電路
2.通用寄存器:R0~R15
- R13(SP):棧指針寄存器:指向棧頂的位置;并在函數調用、中斷處理等場景中自動更新。
- R14(LR):鏈接寄存器:保存PC要回來的位置,在PC調用完了,把地址給PC
- R15(PC)program counter 程序計數器;保存當前指令要執行的下一條指令的地址
- R0~12:隨便存
3.cache:高速緩存;RAM和內核速度不匹配;
- ? ? ? ? I cache:指令高速緩存? ? instruction
- ? ? ? ? d cache:數據高速緩存? ?data
4.MMU:memory management unit?
????????內存管理單元;映射虛擬內存和物理內存:提高內存的使用效率
5.CPSR:current program status register
????????當前程序狀態寄存器,有一位可調整大小端,默認小端
6.SPSR:saved?program status register
? ? ? ? 用于保存程序狀態寄存器(CPSR)的值
7.CISC:complex instruction set computer
????????復雜指令計算機;體積大功耗大成本高,不適合便捷;在80%情況下,只能用20%功能
8.RISC:reduce? instruction set computer
????????精簡指令集計算機,容易集成在便攜式設備上
9.cortex 系列:(從ARM 11)
- ????????cortex? A:應用,消費類電子,便攜類設備;A7系列
- ????????cortex R:實時性高,高端,軍工、衛星;
- ????????cortex M:單片機系列
A:arm? 32位? 指令
T:sam?16位
10.哈佛結構和馮諾依曼
(1)哈佛架構
程序存儲和數據存儲分離:哈佛架構使用獨立的存儲器和總線來分別存儲程序和數據。程序存儲器專門用于存儲指令,數據存儲器用于存儲變量和數據。
(2)馮·諾伊曼架構
- 程序存儲和數據存儲統一:馮·諾伊曼架構使用同一套存儲器和總線來存儲程序和數據。程序和數據存儲在同一個存儲空間中,通過地址來區分指令和數據。
11.總線(bus)
- ????????AHB:先進的高速總線,連接高速設備,USB、RAM(早期叫北橋)
- ? ? ? ? APB:先進外設總線,連接低速設備串口、GPIO,定時器(早期叫南橋)
? PCI:插顯卡
(1)多總線結構
- ????????可選擇的DMA總線:直接內存訪問
(2)單總線結構:
DSP:數字圖像處理
12.編譯器
(1)匯編
- ????????對內核進行一些操作,比如關閉MMU,打開SP,打開I cache,關閉d cache?
- ????????arm-gcc:交叉編譯工具鏈。編譯出來的程序,電腦運行不了。只能運行在ARM板上,問題:編譯出來的代碼無法在主機運行,只能在目標機上運行
13.最小系統
封裝方式:BGA封裝、TSOP封裝、COB封裝
二、RAM&&ROM
1.RAM
(1)sram(static ram)
用晶體管存儲0、1;
? ? ? ? 速度快,成本高,存儲密度低;
? ? ? ? 應用于單片機。
(2)dram(dynamic ram)動態存儲
用電容充放電存儲0,1;
? ? ? ? 功耗大,需要外接(外接刷新電路,電路復雜(定期向存儲1的補充電荷)),讀寫速度低于sram,成本低,存儲密度大;
? ? ? ? 多應用與高端Soc。
(3)sdram(synchronous dram)
增加了同步電路,提高dram的數據讀寫速度(dram升級版)。
(4)ddr ram(ddr sdramldouble data rate sdram)
為sdram的下一代;雙倍速(雙數據速率)
(5)iram(internal ram)
注意iram并非是真正意義上的某種ram,通常iram就是 sram,它通常存在于Soc內部,所以被稱為iram(Soc內部直接封裝好在芯片內部的sram)
2、ROM
(1)rom非易失性存儲器
最早的rom在出場時寫入數據,之后無法更改。
(2)prom(programmable rom)可編程rom
出場后能夠讓用戶寫入一次數據,例如cdrom。
(3)eprom(erasable prom)可擦寫prom
出場后可以擦除數據再次寫入, 但需要特殊的設備,如紫外光等。
(4)eeprom(electically eprom)電可擦寫可編程rom
無需專用設備就可以擦寫,編程。
(4)flash閃存,新一代非易失性存儲器
1)nor flash(或非falsh)
可直接被CPU尋址(每個字節都有獨一無二的地址)
????????2)nand flash(與非falsh)
不可被COU尋址,每個字節不可被尋址(用flash控制器可以訪問)
擴:eMMc(電多媒體卡)
本質就是nand,也就是SD卡,不同之處:SD卡可拔可插,eMMc可直接焊在板子上。
3、存儲系統的速度和價格對比
CPU可以直接訪問主存存儲器;
CPU有硬盤控制器(sd卡):ROM通過RAM再到CPU
TTL:
RA232:三根線,RDX、TDX、GND
DB9:2、3、9有用,對應收、發、地;其他是流控制;
三、ARM七種工作模式
Cortex——A:有九種
每種狀態都有自己獨立的棧區空間
ARM9 :37個寄存器
cortex A-7有40個寄存器
四、異常向量表(事件)
1.偏移量與異常向量表
? ? ????偏移量:異常函數處理的入口地址;
? ? ? ??異常向量表:用于存儲不同類型異常發生時,處理器跳轉到特定的異常處理程序的地址;