下面来看下解决的办法:
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
本站由北京市万商天勤律师事务所王兴未律师提供法律服务