5596|5

7228

帖子

195

TA的资源

五彩晶圆(高级)

楼主
 

STM32远程升级 [复制链接]



今天看了STM32远程升级方案  要用GPRS远程升级

现在用网上的历程搞了串口IAP
先在开发板上烧写bootloader固件
然后通过串口烧写应用固件
首次没问题
但是如果在下载就不可以了

除非按复位键

两个问题请教下
(1)我直接调用库函数复位可不可以
nvic_setfaultmask();
nvic_generatesystemreset();
这两个库函数以前在NVIC里面,新库还没找到他们的影子

这也就意味着我接收到升级指令后,要软件复位

(2)如果不用软件复位,有没有办法跳到BOOT去 升级应用固件呢?


此帖出自stm32/stm8论坛

最新回复

专门学习升级的开发板,可以看看https://item.taobao.com/item.htm ... .0.0.3b5d645eWKB4bR  详情 回复 发表于 2025-1-5 15:34
点赞 关注
 

回复
举报

407

帖子

3

TA的资源

纯净的硅(初级)

沙发
 
那说一下,最近玩了一下远程升级,不过没用过库,不太清楚库是如何做的。简单说一下自己的想法。
1. 如果是在APP里,那么需要复位到boot内,如果在boot内,直接升级。
2.升级后判断APP是否正常,正常的跳转到APP运行,不正常的需要发出告警。
3.boot和APP程序注意地址映射。

你也可以不用软复位,直接通过地址跳转。就向boot跳转到APP一样。不过不建议。
此帖出自stm32/stm8论坛
 
个人签名我在想
我知道什么
 

回复

3416

帖子

0

TA的资源

纯净的硅(高级)

板凳
 
1.λapi3.5nvicResetλbootУ

2.bootappжλ
此帖出自stm32/stm8论坛
 
个人签名

So TM what......?

 


回复

3416

帖子

0

TA的资源

纯净的硅(高级)

4
 
1.旧版函数库nvic类的reset函数(叫啥忘记了)可以起到复位的作用,复位后可以进入boot程序。
2.安排好中断向量,应该是可以实现的,不过最好能用复位撒。
此帖出自stm32/stm8论坛
 
 
 

回复

62

帖子

1

TA的资源

一粒金砂(中级)

5
 
(1)库里的这两个函数我没用过也不知道能不能达到软件复位的效果,但其实直接看STM32的参考手册就可以知道如何设置寄存器达到软件复位的效果,当然,你也可以去看库手册。
(2)不通过在RST引脚上产生低电平来达到从App跳转到Bootloader方法有两种,
1、通过函数调用,直接将Bootloader开始处的地址强制转化成函数指针来调用(此方法需要重新设置堆栈指针,其实不设问题也不大);
2、通过内联汇编,使用C内联汇编代码直接设置PC指针的内容为Bootloader的起始地址。
其实上面的两种方法本质上来说是一种,都是通过改变PC指针的内容来达到目的,只不过一个会涉及到栈指针的变化一个不会。

此帖出自stm32/stm8论坛
 
 
 

回复

6

帖子

3

TA的资源

一粒金砂(中级)

6
 
专门学习升级的开发板,可以看看https://item.taobao.com/item.htm ... .0.0.3b5d645eWKB4bR
此帖出自stm32/stm8论坛
 
 
 

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

查找数据手册?

EEWorld Datasheet 技术支持

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

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

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