MSP430 大型数组 上电不启动

发布者:初入茅庐最新更新时间:2020-05-08 来源: eefocus关键字:MSP430  大型数组  上电不启动 手机看文章 扫描二维码
随时随地手机看文章

现象:程序烧录板子后,单片机不启动,卡死。注释掉部分字节数组后,才能运行。


分析:

这是IAR编译的方法,导致看门狗溢出了。MSP430单片机一上电看门狗就已经启动,但是在进入main()函数之前,软件会先初始化用到的一些数据,比如数组。如果数定义的比较大,初始化时间比较长,那就有可能导致看门狗溢出了,单片机复位,然后重启,再初始化,再溢出,再复位..程序永远也进不去主函数。


解决方法:

使用低级初始化函数:int __low_level_init(void)  。该函数会自动把低级初始化函数放在程序的最开始处,在此可以关闭看门狗,等低级初始化函数执行完之后,才会进行数据初始化,最后再进入main()函数。


void main()

{


}


int __low_level_init(void)  

{  

  WDTCTL = WDTPW+WDTHOLD;                   // Stop WDT  

  /* Insert your low-level initializations here */ 

  /*  

   * Return value:  

   *  

   *  1 - Perform data segment initialization.  

   *  0 - Skip data segment initialization.  

   */ 


  return 1;  


也不用调用该函数,编译器自动将其放在最开始处。

当然也可以把所有硬件初始化函数写进来,这样在进入main函数之前,把硬件都准备好了,避免了其他bug产生。


__no_init unsigned char  all_25665[] ={


//4K多字节


};


关键字:MSP430  大型数组  上电不启动 引用地址:MSP430 大型数组 上电不启动

上一篇:MSP430单片机写Info Memory
下一篇:MSP430F5438A单片机基于SPI的FatFs移植笔记(一)

推荐阅读最新更新时间:2024-11-16 21:57

基于MSP430单片机的无线充电器设计
   引言   目前,手机、MP3和笔记本 电脑等便携式电子设备进行充电主要采用的是一端连 接交流电源,另一端连接便携式电子设备充电电池的传统充电方式。这种方式有很多不利 的地方,如频繁的插拔很容易损坏接头,也可能带来触电的危险等。因此,非接触式感应充电器在上个世纪末期诞生。凭借其携带方便、成本低、无需布线等优势迅速受到各界关注。实现无线充电,能量传输效率高,便于携带成为充电系统的研究方向之一 。本设计就是一个由能量发送单元和能量接收单元两大部分组成,利用电磁感应原理 实现电能无线传递的充电器。    1 硬件系统设计   1.1 器件选择   本无线充电系统的设计是用线圈耦合方式传递能量,使接收单元接收到足够的电能,以保证
[电源管理]
基于<font color='red'>MSP430</font>单片机的无线充电器设计
MSP430寄存器中文注释----串口寄存器
/************************************************************ * USART 串口寄存器 UCTL , UTCTL , URCTL 定义的各个位 可串口1 串口2公用 ************************************************************/ /* UCTL 串口控制寄存器*/ #define PENA 0x80 /*校验允许位*/ #define PEV 0x40 /*偶校验 为0时为奇校验*/ #define SPB 0x20
[单片机]
MSP430常见问题之开发工具类
Q1:我自己做了一块MSP430F149的试验板,以前用下载线进行调试没有出现过问题,但是,最近我每次make后用下载线调试时,总是弹出一个窗口,给我提示:Could not find target status. 然后就死到那儿了,请问这是什么问题呢? A1:检查Jtag口线是否连接正常,如果JTAG口线连接正常,可能是供电不足,目标板加电再测试。 Q2:我用的430f22x学习套件,请问在IAR Embedded Workbench 中仿真时如何看程序运行时间. A2:只有软件模拟下可以看, VIEW-REGISTER-CYCLECOUNT Q3:请问各位msp430 仿真器和编程器有什么区别啊?是不是我开发的时候这两个
[单片机]
MSP430流水灯Ⅱ
//流水灯三种流动方式和四种流动速度 #include msp430f149.h typedef unsigned int uint; uint i = 0,j = 0,dir = 0; uint flag = 0,speed = 0; void main( void ) { P1DIR = 0XFF;P1OUT = 0XFF; P2DIR = 0XFF;P2OUT = 0XFF; P3DIR = 0XFF;P3OUT = 0XFF; P4DIR = 0XFF;P4OUT = 0XFF; P5DIR = 0XFF;P5OUT = 0XFF; P6DIR = 0XFF;P
[单片机]
基于MSP430F149的室外移动机器人高精度组合导航系统
对于在室外环境工作的移动机器人通常使用惯导/卫星组合导航方式。惯性导航系统具有完全自主、抗干扰强、隐蔽能力好和输出参数全面等优点,但它的鲁棒性极低,误差会不断随时间累积发散。卫星导航系统具有精度高、定位范围广和误差不随时间累积等优点,但其自主性差、易受外界遮挡和干扰、接收机数据更新频率低等缺点。因此工程上常常将两者互补结合使用,组成卫星/惯性组合导航系统。 本文以低功耗MSP430F149为核心,设计了能够同时实现卫星导航(GNSS)接收机、惯性测量单元(IMU)、气压高度等导航信息的高速采集与高速合路传输,并进行初步导航定位信息融合的导航系统,即可为室外移动机器人提供直接的导航服务,也可作为高精度组合导航系统的原始测量信息高
[单片机]
基于<font color='red'>MSP430</font>F149的室外移动机器人高精度组合导航系统
MSP4305529驱动HX711
//3.3V供电 3.2接DT 3.7接SCK #include MSP430.h unsigned long data; unsigned long ReadCount(void) { unsigned long Count; unsigned char i; P3OUT &=~BIT7; //SCL=0;使能AD(PD_SCL 置低) Count=0; while(P3IN&BIT2); //AD转换未结束则等待,否则开始读取 for (i = 0; i 24; i++) { P3OUT|=BIT7;//SCL = 1; PD_SCL 置高(发送脉冲)
[单片机]
实时记录MSP430编程问题
编程中遇到了一个及其诡异的问题,发送缓存与接收缓存的LISTEN控制字为零同时两端未用线路连接的情况下,对发送缓存设置值时接收缓存也同时改变了,正在各种检查中,如果解决了会贴出解决方法。 问题解决了:单片机坏了!!!内部的LISTEN估计被连上了,这块单片机只能用来做为发送端了。 另外,今日还遇到了中断子程序不作用的情况,网上各种寻找后发现程序中缺少 _EINT();导致无法运行中断程序,奇怪的是TI给的示范程序里面都没有_EINT(),我猜想是因为IAR版本或者所用调试程序不同的原因吧。 现在两块单片机已经能够进行简单的单工通信了,明天再来完善程序。 即:UCA1RXBUF = UCA1TXBUF 附上问题程序:
[单片机]
TI推出MSP430 LaunchPad开发套件,快速实现原型设计
 日前,德州仪器 (TI) 宣布推出最新MSP430TM MCU Value Line LaunchPad 开发套件 ,进一步兑现了其结合 16位MCU高性能、超低功耗以及超低成本来解决8位MCU不足之处的一贯承诺。该开源套件包含通过TI MSP430 Value Line MCU便捷启动各种设计方案所需的所有软硬件。上述MCU起价仅25美分,可实现比8位MCU锐升10倍的性能以及延长10倍的电池使用寿命。 LaunchPad使开发人员能够快速利用MSP430 Value Line MCU进行器件评估、编程或调试,从而支持快速原型设计与开发。该高灵活性有助于开发人员卸下安放在定制电路板上的编程器件,或将其插入 Laun
[工业控制]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved