兆芯(9月19)
BIOS:基本輸入輸出系統,儲存著計算機最重要的基本輸入輸出程式,開機後自檢程式和系統自啟動程式
主要業務和目標是研發基於國產X86架構的CPU、GPU和晶片的
X86架構:微處理器執行的計算機語言指令集
BootLoader:嵌入式系統上電後執行的第一段程式碼,在嵌入式系統中,通常沒有像BIOS那樣的韌體程式,因此bootloader是在作業系統核心執行之前執行,可以初始化硬體裝置、建立記憶體空間對映,就是把系統的軟硬體環境帶到一個合適的狀態,為最終呼叫作業系統核心準備好正確的環境
記憶體管理
mmu(記憶體管理單元):管理虛擬儲存器,物理儲存器的控制線路,虛擬地址對映為實體地址,以及提供硬體機制的記憶體訪問授權
虛擬儲存,只把當前執行程序的頁表駐留在記憶體中,其它程序頁表不必駐留在記憶體中,在需要時進行頁的置換
- 為每個程序提供了一致的地址空間,簡化了儲存器管理
- 虛擬儲存器都是使用分頁,記憶體被分成大小固定相等的稱為頁的塊,且塊相對比較小,每個程序也被分同同樣大小的小塊,稱為頁框,程序中的頁就可以指定到記憶體中的頁框;減少記憶體碎片
分段:可以把程式和其相關的資料分到幾個段中,段的大小可以不等,類似於動態分割槽,不要求連續
虛擬定址,CPU生成一個虛擬地址來訪問主存,虛擬地址需要經過mmu地址翻譯為實體地址
- 頁表:將虛擬頁對映到物理頁,mmu將虛擬地址轉換成實體地址時都會讀取頁表,作業系統為系統中的每個程序都維護一個獨立
的頁表 - 虛擬地址由虛擬頁號和虛擬頁偏移量組成,虛擬頁號作為到頁表的索引,將頁表中的物理頁號和虛擬頁偏移量加起來就得到了實體地址
檔案系統:作業系統中負責管理和儲存檔案的軟體結構,為應用程式和使用者訪問檔案的功能介面,也是唯一方式
程序管理:
使用者模式,快速中斷模式,外部中斷模式,特權模式
37個32位暫存器,31個通用暫存器,6個狀態暫存器
暫存器R13是做堆疊指標,
暫存器R14(lr):用作連線暫存器,用於儲存函式的返回地址
暫存器R15是程式計數器,存放下一條要執行指令的地址
通過R0~R3來傳遞引數,R4~R11用來儲存區域性變數,
(R16)CPSR:當前程式狀態暫存器
SPSR:備份程式狀態暫存器
ARM異常型別:復位異常,軟體中斷,IRQ,FIQ
FIQ省去了中斷過程的一條跳轉指令,FIQ的向量地址緊接中斷向量表存放,中斷向量表後就是程式程式碼
SPI IIC
- SPI是四訊號線協議,SCK(時鐘線),MOSI和MISO(資料線),從裝置片選訊號線;
- 高速全雙工同步通訊匯流排,
- SPI是單主裝置通訊協議,當SPI主裝置向讀/寫從裝置時,它首先拉低從裝置的SS線,然後將讀/寫訊號發到MISO(實現讀)和MOSI(實現寫)
- 外設的讀和寫是同步進行的
- CPOL(時鐘極性)=0,序列時鐘空閒狀態為0
- CPHA(時鐘相位)=0,序列時鐘的第一個跳變沿資料被取樣
SPI不規定最大傳輸速率,沒規定通訊應答機制,沒有規定流控制規則
IIC是多主裝置的匯流排,高速同步半雙工通訊匯流排,兩線式序列匯流排
- 每個IIC裝置都有一個地址;資料幀大小為8位的位元組,資料幀中某些資料位用於控制通訊的開始、停止和應答
- 主裝置發一個開始訊號,主裝置傳送一個7位從裝置地址加一位讀寫操作的資料幀;當從裝置收到資料後,比對地址是否為目標裝置,如果比對相符,裝置會發送一個應答訊號給主裝置;主裝置收到應答便開始傳輸資料;資料傳送完畢,主裝置傳送一個stop訊號,釋放匯流排
- START:SCl為高,SDA由高電平變為低電平;
- STOP:SCL為高,SDA由低電平變為高電平
對比
- IIC兩根訊號線,SPI四根訊號線,多個從裝置訊號線需要更多,IIC構建系統匯流排的唯一問題是有限的7位地址空間,新標準使用10位地址
- SPI高速資料傳輸,甚至到10Mbps
程序通訊
- 管道
- 訊號
- 訊號量
- 共享記憶體
- 訊息佇列
執行緒同步:
- 臨界區(關鍵程式碼段):單個程序中執行緒間的同步
- 事件:
- 互斥物件
- 訊號量
程序:具有一定獨立功能的程式載入到記憶體執行得到一個實體,程序是作業系統資源分配的基本單元;
執行緒:執行緒是程序的一個實體,是CPU排程的基本單元;執行緒自己基本上不擁有系統資源,只擁有一點執行必不可少的資源(棧,程式計數器),但是它和同屬一個程序的其他執行緒共享程序的全部資源。一個執行緒可以建立和撤銷另一個執行緒