什么是程序映像

程序映像

Cortex-M0的程序映像一般包含下面几个部分

■向量表;
■C启动例程;
■程序代码(应用程序代码和数据);
■C库代码(C库函数的程序代码,链接时插人)。

向量表

这个在启动文件中,可以采用C语言或者汇编语言来实现。
由于向量表的入口需要编译器和链接器生成的内容,所以向量表代码的实现细节是同开发工具链相关的。
例如,栈指针的初始值被链接到链接器生成的栈空间地址,而复位向量则指向了C启动代码的地址,这些都是同编译器相关的。

C启动代码

C启动代码用于设置像全局变量之类的数据,也会清零加载时未被初始化的内存区域。对于使用malloc()等C函数的应用程序,C启动代码还需要初始化堆空间的控制变量。初始化完成后,启动代码跳转到main()程序执行。

程序代码

用户指定的任务是由应用程序生成的指令完成的,除了指令以外,还有以下各类数据:
■变量的初始值,函数或子程序中的局部变量需要初始化,这些初始值会在程序执行期间被赋给相应的变量。
■程序代码中的常量,应用程序中的常量数据有多种用法,如数据值、外设寄存器的地址和常量字符串等,这些数据在程序映像中- .般作为数据块放在一起,并被称作***文字库***。
●有些应用程序可能也会包括其他的常量,比如查找表和图像数据(如位图),它们也被合并在程序映像中。

C库代码

在这里插入图片描述

RAM中的数据

在这里插入图片描述
![在这里插入图片描述](https://img-blog.csdnimg.cn/20191218173016165.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NzYzMDkz,size_16,color_FFFFFF,t_70

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值