【单机片调试】开发调试MSP430 遇到的问题总结

本文总结了MSP430单片机在开发调试过程中遇到的问题,包括数组分配不当导致的越界和堆栈溢出、全局变量初始化导致的程序无法运行、内存分配不当引发的电源电压波动以及单片机的SVS模块可能导致的程序异常。解决方案涉及内存分配的调整、初始化方式的改变以及电源管理策略的优化。
摘要由CSDN通过智能技术生成

转载及积累:

1、分配数组的时候,一定要够长,否则填入是数组越界的时候,造成很多的问题(包括潜在的问题)。

a:全局变量改变:越界数据将全局变量覆盖

b:数组越界,无止境增长,造成堆栈溢出,程序跑飞。

2、定义一个全局变量(数组),当变量(数组)很长的时候出现,能下载到单片机,但不能运行的情况。例:

char  UART0_RX_BUF[400]={0}; 可以正下载程序,但是程序无法正常运行。

改为(缩小长度) char  UART0_RX_BUF[200]={0}; 则正常。

原因:定义的数组很长,且要求其初始化,RAM的初始化时间大于WDT默认的32MS时间,因此MSP复位。

解决方法: 用 __no init_定义变量,上电编译器不产生特殊的附加函数去初始化变量。

网上同样问题:

“当在RAM中对其中一变量开辟的尺寸是512字节时,程序总占用3.5K RAM空间,可以正常烧到芯片中,也可以正常运行;当对同一变量开辟的尺寸是1024字节,而其它均未改变时,程序总占用4.0K左右RAM空间,可以正常烧到芯片中,却无法运行!!!!”

http://bbs.lierda.com/showthread.php?t=11608

利达尔:MSP430常见问题汇总

http://wenku.baidu.com/view/19f818d376eeaeaad1f33003.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值