[MCU] c编译器有没有这个功能

[复制链接]
1745|29
 楼主| wyjie 发表于 2020-7-24 18:34 | 显示全部楼层 |阅读模式
在用430f149做用户终端,要实现远程升级的功能。这势必要固定某些程序的位置,试问430的IAR c编译器有没有这个功能。怎么去实现
午夜粪车 发表于 2020-7-24 18:37 | 显示全部楼层
有这个功能,改烧写地址
huangchui 发表于 2020-7-24 18:41 | 显示全部楼层

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 发表于 2020-7-24 18:47 | 显示全部楼层

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

7,软复位

9,复位后程序就开始执行用于升级的项目了
lizye 发表于 2020-7-24 18:50 | 显示全部楼层
要实现远程升级的,这个貌似不可以的。
yszong 发表于 2020-7-24 18:53 | 显示全部楼层
要实现远程升级的,这个要么特定设计要么就选择带有可以远程升级的MCU的。
dengdc 发表于 2020-7-24 18:56 | 显示全部楼层
淡然这个是建立在无线数据传输基础上的,这个是很关键的。
 楼主| wyjie 发表于 2020-7-24 19:01 | 显示全部楼层
哦,知道了
huwr 发表于 2020-7-24 19:17 | 显示全部楼层
c编译器没有这个功能
tian111 发表于 2020-7-24 19:21 | 显示全部楼层
是无线的升级吗?
chenho 发表于 2020-7-24 19:24 | 显示全部楼层
需要修改BootLoader呢
stly 发表于 2020-7-24 19:27 | 显示全部楼层
能够实现的,这个有实现的方案了。
supernan 发表于 2020-7-24 19:33 | 显示全部楼层
需要修改BootLoader的
yinxiangh 发表于 2020-7-24 19:35 | 显示全部楼层
主要是单片机和上位机之间的信息交互
guoyt 发表于 2020-7-24 19:38 | 显示全部楼层
级程序,简称boot代码,也叫作bootloader,启动引导程序
zhanglli 发表于 2020-7-24 19:41 | 显示全部楼层
通过UART串口升级
songqian17 发表于 2020-7-24 19:43 | 显示全部楼层
固件升级的三种方法,1,JTAG, 2BSL,3,自定义固件升级
juventus9554 发表于 2020-7-24 19:47 | 显示全部楼层
其实现原理是在目标芯片中放置两段代码:一段为应用程序;另一段为升级程序。
supernan 发表于 2020-7-24 19:53 | 显示全部楼层
TI的无线升级方案。
pangb 发表于 2020-7-24 19:56 | 显示全部楼层
IAR c编译器解决不了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

927

主题

12706

帖子

5

粉丝
快速回复 在线客服 返回列表 返回顶部