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-05 22:06

MSP430】ADC12_init
/*****************************TI提供的代码*****************************/ void TIADC12Init_1( void ) { ADC12CTL0 = ADC12ON+MSC+SHT0_8; // Turn on ADC12, extend sampling time // to avoid overflow of results ADC12CTL1 = SHP+CONSEQ_3; // Use sampling timer, repeated sequence ADC12MCTL0
[单片机]
msp430时钟/定时器收集的例程汇总
MSP430的时钟模块由DCOCTL, BCSCTL1, BCSCTL2, IE1, IFG1这五个寄存器来确定,具体的功能如下所示: (1)DCOCTL: DCO控制寄存器,地址为56H,初始值为60H // 7 6 5 4 3 2 1 0 // DCO2 DCO1 DCO0 MOD4 MOD3 MOD2 MOD1 MOD0 // // DCO0~DCO2: DCO Select Bit,定义了8种频率之一,而频率由注入直流发生器的电流定义 // MOD0~MOD4: Modulation Bit,频
[单片机]
msp430红外解码成功
#include msp430x22x4.h #define CPU_F ((double)1000000) #define delay_us(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0)) #define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0)) #define IR_DIR_IN P2DIR&=~BIT0 //红外接收头P2.0设置为输入, #define IRIN (P2IN&BIT0) //红外接收头输入值 char data ; //保存地址码,地址反码
[单片机]
MSP430单片机上使用RTOS对系统的意义解析方案
引 言 1 在MSP430上使用RTOS的意义 一般的观点认为,MSP430上使用RTOS是没有意义的这是可以理解的。因为MSP430的硬件资源有限(以MSP430F149为例,只有2KB RAM),任何商业操作系统都不可能移植到MSP430上。目前在MSP430上得到应用的RTOS,只有μC/OS-II,但使用μC/OS-II 必须有昂贵的C编译器,这严重地限制了其在MSP430上的使用。 正是基于以上情况,笔者在应用MSP430过程中,编写了一个基于MSP430F149的RTOS,暂定名为M430/OS。它占用RAM量少、代码短小,稍加改动就可适用于大多数其它MSP430单片机。 在MSP430单片机系统上使用M430
[单片机]
课程作业记录6:MSP430G2553+LCD1602字符滚动
首先,这次实验设计中我们实现的是在LCD1602上进行的字符滚动,用的单片机是MSP430G2553,跑的软件是CCS。是一个非常简单的程序设计,但是我C语言和单片机这部分都学得很差哈哈,放上来给大家参考参考,同时鼓舞一下大家的信心。 软件程序部分 该程序主要由主程序源程序main.c、子程序源程序LCD.c和子程序头文件LCD.h构成。采用这种程序结构,使程序更加清晰,一目了然,减少程序错误的机会,增强了程序的可移植性。在程序设计中MSP430G2553中P1口作为并行数据输出端,P2.0、P2.1、P2.2分别作为LCD1602液晶的RS、RW、E端。 1)主函数main.c #include msp430g2
[单片机]
课程作业记录6:<font color='red'>MSP430</font>G2553+LCD1602字符滚动
MSP430】UART库函数
#include msp430x14x.h /********************************************************************* * 文件功能描述: * MSP430F16x,MSP430F14X系列单片机串口通讯函数库(简化版) * 说明: 这个程序库完成串口的初始化、发送字符和字符串、接收 * 使字符功能用方法:把Uart.c加入到项目,同时在要调用 * 此程序库的程序文件中加入包含Uart.h的语句;这样即可 * 正常使用头文件中声明的程序了;详细可参考 本工程 和 * main.c
[单片机]
采用MSP430F2274和TDC-GP2实现油田测量系统的设计
1 、引言 随着我国经济的快速发展,对石油的需求量越来越大,因此我国许多油田纷纷采用多种办法来提高油气产量。例如:各大油田都成立了自己的研究机构,充分利用油田自身的人才和资金的优势,研制油田钻井、测井所急需的仪器。许多油田特别是东部和东北地区的开采时间较长的油田,对油井进行二次开采,以提高油气产量等等。而对于油井的二次开采,往井下注水是现在应用广泛,且效率较高的一种方法。现在油田对注水技术的要求越来越高,近几年又提出井下分层注水。对井下分层注水参数的监测,越来越引起油田相关部门的重视。因此现在急需井下分层注水参数监测的仪器,基于这种现状,本文设计了一套检测流量、温度的电路。 2 、设计思想的提出 目前油田上使用的流量计都是存储
[单片机]
采用<font color='red'>MSP430</font>F2274和TDC-GP2实现油田测量系统的设计
低成本模拟前端的可编程计量器件【德州仪器】
2011 年 4 月 8 日,北京讯 日前,德州仪器 (TI) 宣布针对计量与智能电网应用推出 MSP430AFE2xx 系列计量模拟前端 (AFE) 超低功耗 16 位微控制器。低成本 MSP430AFE 系列是 TI 领先的嵌入式处理产品系列的一部分,可提供业界首批多种通信接口支持的可编程单相位计量器件。该系列微控制器支持电表、家庭自动化、辅助计量以及节能系统等计量应用的系统分区,可实现高度灵活的独立高质量测量。MSP430AFE 系列建立在 16 位 RISC 架构基础之上,支持 12MHz 系统频率,系统速度是同类竞争器件的 3 倍,从而可提高功能性。3 个支持防篡改功能的独立 24 位Σ-Δ 转换器可帮助该系列
[单片机]
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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