MSP430程序能下载进去却无法运行

发布者:电子创意达人最新更新时间:2021-05-06 来源: eefocus关键字:MSP430  程序  下载  运行 手机看文章 扫描二维码
随时随地手机看文章

现象: 在程序中定义了较大的全局数组,导致程序能下载进去却无法正常运行。将数组减小又可以恢复正常。


原因是: 在main函数(关闭看门狗)之前,含有编译器添加的启动程序,程序启动后先初始化数组,结果超过了看门狗默认的间隔时间32ms,导致每次程序都无法正常运行。


解决办法:

方法一 将一些变量(主要是大全局数组)定义成 no init类型

方法二 修改IAR的cstartup.s43程序,具体方法如下:(iar310a为例)

1 将cstartup.s43程序加载到用户自己的项目中,cstartup.s43在iar310a的路径如下$TOOLKIT_DIR$srcLIB

2 修改cstartup.s43中的__program_start子程序,加入关闭看门狗的命令 MOV #0x5A80,&0x0120

3 在Project->Options->Linker->Config页中选择Override default programe ,并将Entry lib 设置成 __program_start


关键字:MSP430  程序  下载  运行 引用地址:MSP430程序能下载进去却无法运行

上一篇:利用MSP430在SD卡上实现FAT32文件系统
下一篇:MSP430 定时器A

推荐阅读最新更新时间:2024-11-08 13:52

单片机的程序计数器及存储系统
  为了保证程序能够连续地执行下去,CPU必须具有某些手段来确定一条指令的地址。程序计数器PC正是起到了这种作用,所以通常又称其为指令地址计数器。在程序开始执行前,必须将其起始地址。即程序的第一条指令所在的内存单元地址送入PC。当执行指令时,CPU将自动修改PC的内容,使之总是保存将要执行的下一个条指令的地址。由于大多数都是按顺序执行的,所以修改的过程只是简单的加1操作。   下面我们看看8051的存储器系统:(此章非常重要,请仔细理解)8051序列单片机与一般微机的存储器配置方式不相同。一般微机通常只有一个地址空间,ROM和RAM可以随意安排在这一地址范围内不同的空间,即ROM和RAM的地址同在一个队列里分配不同的地址空间。
[单片机]
MSP430几乎占TI DSP业务半壁江山
MSP430是TI持续发展的16位超低功耗MCU技术平台,集成了高精度、高性能模拟信号和数字信号处理电路的MSP430,自1999年进入中国市场以来,以其超低功耗、高性能深得设计工程师的青睐。TI MSP430全球业务经理Mark Witt称,随着业界最小的开发工具eZ430的推出,专用芯片FG461X与F2XX的快速投放市场,MSP430今年再度成为MCU市场中的热点。据悉,MSP430的销售额目前已接近TI DSP收入的50%。 Mark Witt表示,8位/16位RISC MSP430系列MCU具有极低的功耗,并集成了多种外围器件,主要是满足要求超低功耗的消费电子产品应用(如水表/电表/气表、运动鞋、自动调温器、各种检测器
[焦点新闻]
基于MSP430F169的AD、DA控制程序
/*----------------程序说明------ //功能: 1、通过串口RS232发送数据到上位机,同时接收上位机的指令 2、发送AD转换的值到上位机, 3、上位机发送DA转换的数字量 ---------------------------------*/ #include msp430x16x.h //变量定义 反馈字符串 //Br009300380037001200000011ED //unsigned char TX ={0x42,0x72,0x34,0x30,0x39,0x33,0x32,0x30,0x33,0x38,0x32,0x34,0x33,0x37,0x31,0x32,0x30,0x30,0x30,0
[单片机]
ARM汇编语言程序结构示例
详细介绍ARM汇编语言之前,先给出一个汇编源程序示例,使读者对ARM汇编语言程序的结构有一个大概的了解。 CODE32 ;32位的ARM指令段 AREA codesec, CODE, READONLY ;代码段,名称为codesec,属性为只读 main PROC ;函数main STMFD sp!,{lr} ;保存必要的寄存器和返回地址到数据栈 ADR r0,strhello ;取标签strhello代表的地址值 BL _ printf ;调用C运行时库的_printf函数打印 ;“Hello world!”字符串 BL welcomefun ;调用子函数welcomfun LDMFD sp!,{pc} ;恢复寄存器值 st
[单片机]
STC单片机AD和EEPROM的驱动C程序设计与编写
stc单片机具有在应用编程,调试起来比较方便;带有10位AD;内部eeprom;可在1T/机器周期下工作,速度是传统51单片机的12倍;下面是我写的AD和EEPROM的驱动C代码: /*---------------------------------------------------------------- *File Name: stc_AD.c - *Description: A/D 转换程序 *Project: - *MCU type: STC12C5410AD -
[单片机]
构建一个完整的life结构程序框架
#include stdio.h //程序目的: 构建一个完整的life结构框架; typedef unsigned char uint8 ; typedef unsigned int uint16; uint16 unknown = ? ; Members1() // 成员1; { uint8 i =0, sj=0; for(i=0;i unknown;i++) //一个未知的年月; { for(sj++;sj 365;sj++); //每过一年; } } Members2() //
[单片机]
基于单片机设计的便携式超声波水声声压计设计
  随着水下超声波技术的发展,在很多应用场所提出了测试其声强的需要。我们采用CS-3型水听器设计便携式超声波声压计。   系统设计   设计目标要求:实现15-45kHz超声波声压、声强的测量。测量的范围是0-10个大气压(或声压级范围:30-120dB)。测量的误差为在总体的频率范围内大小3dB,对单一频率小于1dB。   CS-3型水听器的特性是在10-100kHz,其M参数的不一致性小于3dB。M参数是指水听器受单位声压的作用而产生的输出电压,单位是V/Pa。用分贝表示的M参数是:   M(dB )=20log(M/Mo),其中Mo为参考声压Mo=1V/礟a。   声强I=P2 /(r*C),其中P为声压,C为声速
[单片机]
开发可统计单词个数的Android驱动程序(1)
Android本质上是基于Linux内核的系统,也就是说Android就是一种Linux操作系统。只不过大多数时候都会运行在ARM架构的设备上,例如,Android手机、平板等。Android驱动实际上就是Linux驱动,只是这里使用 Android深度探索(卷1):安装C/C++交叉编译环境 介 绍的交叉编译器将Linux驱动编译成了ARM架构的,所以驱动可以安装在Android模拟器、Android手机(需要root)或平板上(这些设备 都要使用给予ARM架构的CPU),当然,使用传统的GCC也可以编译成X86架构的驱动(并不需要修改代码),这样也可以在Ubuntu Linux上安装Linux驱动。 本文及后面几篇文
[单片机]
开发可统计单词个数的Android驱动<font color='red'>程序</font>(1)
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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