[STM32F1] STM32中如何指定代码在程序存储器中的位置?

[复制链接]
 楼主| lxm851115 发表于 2014-10-24 17:00 | 显示全部楼层 |阅读模式
本帖最后由 lxm851115 于 2014-10-24 17:08 编辑

STM32中如何指定代码在程序存储器中的位置?
编译器使用IAR,谢谢各位大虾指导!!
想做大牛的小马 发表于 2014-10-24 17:29 | 显示全部楼层
两种方法,1改配置文件,定义1个变量然后代码里#pragma
第二个应该更简单,代码里好像可以直接@addr
记得不是很清楚了,可以试试~
amanda_s 发表于 2014-10-24 21:35 | 显示全部楼层
例如:
#pragma location = 0x20000000
  __no_init __IO uint32_t VectorTable[48];

可以再IAR的HELP菜单里,搜一下#pragma location,看看具体说面
i55 发表于 2014-10-25 10:02 | 显示全部楼层
刚遇到这个问题,在LPC1756的flash绝对地址0x2fc位置上放一个整数,这么写/* IAR iccarm specific functions */const uint32_t crp @ ".crp" = CRP;

  1. 然后看下iar自带的lpc1756.icf这个文件你就明白了。  
周董 发表于 2014-10-25 23:41 | 显示全部楼层
拿起书本 发表于 2014-10-27 14:51 | 显示全部楼层
具体不是记得太清楚了,采用分散加载的方式可行的。
suyugangabcd 发表于 2015-4-18 23:25 | 显示全部楼层
在.icf文件内增加
define symbol __ICFEDIT_region_LCD_start__   = 0x08050000 ;0x08050000 修改为你自己需要的地址

place at address mem:__ICFEDIT_region_LCD_start__ {  section .text object lcd.o  };
这样就能把lcd.c文件内的程序放到__ICFEDIT_region_LCD_start__定义的地址处。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

8

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部