STM8的IAP升级谁搞过,用的什么接口呢?

[复制链接]
1755|14
 楼主| dongbaohui 发表于 2017-2-25 20:13 | 显示全部楼层 |阅读模式
STM8的IAP升级谁搞过,用的什么接口呢?支持无线吗?
原味_郭 发表于 2017-2-26 22:15 | 显示全部楼层
无线是支持的,但需要自己写boot
ahhsyf 发表于 2017-2-26 22:18 | 显示全部楼层
一般出厂的时候刷两个程序段一个bootloader,一个用户程序APP1,开机时从bootloader开始运行,检测是否要升级固件,没有就一直运行APP1;如果升级了,APP2可以暂存到一段FLASH内,升级完成后,重新上电,还是先运行bootloader,这时会检测到程序升级了,这时是判断跳转到APP2来运行,还是进行FLASH拷贝,看程序编写的情况了
enginezhong 发表于 2017-2-27 09:45 | 显示全部楼层

我记得stm8本身就可以用串口来升级的。不用搞那么复杂的
myidear 发表于 2017-2-27 22:24 | 显示全部楼层
官方有个资料,做升级的,例程AN2659,在这里看看介绍和例程
gaoxiansheng 发表于 2017-2-27 22:29 | 显示全部楼层
要实现在线升级,MCU代码须分为 : bootloader和 用户代码App 两个部分。
新人求带 发表于 2017-2-28 18:35 | 显示全部楼层

对于stm8的块编程,代码必须在Ram中运行,因为在块编程时Flash程序将会停止运行。因此,存储在Flash中的代码(与Flash编程相关的代码)必须拷贝至Ram中进行编译、链接、运行。这样,程序将在Ram中执行块编程,块编程时Flash的状态也不会影响到Ram中的程序继续运行。
lt1231 发表于 2017-2-28 18:41 | 显示全部楼层
因为之前写个stm32的IAP升级程序,所以我总结了做IAP升级的三个主要的难点:

1、如何设置中断向量,也就是说中断向量的重定向

2、如何配置程序的起始地址

3、如何从IAP跳转到APP程序

4、使用库函数要注意的地方(防止被坑)
在路上的程序猿 发表于 2017-2-28 19:30 | 显示全部楼层
如果要自己做bootloader,你必须懂汇编,PC的APP也需要化很多时间去弄。当然,网上也有教材很容易搜得到。
merry_zsp 发表于 2017-2-28 19:37 | 显示全部楼层
MCU上电后,从0x8000地址执行,也就是bootloader的起始代码,当收到同步码时,进入升级状态
大白农 发表于 2017-2-28 22:16 | 显示全部楼层
等待命令,升级软件通过协议进行flash烧写。完成后,跳转到代码APP的起始地址,MCU开始执行APP程序。
hello牟 发表于 2017-2-28 22:20 | 显示全部楼层

STM8内部固化了一个bootloader,可以通过配置字OPTBL打开。该bootloader支持iap uart下载程序。
16号哨兵 发表于 2017-3-7 19:39 | 显示全部楼层
如果是通过串口、SPI或I2C升级的话,STM8L出厂时已经有简单的bootloader能解决,之需要设定option byte(选项字节),STM8S我不确定,详细你可以看看ST的文档。APP的话,用ST的工具,在官网可以下载。
yyj8902 发表于 2017-3-7 19:41 | 显示全部楼层
在APP状态下,如果收到升级固件命令,跳转到IAP所在起始地址0x8000,进入升级状态。
麦克塔维什 发表于 2017-3-12 21:44 | 显示全部楼层
如果没什么特别要求,只是想脱离Swim升级的话,用原本的bootloader最方便。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

172

帖子

0

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