嵌入式C語言開發學習筆記 記憶體陷阱

2021-09-28 20:24:49 字數 550 閱讀 1188

參考:

博文01:

博文02:參考:《嵌入式系統高階c語言程式設計》 ,這本書有空好好看看

1. 記憶體分配方式

(1)從全域性儲存區(靜態儲存區)分配。

何時分配:程式編譯時

生存週期:整個程式執行期間

例子:全域性變數、static變數

(2)在棧(stack)上建立。

何時分配:函式執行時

生存週期:變數作用域期間

(3)在堆(heap)上分配,即動態記憶體分配。

系統程式設計師知道系統中每個程式單元在儲存器中的位置,除了這個程式單元所佔儲存器的空間外,還存在一些空閒儲存器空間。系統程式設計師可以通過絕對位址對這些空間進行訪問。

應用:將系統常數燒寫在flash或rom特定位址。

2. 區域性變數

區域性變數的記憶體陷阱在於,c語言編譯器在處理區域性變數時,將其要麼放在cpu通用暫存器中,要麼放在**堆疊(棧區又稱堆疊)**中。而且區域性變數的生存期有限。

注意事項:

由於無法確定編譯器是否將區域性變數對映到通用暫存器中,所以不

嵌入式C語言 學習筆記

一 位運算 符號運算規則 與 兩個位都為1時,結果才為1 從真假方面看,只有當兩個位都為真時,結果才為真 或 兩個位都為0時,結果才為0 從真假方面看,如果兩個運算物件中相應的乙個位為真或者兩個位都為真,那麼結果為真 異或 兩個位相同為0,相異為1 從真假方面看,如果兩個運算物件中相應的乙個位為真且...

嵌入式c語言 學習筆記

最普通的指標 int a 呼叫形式 1 a a指向的物件的位址 2 a a指向的物件的值 3 a a自身的位址 常用來作為引數,呼叫陣列,加上乙個說明陣列的長度的,從而獲取不定大小的陣列 第二種 int a n 指標陣列,包含n個整型指標 對應地 int a n 陣列指標,指向大小為n的陣列 嵌入式...

嵌入式學習(二) 嵌入式系統C 語言

1 從 cpu 復位時的指定位址開始執行 2 跳轉至彙編 startup 處執行 3 跳轉至使用者主程式 main 執行,在 main 中完成 a.初試化各硬體裝置 b.初始化各軟體模組 c.進入死迴圈 無限迴圈 d呼叫各模組的處理函式 下面是幾個 著名 的死迴圈 1 作業系統是死迴圈 2 win3...