數據類型

1. 用 static 聲明局部或者全局變量用

  • 對局部變量用 static 聲明,則使用該變量在整個程序執行期間不釋放,爲其分配的的空間始終存在。
  • 全局變量用 static 聲明,則該變量的作用域只限於本文件模塊(即被聲明的文件中)。

2.堆棧

  • 棧(stack)空間,用於局部變量,函數調時現場保護和返回地址,函數的形參等。
  • 堆(heap)空間,主要用於動態內存分配,也就是說用 malloc,calloc, realloc 等函數分配的變量空間是在堆上。

寄存器組(堆棧指針寄存器)

Cortex – M7/M4/M3 處理器擁有 R0-R15 的通用寄存器組。其中 R13 作爲堆棧指針 SP。 SP 有兩個,但在同一時刻只能有一個可以用
 主堆棧指針(MSP):這是缺省的堆棧指針,它由 OS 內核、異常服務例程以及所有需要特權訪問的應用程序代碼來使用。
 進程堆棧指針(PSP):用於常規的應用程序代碼(不處於異常服用例程中時)。
另外以下兩點要注意:
 大多數情況下的應用,只需使用指針 MSP,而 PSP 多用於 RTOS 中。
 R13 的最低兩位被硬線連接到 0,並且總是讀出 0,這意味着堆棧總是 4 字節對齊的。
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章