栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

MSP430F435 c语言IAR编译软件报错解决方法笔记

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

MSP430F435 c语言IAR编译软件报错解决方法笔记

IAR编译软件报错解决方法

1、问题一:堆栈溢出出现警告。已进入主函数就开始报警堆栈溢出。

 报错原因:在主函数中定义了大量的大数组,看门狗已经关闭,但仍未完成数据初始化,导致堆栈溢出。

 解决方法:定义关闭看门狗的函数,并将定义的大数组提到主函数外,使关闭看门狗的同时完成初始化数组到ARM中,就不会发生堆栈溢出。

int __low_level_init( void )
{
  // Stop watchdog timer to prevent time out reset
  WDTCTL = WDTPW + WDTHOLD;
  return 0;
}
float o1[11],o2[17],o3[13];
int weigh1[11] = {-1698,-1675,-1718,609,-750,-738,-1967,979,-1282,-465,842};
int bias1[11] = {400,739,1117,-282,674,82,113,212,-802,-249,727};

2、问题二:Error[e16]: Segment DATA16_I (size: 0x400 align: 0x1) is too long for segment definition. At least 0x200 more bytes needed. The problem occurred while processing the segment placement  command "-Z(DATA)DATA16_I,DATA16_Z,DATA16_N,TLS16_I=0200-03FF"

 

报错原因: 虽然都是msp430单片机,但是不同型号各存储单元的存储空间的大小也各有不同。由于编写的程序中初始化了多个大数组常量,定义了多个数组变量,相同的程序配置不同的单片机,msp430f435的RAM由于存储空间不足,程序编译报错。

解决方法:将大数组数据利用const定义常量存储到FLASH中。

const float o1[11],o2[17],o3[13];
const int weigh1[11] = {-1698,-1675,-1718,609,-750,-738,-1967,979,-1282,-465,842};

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1022096.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号