这几天测试写好的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程序不升级。

转载于:https://www.cnblogs.com/nixianmin/archive/2012/08/17/2643743.html

完成MSP430的IAP升级程序(总结)相关推荐

  1. 基于STM32的IAP升级程序

    基于STM32的IAP升级程序 IAP介绍 功能设计 硬件设计 软件设计 软件设计流程如下 完整程序 具体实现 设计功能程序 IAP实现程序 主程序 后续 IAP介绍 IAP(In Applicati ...

  2. STM32F105实现U盘IAP升级程序

    1.理论分析 理论依据很重要,这里稍微介绍一下原理和数据的操作过程.实际实现U盘的IAP升级一共分为两个部分,一部分是bootloader程序,这部分需要使用烧录器或者串口烧写进芯片.另一部分是用户的 ...

  3. STM32F103 通过SD卡IAP升级程序,带MD5校验,(带源码)可在实际项目中使用

    一.将APP程序从SD卡搬运到MCU中 首先从sd卡通过FAFTS文件操作系统打开程序文件,然后记录下复制开始地址和程序文件大小 fileOperionResult = f_open(&upd ...

  4. 电子产品如何使用IAP方式升级程序

    目录 1.ICP.ISP和IAP的概念 2.IAP升级程序的原理 3.IAP升级程序的流程 4.IAR环境下IAP的实现 4.1.BootLoader程序设计 4.2.User Application ...

  5. 关于STM32单片机IAP升级中if(((*(__IO uint32_t*)ulAddr_App) 0x2FFE0000) == 0x20000000)语句的理解

    没有标题 初见if(((*(__IO uint32_t*)ulAddr_App) & 0x2FFE0000) == 0x20000000) 语句理解 语句功能 为什么ulAddr_App里存的 ...

  6. 现场升级方案:LPC1788采用U盘方式进行程序IAP升级功能的实现

    现场升级方案:LPC1788采用U盘方式进行程序IAP升级功能的实现 闲来无事,总结一下前段时间做过的U盘升级项目.一个新手的成长之路在于善于总结,生活也是一样扯远了,我准备了两个软件环境,一个带操作 ...

  7. 国民技术N32L40X之IAP升级IAP程序

    1.芯片:N32L406CB 2.开发环境:keil5 Flash为128k,64页每页2k.那么我们就将Flash进行从低地址到高地址进行划分,6kBootLoader,2k为判断升级标志位.50k ...

  8. stm32-IAP(在线升级程序)

    第一章 背景知识 什么是IAP? IAP的知识网上的各种资料也说的比较明白,在此简单介绍一下.IAP( In Application Programming)即在线应用编程,也就是用户可以使用自己的程 ...

  9. stm32f103c8t6芯片IAP升级填坑记

    由于产品设计到远程升级,于是就准备花点时间研究一下. 先熟悉了一下stm32f1系列芯片的IAP原理,然后从网上下载了多种版本的IAP bootloader程序,运行后发现下载程序功能都正常,但上传功 ...

最新文章

  1. 基于深度学习的NLP 32页最新进展综述,190篇参考文献
  2. [一维粒子模拟 version3.6]成功实现初次诊断函数
  3. CMU 11642 Search Engines - 大纲梳理
  4. 分类素材(part3)--python机器学习基础教程(下)
  5. Unreal Engine 4 编码规范
  6. 百度地图删除地图上所有的标注和所有的覆盖物
  7. Java中常用的正则表达式判断,如IP地址、电话号码、邮箱等
  8. 【信号与系统】三大变换公式表 | 傅里叶变换 | 拉普拉斯变换 | Z变换
  9. linux系统装psp,psp上装Linux
  10. head first JavaScript pdf 下载
  11. 基于机智云物联网平台的智能花盆2.0,实现了智能灌溉与自动补光
  12. 商务个人邮箱,vip邮箱哪个最好用?外贸邮箱哪个是安全邮箱?
  13. 怎么测试视频是哪个软件拍的,李子柒的视频是用什么设备拍摄的,又是用什么软件处理的?...
  14. MySQL中的通用查询日志(General Query Log)
  15. 市面上有哪几种门_目前市面上的成品木门有哪几种
  16. Qt 之模型/视图(自定义按钮)
  17. Xcode7 普通icloud账号调试配置
  18. sql sever安装完成但失败后的正确姿势
  19. 有关用STM32芯片自带的ADC测量电池电压,然后根据放电曲线得到电池容量的问题
  20. python爬虫豆瓣电影到csv_爬虫豆瓣电影存入csv文件

热门文章

  1. 验证Ross《随机过程》(第二版)1.9C
  2. flask_mail用法实例
  3. No module named sipconfig
  4. 腾讯实习笔试:关于几个有序数组求交集的问题
  5. Pearson相关系数
  6. 深度学习(三十五)——Style Transfer(2), YOLOv3, Tiny-YOLO, One-stage vs. Two-stage
  7. python输出举例_python字符串格式化输出及相关操作代码举例
  8. 优酷html5视频没有弹幕,优酷弹幕怎么设置 优酷PC端怎么屏蔽底下弹幕?
  9. Edge on Linux?微软:会有的,但不是现在
  10. js面向对象-组合使用构造函数模式和原型模式(使用最广泛、认同度最高)