STM32學習筆記之—芯片基礎
STM32程序默認都是從0x08000000開始的
命名規則
ST官方開發板
RAM大小
以下列舉常見型號的RAM大小
STM32C8T6 |
STM32R8T6 |
STM32RBT6 |
STM32RCT6 |
STM32ZET6 |
16K |
20K |
20K |
48K |
64K |
##常見型號的片內FLASH
小容量產品主存儲塊最大爲4K×64位,每個存儲塊劃分爲32個1K字節的頁。
中容量產品主存儲塊最大爲16K×64位,每個存儲塊劃分爲128個1K字節的頁。
大容量產品主存儲塊最大爲64K×64位,每個存儲塊劃分爲256個2K字節的頁。
互聯型產品主存儲塊最大爲32K×64位,每個存儲塊劃分爲128個2K字節的頁。
STM32F103CBT6、STM32F103C8T6(特殊的可以用128K Flash)
頁碼 |
起始地址 |
結束地址 |
頁大小 |
頁0 |
0x0800 0000 |
0x0800 03FF |
1K |
頁1 |
0x0800 0400 |
0x0800 07FF |
1K |
頁2 |
0x0800 0800 |
0x0800 0BFF |
1K |
頁3 |
0x0800 0C00 |
0x0800 0FFF |
1K |
… |
… |
… |
1K |
頁127 |
0x0801 FC00 |
0x0801 FFFF |
1K |
STM32F103RCT6
頁碼 |
起始地址 |
結束地址 |
頁大小 |
頁0 |
0x0800 0000 |
0x0800 07FF |
2K |
頁1 |
0x0800 0800 |
0x0800 0FFF |
2K |
頁2 |
0x0800 1000 |
0x0800 17FF |
2K |
頁3 |
0x0800 1800 |
0x0800 1FFF |
2K |
… |
… |
… |
2K |
頁127 |
0x0803 F800 |
0x0803 FFFF |
2K |
STM32F103ZET6
頁碼 |
起始地址 |
結束地址 |
頁大小 |
頁0 |
0x0800 0000 |
0x0800 07FF |
2K |
頁1 |
0x0800 0800 |
0x0800 0FFF |
2K |
頁2 |
0x0800 1000 |
0x0800 17FF |
2K |
頁3 |
0x0800 1800 |
0x0800 1FFF |
2K |
… |
… |
… |
2K |
頁255 |
0x0807 F800 |
0x0807 FFFF |
2K |
嵌入式基礎拓展
Code |
|
用來存放代碼的代碼段 |
|
RO-data |
Read Only |
存放指令和常量 |
存儲const常量和指令 |
RW-data |
Read/Write |
存放已初始化的變量 |
存儲初始化值不爲0的全局變量 |
ZI-data |
Zero Initialize |
存放未初始化的變量 |
未初始化的或初始化值爲0的全局變量 |
Flash=Code + RO Data + RW Data
RAM= RW-data+ZI-data
C 語言上分爲棧、堆、bss、data、code段
MDK 下分爲:Code、RO-data、RW-data、ZI-data 這幾個段
內存段