stm32單片機在Keil環境下定義的變量都存儲到哪去了?(以STM32f1系列爲例)

stm32f1系列單片機,在keil5環境下編譯後顯示四個儲存區域,分別是

Code, RO-data,RW-data,ZI-data

Code爲程序代碼部分
RO-data 表示 程序定義的常量const
RW-data 表示 已初始化的全局變量
ZI-data 表示 未初始化的全局變量

儲存區域如下:

Code, RO-data,RW-data ............flash
RW-data, ZIdata...................RAM

不過初始化時RW-data從flash拷貝到RAM

所以相當於Code, RO-data佔用flash的空間;RW-data, ZIdata佔用RAM的空間。

如圖所示的是我用的一塊c6t6的板子,flash 32k,RAM 10k。我們可以計算一下,Code+RO-data一共31544字節,RW-data,+ZIdata一共9728字節。內存沒有溢出,但是快滿了哈。

這裏說一下,如果RAM裏的數據超過上限,程序可以燒錄,但是不會運行;flash數據超過上限,程序無法燒錄進單片機。

原文鏈接:https://blog.csdn.net/qq_41963133/article/details/125987460

 

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