完成MSP430的IAP升级程序(总结)
这几天测试写好的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升级程序(总结)相关推荐
- 基于STM32的IAP升级程序
基于STM32的IAP升级程序 IAP介绍 功能设计 硬件设计 软件设计 软件设计流程如下 完整程序 具体实现 设计功能程序 IAP实现程序 主程序 后续 IAP介绍 IAP(In Applicati ...
- STM32F105实现U盘IAP升级程序
1.理论分析 理论依据很重要,这里稍微介绍一下原理和数据的操作过程.实际实现U盘的IAP升级一共分为两个部分,一部分是bootloader程序,这部分需要使用烧录器或者串口烧写进芯片.另一部分是用户的 ...
- STM32F103 通过SD卡IAP升级程序,带MD5校验,(带源码)可在实际项目中使用
一.将APP程序从SD卡搬运到MCU中 首先从sd卡通过FAFTS文件操作系统打开程序文件,然后记录下复制开始地址和程序文件大小 fileOperionResult = f_open(&upd ...
- 电子产品如何使用IAP方式升级程序
目录 1.ICP.ISP和IAP的概念 2.IAP升级程序的原理 3.IAP升级程序的流程 4.IAR环境下IAP的实现 4.1.BootLoader程序设计 4.2.User Application ...
- 关于STM32单片机IAP升级中if(((*(__IO uint32_t*)ulAddr_App) 0x2FFE0000) == 0x20000000)语句的理解
没有标题 初见if(((*(__IO uint32_t*)ulAddr_App) & 0x2FFE0000) == 0x20000000) 语句理解 语句功能 为什么ulAddr_App里存的 ...
- 现场升级方案:LPC1788采用U盘方式进行程序IAP升级功能的实现
现场升级方案:LPC1788采用U盘方式进行程序IAP升级功能的实现 闲来无事,总结一下前段时间做过的U盘升级项目.一个新手的成长之路在于善于总结,生活也是一样扯远了,我准备了两个软件环境,一个带操作 ...
- 国民技术N32L40X之IAP升级IAP程序
1.芯片:N32L406CB 2.开发环境:keil5 Flash为128k,64页每页2k.那么我们就将Flash进行从低地址到高地址进行划分,6kBootLoader,2k为判断升级标志位.50k ...
- stm32-IAP(在线升级程序)
第一章 背景知识 什么是IAP? IAP的知识网上的各种资料也说的比较明白,在此简单介绍一下.IAP( In Application Programming)即在线应用编程,也就是用户可以使用自己的程 ...
- stm32f103c8t6芯片IAP升级填坑记
由于产品设计到远程升级,于是就准备花点时间研究一下. 先熟悉了一下stm32f1系列芯片的IAP原理,然后从网上下载了多种版本的IAP bootloader程序,运行后发现下载程序功能都正常,但上传功 ...
最新文章
- 基于深度学习的NLP 32页最新进展综述,190篇参考文献
- [一维粒子模拟 version3.6]成功实现初次诊断函数
- CMU 11642 Search Engines - 大纲梳理
- 分类素材(part3)--python机器学习基础教程(下)
- Unreal Engine 4 编码规范
- 百度地图删除地图上所有的标注和所有的覆盖物
- Java中常用的正则表达式判断,如IP地址、电话号码、邮箱等
- 【信号与系统】三大变换公式表 | 傅里叶变换 | 拉普拉斯变换 | Z变换
- linux系统装psp,psp上装Linux
- head first JavaScript pdf 下载
- 基于机智云物联网平台的智能花盆2.0,实现了智能灌溉与自动补光
- 商务个人邮箱,vip邮箱哪个最好用?外贸邮箱哪个是安全邮箱?
- 怎么测试视频是哪个软件拍的,李子柒的视频是用什么设备拍摄的,又是用什么软件处理的?...
- MySQL中的通用查询日志(General Query Log)
- 市面上有哪几种门_目前市面上的成品木门有哪几种
- Qt 之模型/视图(自定义按钮)
- Xcode7 普通icloud账号调试配置
- sql sever安装完成但失败后的正确姿势
- 有关用STM32芯片自带的ADC测量电池电压,然后根据放电曲线得到电池容量的问题
- python爬虫豆瓣电影到csv_爬虫豆瓣电影存入csv文件
热门文章
- 验证Ross《随机过程》(第二版)1.9C
- flask_mail用法实例
- No module named sipconfig
- 腾讯实习笔试:关于几个有序数组求交集的问题
- Pearson相关系数
- 深度学习(三十五)——Style Transfer(2), YOLOv3, Tiny-YOLO, One-stage vs. Two-stage
- python输出举例_python字符串格式化输出及相关操作代码举例
- 优酷html5视频没有弹幕,优酷弹幕怎么设置 优酷PC端怎么屏蔽底下弹幕?
- Edge on Linux?微软:会有的,但不是现在
- js面向对象-组合使用构造函数模式和原型模式(使用最广泛、认同度最高)