MSP430升级程序

发布者:CrystalDawn最新更新时间:2020-01-20 来源: eefocus关键字:MSP430  升级程序 手机看文章 扫描二维码
随时随地手机看文章

  MSP430升级程序的几点注意事项


  1、这几天测试写好的IAP升级程序,真是一个糟,能将程序下载进去,但无法运行。

  经过各种测试,修改终于找到了问题的原因,现在大致总结下我在写IAP程序的时候

遇到的问题和解决方案。首先要实现单片机的IAP升级程序,我们要知道自己的IDE如何能

将程序的函数或者变量的编译地址固定,因为对于bootload程序,我们要固定它的地址,

还有从bootload跳转到的程序运行的地址。


  对于MSP430,在测试中我程序复位时跳转到rts430x.lib:boot.obj (.text:_isr:

_c_int00_noexit)这样一个启动函数,之后执行_syatem_pre_int->_auto_init->main,

在_auto_init过程中,程序会执行memcpy函数(将.cinit段赋值到RAM里),就是初始化RAM中的全局变量了。我的程序主要错在这个过程里,导致更新后问题不断,还有对于.cinit段和.const段,我们也要固定地址,因为memcpy函数初始化ram的地址被固定了,且bootload是不能更新的,所以固定.cinit段后,我们memcopy操作地址就固定,不然当程序变化重新编译后可能就会事.cinit段的地址发生变化,导致ram初始化错误。


  这样修改后,程序大致就能自升级了,程序只升级运行部分的程序,对bootload程序不升级。


  2、_c_int00 是c语言程序的入口.首先上电后,系统执行reset矢量代码,该代码是我们写的话,我们就令cpu转到c_int00,这段程序为c语言运行作准备,准备工作做好后,就转到c语言的main()。


  如果reset矢量代码不是我们写的,是ti写的,那么就执行bootloader程序,该程序先将从某个外部得到的真正程序放在规定的地方,然后转过去执行该代码。


  那么如何决定reset矢量代码是ti写的还是我们写的,那就看复位后mp/mc脚的电平

要是调试的时候我们的mp/mc脚选择了我们不希望的方式,怎么办?(在调试的时候一般不管bootloader的,只有项目最后成功了才管),用jtag来控制。


  C程序开始运行时,必须首先初始化C运行环境,这是通过c_int0函数完成的,这个函数在运行支持库(rts,runtime-support library)中。连接器会将这个函数的入口地址放置在复位中断向量处,使其可以在初始化时被调用。c_int0函数进行以下工作以建立C运行环境:为系统堆栈产生.stack块,并初始化堆栈指针。从.cinit块将初始化数据拷贝到.bss块中相应的变量。调用main函数,开始运行C程序。用户可以对c_int0函数进行修改,但修改后的函数必须完成以上任务。

关键字:MSP430  升级程序 引用地址:MSP430升级程序

上一篇:MSP430中断原理分析
下一篇:MSP430程序升级

推荐阅读最新更新时间:2024-11-13 06:46

