c编译器有没有这个功能

2019-07-24 13:43发布

在用430f149做用户终端,要实现远程升级的功能。这势必要固定某些程序的位置,试问430的IAR c编译器有没有这个功能。怎么去实现
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
午夜粪车
1楼-- · 2019-07-24 16:27

有这个功能,改烧写地址
huangchui
2楼-- · 2019-07-24 20:29

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,将取出的中断向量数组,也放在主项目的程序的里
huangchui
3楼-- · 2019-07-25 00:29

6,正常情况下跑的是主项目,要升级时,先将中断向量数组写入FLASH的中断向量区域

7,软复位

9,复位后程序就开始执行用于升级的项目了
wyjie
4楼-- · 2019-07-25 02:21
 精彩回答 2  元偷偷看……
dirtwillfly
5楼-- · 2019-07-25 04:12
huangchui 发表于 2016-1-14 22:37
1,编写用于升级的程序

2,修改用于升级的那个项目的XCL文件!-Z(CODE)CSTART,-Z(CODE)CODE,-Z(CONST)D ...

赞一个
vivilzb1985
6楼-- · 2019-07-25 09:40
要实现远程升级的,这个貌似不可以的。

一周热门 更多>