打印
[XMC™]

XMC系列如何将代码放入指定位置?

[复制链接]
408|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
1. 如何将代码放在RAM区域?
1.1 如果需要把某个函数放在RAM中运行,可以使用__attribute__关键字,例如:
  
  ram_code这个段是RAM中用于放置RAM code的一个段,预先在ld文件已经定义好了,不需要用户自己定义。
1.2 如果需要把一个文件放在RAM中运行,则需要修改ld文件,首先把这个文件从text段中exclude出来,然后再添加到ram_code段中。例如把test1.c这个文件放在RAM中运行,可以如下操作:


2. 如何把变量放在RAM中的指定位置?
  在ld文件中定义一块自己的数据区,然后在源文件中就可以用__attribute__关键字把变量放在这个区域的首地址了。
  例如把一个变量放在0x20002000这个地址:
  在ld文件定义一块从0x20002000开始的数据区:

  在源文件中把变量sum放在0x20002000的地址:


3. 如何把const data放在Flash中的指定位置?
  在ld文件中定义一块自己的常量区,然后在源文件中就可以用__attribute__关键字把变量放在这个区域的首地址了。
  例如把一些常量放在0x10011000开始的地址:
  在ld文件定义一块从0x10011000开始的常量区:

  在源文件中把常量myconst数组放在0x10011000的地址。


4. 如何把代码放在Flash中的指定位置?
  在ld文件中定义一块自己的代码段,然后在源文件中就可以用__attribute__关键字把代码放在这个区域的首地址。
  例如把一个函数放在0x10016000开始的地址:
  在ld文件定义一块从0x10016000开始的代码区:

  在源文件中把CalSum()函数放在0x10016000的地址:


5. 如何把一个文件放在Flash中的指定位置?
  这里有两个方法可以实现这个功能。

  方法一:把Flash划分为两块,把文件放在其中一块。
  例如把test2.c的文件放在0x10020000开始的地址,可以如下这么做。
  首先把Flash划分成两块:

  把源文件test2.c放在Flash_1区域:


  方法二:先把源文件从text段exclude出来,在最后定义一个代码段,把源文件放置在那里。
  例如把test2.c的文件放在0x10020000开始的地址,可以如下这么做。
  首先把源文件从text中exclude出来:

  添加到自己定义的代码段:

  采用这个方法需要确保0x10020000这个地址没有和别的代码重叠。

使用特权

评论回复
沙发
jf101| | 2024-3-28 20:21 | 只看该作者
感觉使用咱们的MCU能接触好多不一样的调试编写方法

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:英飞凌科技股份公司
简介:关于英飞凌——我们致力于打造一个更加便利、安全和环保的世界,在赢得自身成功发展的同时,积极践行企业社会责任。

73

主题

208

帖子

6

粉丝