1. 程式人生 > >《嵌入式軟體設計基礎——基於ARM Cortex—M3》讀書筆記

《嵌入式軟體設計基礎——基於ARM Cortex—M3》讀書筆記

此書有點深,記錄點自己能夠看懂的。
1、記憶體管理一章:講到變數的型別、生存週期、記憶體分配。
auto static register 區域性變數,全域性變數
malloc free
記憶體碎片,消除記憶體池的一個常見的策略是可以使用分配池
2、共享記憶體一章:講到如何編寫可重入函式,很多庫函式都是設計為可重入函式的,函式體內不能有全域性變數和靜態變數,有的引數可以通過指標(或二級指標)實現。
const型別限定符,使用方法有以下幾種:
const int p;
const int p;
int
const p;
const int* const p;
volatile型別限定符,附加到物件當中,可以指示其值可以由某些機制非同步修改。提醒編譯器不能優化,比如一個記憶體對映的IO口裝置狀態埠的改變,或者直接由記憶體訪問或中斷例程進行的記憶體資料的修改。然而,將限定符增加到其宣告中不會消除臨界區問題。
使用方法有:
#define SHARED_MEMORY volatile
extern SHARED_MEMORY long shared;
volatile long *pv;
volatile long * const pv = initial-value;
const volatile long * const pv = initial-value;