专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
TI
430远程更新实验失败
2019-07-15 15:08
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
TI MCU
5749
19
1408
最近在做这个远程更新的实验,资料也从网上找了一大堆,下面上传文档,文档里面还有程序的下载地址,但是这个没实验成功,不知道哪位大神做过这块,给指导下.
还有就是我感觉这个文档里面有好多地方说的有些模糊
MSP430单片机实现远程升级.pdf
(277.47 KB )
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
19条回答
cz0519博睿康
2019-07-15 17:50
这个用到代码的绝对定位,B程序写成一个.C文件,这个文件里每个函数定义的后面都加上@"UPDATECODE",这个UPDATECODE是自己定义的,在149的xcl文件里改,xcl文件在IAR的安装目录里找,在里面找到这一段
// Code
-Z(CONST)UPDATECODE=1100-1FFF
-Z(CODE)CSTART=2000-FFDF
-Z(CODE)CODE=2000-FFDF
// Constant data
-Z(CONST)DATA16_C,DATA16_ID,DIFUNCT,CHECKSUM=2000-FFDF
你找到你的xcl文件对比一下不同就知道了。
这样A和B编译完之后,B就在UPDATECODE里了,关于代码的绝对定位网上能找到资料,我的IAR是3.4版本的,可以这样做。5以上的版本好像还需要改设置什么的,具体的记不清了,查查资料吧。
然后就是C怎么写到程序区,其实吧TXT文件打开,里面的数据都是和flash地址从前往后对应的,比如里面有@2000开头,那么下面的代码数据就是从flash的2000地址开始写直到写完。最后的是中断向量表,比如@ffd0,那么就把下面的数据从ffd0开始写。中断向量表是flash的最后32个字还是字节来着忘了。
你需要把这个txt文件进行整理,去掉B的代码,总之就是要保证程序区一个地址对应txt里一个字节数据就行了。我的这个工作是用自己写的软件处理的(公司的东西就不方便发了)至于串口怎么接受,进了更新,主程序和中断向量被擦了,串口中断肯定是不能用了,就用查询方式。我是开了个515字节的缓存,一次串口发送512个字节+3个校验和(因为430flash一段是512字节,只能按段擦除),加上校验,校验正确了就把512字节写进flash里,然后通知软件发送下一个512字节。依次类推直到写完。当然这个用什么方法写无所谓,只要能保证写进去而且写对了就可以了。
可能我也表述不清楚,你也别想太复杂,简单点就是想办法把txt文件里的数据写到对应的地址里就行了,写对了就更新完成了
加载中...
查看其它19个回答
一周热门
更多
>
相关问题
CPLD的方波输出
4 个回答
11个版本Quartus II 软件下载,安装包网盘合集,附教程,47G!
20 个回答
请大家帮忙到21IC发展大家谈支持我申请新版面
20 个回答
【通知】21ic中国电子网服务条款 (所有人员必读)
1 个回答
满载而归乙亥年,大展鸿途庚子年---集签赢好礼
20 个回答
相关文章
×
关闭
采纳回答
向帮助了您的知道网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
TI
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
×
付费偷看金额在0.1-10元之间
确定
×
关闭
您已邀请
0
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
// Code
-Z(CONST)UPDATECODE=1100-1FFF
-Z(CODE)CSTART=2000-FFDF
-Z(CODE)CODE=2000-FFDF
// Constant data
-Z(CONST)DATA16_C,DATA16_ID,DIFUNCT,CHECKSUM=2000-FFDF
你找到你的xcl文件对比一下不同就知道了。
这样A和B编译完之后,B就在UPDATECODE里了,关于代码的绝对定位网上能找到资料,我的IAR是3.4版本的,可以这样做。5以上的版本好像还需要改设置什么的,具体的记不清了,查查资料吧。
然后就是C怎么写到程序区,其实吧TXT文件打开,里面的数据都是和flash地址从前往后对应的,比如里面有@2000开头,那么下面的代码数据就是从flash的2000地址开始写直到写完。最后的是中断向量表,比如@ffd0,那么就把下面的数据从ffd0开始写。中断向量表是flash的最后32个字还是字节来着忘了。
你需要把这个txt文件进行整理,去掉B的代码,总之就是要保证程序区一个地址对应txt里一个字节数据就行了。我的这个工作是用自己写的软件处理的(公司的东西就不方便发了)至于串口怎么接受,进了更新,主程序和中断向量被擦了,串口中断肯定是不能用了,就用查询方式。我是开了个515字节的缓存,一次串口发送512个字节+3个校验和(因为430flash一段是512字节,只能按段擦除),加上校验,校验正确了就把512字节写进flash里,然后通知软件发送下一个512字节。依次类推直到写完。当然这个用什么方法写无所谓,只要能保证写进去而且写对了就可以了。
可能我也表述不清楚,你也别想太复杂,简单点就是想办法把txt文件里的数据写到对应的地址里就行了,写对了就更新完成了
一周热门 更多>