历史上的今天
今天是:2024年12月11日(星期三)
2018年12月11日 | stm32计算编译完的程序的大小及数据存储起始位置判断
2018-12-11 来源:eefocus
一、keil编译完后会产生以下数据:
其中,code代表可执行代码,程序中定义的所有函数都位于此处;
RO-data代表可读数据,程序中所有的全局常量数据和字符都位于此处;
RW-data代表已经初始化的读写数据,程序中所有定义并且初始化的全局变量和静态变量均位于此处;
ZI-data代表未初始化的读写数据,程序中定义了但是没有初始化的全局变量和静态变量位于此处;
二、在map文件的最后可以看到如下数据

从这个表里可以看到ROM SIZE里包含了Code RO-data RW-data,但是没有zi-data。是因为zi-data的值没有在程序里进行初始化,所以上电运行后会直接被赋值为0,所以这个值也就没有必要保存的ROM空间里了。
三、程序空间大小计算
7828byte=0x1E94byte;
那么数据存储从0x800 0000+0x1E94=0x800 1E94开始都是安全的。
上一篇:STM32F4的看门狗实现
下一篇:STM32使用串口的必备操作
史海拾趣
|
几天不拆东西手痒痒,拆就拆个没拆过的!这次对一个光驱里的激光管下手。 这个激光管俗称激光头,并不是打开光驱外壳直接看到的光头部分,而是真正发出激光的部分。我们打开光驱外壳能直接看到的只是光学透镜的一部分。 这种激光管有三个引脚,其 ...… 查看全部问答> |
|
搞了很久的Java和.net,现在想学习下嵌入式,不知道从和下手,麻烦高手指点下,谢谢。 会C/C++,能看懂汇编,熟悉Linux系统 不懂电路,硬件学得不好… 查看全部问答> |
|
个人心得:我是本人聋人嵌入式开发 有经验者请告诉我适合主机?RAM? 我是来自北京联大特殊教育学院 08应届生 大学大专 现在学习C和数据结构基础差不多啊准备下个月去嵌入式开发周末班学习 觉得学习完后我很担心找不到工作啊呀白学半年 所以请求有经验者建议 哪里方面不足告诉我 谢谢 顶 全天在线 … 查看全部问答> |
|
EVC 编译TCPMP的时候,没有的选择ARMV4,是什么原因? EVC 编译TCPMP的时候,没有的选择ARMV4,是什么原因? 是下载的是0.72RC1的TCPMP源码,请问该如何处理?有做过的吗?网上的编译过程没有说到这个问题的。 请过的DX麻烦了… 查看全部问答> |
|
2440+WINCE5.0 扩充128M SDRAM的问题。 我使用2440+wince5.0的平台,原先使用2片共64M字节的SDRAM,每片256bit,16bit位宽;现在想使用128M SDRAM,所以用了4片和原先一模一样的SDRAM芯片,在硬件连接上4片sdram芯片的BA0都与addr24连接,BA1都与addr25连接,另外其中两片 ...… 查看全部问答> |
|
串的操作 要求: (1)字符串采用数组存储,建立两个字符串String1和String2。输出两个字符串。 (2)将字符串String2的头n个字符添加到String1的尾部。输出结果。 (3)查找串String3在串String1中的位置,若String3在String1中不存在,则插入 ...… 查看全部问答> |
|
欢迎满足以下条件之一的有识之士与我们联系,公司网址: www.nerc.com.cn,发送简历邮箱地址:whl668@epri.ac.cn。 1.具有2年以上电力行业嵌入式产品开发经验。 2. ...… 查看全部问答> |
|
我是上海一大学软件工程专业的09届应届生,本科,不是很会说话。 在学校里学的是单片机开发之类的(偏软件 C语言),接触过ARM+Wince之类的嵌入式软件的开发。(其实学校里嵌入式软件方面的课基本就没有,都是我凭着兴趣自学的)单片机的水平达到自 ...… 查看全部问答> |




