[经验] 【MSP430 编译器使用经验】+ IAR 环境下的函数定位加载(分散加载)方法

armcu   2014-8-12 11:26 楼主
以MSP430AFE253为例分享IAR(5.5)环境下的函数定位方法

1、修改XCL配置文件

在IAR的安装目录 Tools\430\config下找到lnk430afe253.xcl文件,将其拷贝到当前工程目录下;

设置项目中链接文件的位置(将默认位置改为修改后lnk430afe253.xcl文件的存放位置),如下图所示:

1.jpg

打开 lnk430afe253.xcl 文件,找到 CODE 字段的定义,在其中添加以下语句:

// 在我的项目中需要将一段代码放置在地址 0xF000 起始位置处,故定义 MYCODE 代码段如下
-P(CODE)MYCODE=F000-F1FF

如下图示:

2.jpg

2、在代码中指定下载位置

共有两种写法可以实现函数的定位:

1)、void fun(void) @ "MYCODE"
        {}
2)、
       #pragma location = "MYCODE"
       void fun(void)
      {
      }   

另外,结束后要回复编译器默认的定位

#pragma location = "CODE"

3、下载后查看FLASH内容

代码示例:
#pragma location = "MYCODE"
void DefaultIO(void)
{
  P1DIR  = 0xFF;
  P1OUT  = BIT3;
  P2SEL &= ~(BIT6 | BIT7);
  P2DIR  = 0xFF;
  P2OUT  = BIT0;
}
#pragma location = "CODE"

下载后memory内容截图:

3.jpg

回复评论

暂无评论,赶紧抢沙发吧
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复