4500|9

82

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

【求助】430用c编译器程序固定程序位置的问题! [复制链接]

各位DX:小弟在用430f149做用户终端,要实现远程升级的功能。这势必要固定某些程序的位置,试问430的IAR c编译器有没有这个功能。怎么去实现,请DX赐教!

最新回复

oldgoat:可不可以给一个demo程序呀,我想做一个rs232的远程升级  详情 回复 发表于 2005-6-6 10:06
 
点赞 关注

回复
举报

77

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
我还没有做到远程升级。但我实现了上下位机升级。我没有用到固定程序位置啊!因为要做升级功能,430里要自己先固化一个程序,用这个程序确定升级程序的位置就可以了啊
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
我做过远程升级步骤如下:
1,编写用于升级的程序
2,修改用于升级的那个项目的XCL文件!-Z(CODE)CSTART,-Z(CODE)CODE,-Z(CONST)DATA16_C,DATA16_ID,DIFUNCT,CHECKSUM。这样就可以将程序固定在某个区域,建议放在FLASH的最高的几个段里面
3,将编译生成的TXT文件,取出程序部分,做成数组,取出中断向量部分做成数组
4,将数组用#pragma location固定在你主项目的程序的升级的区域里,这样你的一个FLASH就有两 个项目了,一个主项目,一个用于升级的项目
5,将取出的中断向量数组,也放在主项目的程序的里
6,正常情况下跑的是主项目,要升级时,先将中断向量数组写入FLASH的中断向量区域
7,软复位
9,复位后程序就开始执行用于升级的项目了

上面写的只是个思路,不过我已经由于产品上了,非常好用!
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

4
 
引用:

我做过远程升级步骤如下:
1,编写用于升级的程序
2,修改用于升级的那个项目的XCL文件!-Z(CODE)CSTART,-Z(CODE)CODE,-Z(CONST)DATA16_C,DATA16_ID,DIFUNCT,CHECKSUM。这样就可以将程序固定在某个区域,建议放在FLASH的最高的几个段里面
3,将编译生成的TXT文件,取出程序部分,做成数组,取出中断向量部分做成数组
4,将数组用#pragma location固定在你主项目的程序的升级的区域里,这样你的一个FLASH就有两 个项目了,一个主项目,一个用于升级的项目
5,将取出的中断向量数组,也放在主项目的程序的里
6,正常情况下跑的是主项目,要升级时,先将中断向量数组写入FLASH的中断向量区域
7,软复位
9,复位后程序就开始执行用于升级的项目了

上面写的只是个思路,不过我已经由于产品上了,非常好用!
大侠你好,你的思路我没有完全理解,您的意思是在430的程序中本来就有2套程序么?升级时只是给一个命令,然后把中断向量改一下,就实现升级了么?那我升级完后想再升级那?
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

5
 
是的,我在MIAN FLASH区域里放了两个项目,一个是你的主项目,另一个是用于升级的项目。
改中断向量的目的是软复位后开始执行用于升级的程序,在这个用于升级的程序里实现:1,擦除,2程序文件的下载3,程序的写入,全部写入完成后,再将新程序的中断向量写到中断向量区域
,然后在软复位,这样程序更新就完成了!

这种方法有个很好的地方就是,由于两个项目的独立的,因此RAM的占用也是独立的。用于升级的项目只实现升级可以占有所有的RAM资源!
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

6
 
引用:

是的,我在MIAN FLASH区域里放了两个项目,一个是你的主项目,另一个是用于升级的项目。
改中断向量的目的是软复位后开始执行用于升级的程序,在这个用于升级的程序里实现:1,擦除,2程序文件的下载3,程序的写入,全部写入完成后,再将新程序的中断向量写到中断向量区域
,然后在软复位,这样程序更新就完成了!

这种方法有个很好的地方就是,由于两个项目的独立的,因此RAM的占用也是独立的。用于升级的项目只实现升级可以占有所有的RAM资源!
谢谢大侠的指点,我基本上明白了,还想问您一下,就是远程升级是怎么实现的?是利用网络把服务器上的程序下载到客户机上,再从客户机到430上,还是直接在单片机的产品上加上无线通讯设备接收数据,然后升级的啊?
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

7
 
其实用什么方式下载不重要,我那个项目刚好是用RS485通讯,所以就顺便做了用RS485升级,上位机从网络获取升级文件,不过要自己写程序把MSP430的TXT文件转成BIN文件!
这个升级方法有如下优点:
1,由于两个项目的独立的,因此RAM的占用也是独立的。用于升级的项目只实现升级可以占有所有的RAM资源
2,可以自己定义灵活数据通讯协议,而不是象BSL是固定的协议
3,无须象BSL那样考虑复位时序,真正做到无人的远程升级
4,程序在FLASH中运行,因此所有的中断源都可以用,方便的编程
5,中途升级意外失败,可以恢复,重新升级
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

8
 
引用:

其实用什么方式下载不重要,我那个项目刚好是用RS485通讯,所以就顺便做了用RS485升级,上位机从网络获取升级文件,不过要自己写程序把MSP430的TXT文件转成BIN文件!
这个升级方法有如下优点:
1,由于两个项目的独立的,因此RAM的占用也是独立的。用于升级的项目只实现升级可以占有所有的RAM资源
2,可以自己定义灵活数据通讯协议,而不是象BSL是固定的协议
3,无须象BSL那样考虑复位时序,真正做到无人的远程升级
4,程序在FLASH中运行,因此所有的中断源都可以用,方便的编程
5,中途升级意外失败,可以恢复,重新升级
比我做的那个好多了!呵呵
 
 
 

回复

83

帖子

0

TA的资源

一粒金砂(初级)

9
 
好象有点类似固化在FLASH里面的在应用编程.
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

10
 
oldgoat:可不可以给一个demo程序呀,我想做一个rs232的远程升级
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

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