说明: 本文为作者自己根据网上知识总结,不保证内容的完全正确性,主要是方便自己记录。
1. 存储组织
存储硬件分为: flash ,ram , registers and I/O ports 这4类, 它们本身没有地址,只是被 组织为线性的4g空间;
2. 编译后的存储
(1) 编译器在编译程序的时候统计了4类存储: code ,ro-data , rw-data 和 zi-data , 归纳为2类 , ro (code + ro-data)和 rw(rw-data 和 zi-data) ;
(2)编译器在生成image文件(bin文件)的时候只包含code , ro-data ,rw-data这3个 , 而不包含zi-data ;程序运行的时候只需要把zi-data相应的ram存储区域整体清0即可;
(3)bin文件一定要有2个功能:
a. 将rw-data从rom(flash)搬运到ram中 ,rw变量只能在程序中运行;
b. 将zi-data在ram中的区域清0 ;
代码再初始阶段只有完成了a和b,c程序才能访问变量,否则只能运行不包含变量的程序;
3. 变量类型和编译后的存储类型的对应关系
(1)ro-data 包含 常量;(表