您好,欢迎来到意榕旅游网。
搜索
您的当前位置:首页IAR使用技巧

IAR使用技巧

来源:意榕旅游网
1、定义太大的 RAM,那就有可能会遇到 RAM 中定义的变量/数组在超过一定范围的时候,MSP程序不能正常运行的现象。一般初步判断,可以用 I/O 输出电平来确定程序进程.这样可以非常方便的知道该问题是由于 WDT 造成的,(RAM 的初始化时间大于 WDT 默认的 32MS 时间,因此 MSP复位)

下面来看下解决的办法:

A、 对数组用 __no_init 定义,上电编译器不产生特殊的附加函数去初始化 RAM

例:__no_init u8 GprsTXBuf[1000];

B 、修改 IAR 中 Cstartup.S43 文件中__program_start 子程序,增加一个关闭 WDT 的操作或者设置 WDT 时间长度超过 32MS。(建议不到万不得已,不要改这个文件!)

文件地址:IAR Systems\\Embedded Workbench 6.0 Evaluation\\430\\src\\lib\\430

C 、在 Project–Options–Linker–Config中选择 Override default programe,并将 Entry lib 设置成 __program_start

2、__no_init 是一个SEGMENT,是给LINKER用的,定义到不初始化的块中去。

3、__regvar放置一个变量在工作寄存器中。

4、__root 保证没有使用的函数或者变量也能够包含在目标代码中。

5、在IAR的集成开发环境中实现数据变量定位方法如下三种:

__no_init char alpha @ 0x0200;

#pragma location = 0x0202

const int beta;

const int gamma @ 0x0204 = 3;

6、在IAR中函数定位有两种写法:

void g(void) @ \"MYSEGMENT\" // MYSEGMENT段可在XCL中编辑开辟

{

}

#pragma location = \"MYSEGMENT\"

void h(void)

{

}

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- yrrf.cn 版权所有 赣ICP备2024042794号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务