msp430 程序升级
第一篇 在项目开发中,至关重要的是保证产品运行的可靠,如果遇到异常,能否恢复很重要,而不是像砖头一样,程序死在某个地方。固件升级的原理就是重写向量表,在引导区更新app区的flash,然后跳转app区。实际开发中就会有以下问题: 1.如果MCU复位,比如POR,PDR,WDT等复位,都会使sp指针指向复位地址。那么MCU从引导区执行,如果APP区程序有效,应该如何控制程序跳转到APP区。 2.如果APP区或者引导区接受新固件,在更新APP区flash时,如果此时MCU发生掉电,当再次上电后,MCU该如何执行。或许有人说,我们有外部的EEP或者外部的FLASH,会使用状态和标志去记录当时MCU操作flash的状态,当然这些
[单片机]
MSP430的手持式仪器核心模块设计
引 言 手持式仪器是嵌入式系统应用开发的重要领域,手持式仪器具有便于携带、操作方便、LCD显示清晰等优点。本文结合手持式电量测量仪开发项目,设计了以MSP430F449为核心的手持式仪器。系统采用16位A/D转换器AD7705和128×64像素LCD图形显示器设计互动式图形用户界面,用于显示测量结果数字和图形。符合人体工程学的按键和易于操作的菜单,实现了仪器的4按键图形菜单操作。设计了对测量数据进行分析处理并实时存储的应用软件。仪器具有测量精度高、数据处理能力强、信息容量大、智能化、体积小、功耗低等特点,适合于电池供电的工作环境。 1 核心模块硬件设计 1.1 16位嵌入式处理器MSP430F449单片机 德州仪器
[单片机]
<font color='red'>MSP430</font>的手持式仪器核心模块设计
MSP430单片机低功耗结构原理
当系统时钟发生器基本功能建立之后,CPU内状态寄存器SR的SCG1,SCG0,CPUOFF,OSCOFF位是重要的低功耗控制位。只要任意中断被响应,上述控制位就被压入堆栈保存,中断处理之后,又可恢复先前的工作方式。在中断处理子程序执行期间,通过间接访问堆栈数据,可以操作这些控制位;这样允许程序在中断返回(RETI) 后,以另一种功耗方式继续运行。 各控制位的作用如下: SCG1: 复位,使能SMCLK;置位,禁止SMCLK。 SCG0: 复位,激活直流发生器,只有SCG0置位,并且DCOCLK没有被用作MCLK或SMCLK时,直流发生器才能被禁止。 OSCOFF:复位,激活LFXT1,只有当OSCOFF被置位并且L
[单片机]
MSP430F5529 DriverLib 库函数学习笔记(十四)看门狗定时器 (WDT)
平台:Code Composer Studio 10.3.1 MSP430F5529 LaunchPad™ Development Kit (MSP‑EXP430F5529LP) 硬知识 在工业控制现场,往往会由于供电电源、空间电磁干扰或其他的原因引起强烈的干扰噪声。这些干扰作用于数字器件,极易使其产生误动作,引起单片机程序跑飞,若不进行有效的处理,程序就不能回到正常的运行状态。为了保证系统的正常工作,一方面要尽量减少干扰源对系统的影响;另一方面,在系统受到影响之后要能尽快地恢复,看门狗就起到了这个作用。看门狗的用法:在正常工作期间,一次看门狗定时时间将产生一次系统复位。如果通过编程使看门狗定时时间稍大于程序中主循环执
[单片机]
<font color='red'>MSP430</font>F5529 DriverLib 库函数学习笔记(十四)看门狗定时器 (WDT)
Msp430Flash型单片机内部Flash存储器介绍
MSP430的Flash存储器是可位、字节、字寻址和编程的存储器。该模块由一个集成控制器来控制编程和擦除的操作。控制器包括三个寄存器,一个时序发生器及一个提供编程、擦除电压的电压发生器。 Msp430的Flash存储器的特点有: 1) 产生内部编程电压 2) 可位、字节、字编程,可以单个操作,也可以连续多个操作 3) 超低功耗操作 4) 支持段擦除和多段模块擦除 2 Flash存储器的分割 Msp430 Flash存储器分成多个段。可对其进行单个字节、字的写入,也可以进行连续多个字、字节的写入操作,但是最小的擦除单位是段。 Flash 存储器被分割成两部分:主存储器和信息存储器,
[单片机]
MSP430F5529-编码器电机控制小车的进退
这里的小车由于电机安装时是对称的,所以可以看得出来在代码上两个电机的方向是相反的。 上代码之前先介绍一下用到的配件及端口。 电机: 我采用的是JBGB37-520电机(当然别的也可以),用的编码器是霍尔编码器,有6条线,电机Vcc,Gnd,编码器Vcc,Gnd,还有编码器A,B相(这次没用到,但后面写PID算法就需要)。排列顺序不固定。 芯片: 控制芯片采用的是TA6586.使用它的原因是因为从单片机串口输出的PWM波最多就3V多一些,这样的一个电压是不足以驱动带有编码器的直流减速电机的。所以芯片的作用有点类似于光耦,低压信号转化为其他电压的信号。 这是它的引脚图以及对应的输出关系。 2022.3.20 更新:T
[单片机]
<font color='red'>MSP430</font>F5529-编码器电机控制小车的进退
msp430用ADC10来测片内温度两极管的电压
MSP430用ADC10来测片内温度两极管的电压 #include msp430x22x4.h //此程序是用ADC10来测片内温度两极管的电压 //执行程序来查看ADC10MEM寄存器的值, //并用V(temp)=0.00355*TempC+0.986公式来计算片子温度 //最后ad采样值存在ad_value,温度值存在value中,设置断点查看各个计数值 // MSP430F2274 // ----------------- // /|\| XIN|- // | | | // --|RST XOUT|- // |
[单片机]
MSP430数字滤波器设计分享
大家一直有在讨论使用TI内部的数字滤波器,但是由于其调用的麻烦,以及汇编代码看的累,所以经常会碰到各式各样的问题,我以前也有帮工程师解惑,现在做个分享帖给大家,希望大家多多支持,让MSP430的作用更为广泛。 1.软件介绍:Filter solution 2.软件界面介绍: 该软件不仅能设计数字滤波器,模拟滤波器一样可以搞定。 3.开始设计数字滤波器: 4.频响测试: 5.代码生成:
[单片机]
<font color='red'>MSP430</font>数字滤波器设计分享
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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