完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
如题,如果芯片已经烧写程序,此时想用stlink重刷程序,stlink连接芯片时程序是否会停止?
假如停止时电路正开启大电压或者大电流,那么在烧写的过程会有十几秒的时间,势必会造成电路器件的损伤。 假如上面猜测正确,那么用串口重刷程序是否会避免上述问题? 请大神指教!!! |
|
相关推荐
12个回答
|
|
不管什么方式刷新程序,都不要在系统中接入有危险的执行器件。任何形式的固件更新都会在一定时间内失去对外设的控制,对于可能造成危险的外设,物理隔离后在更新程序,保证程序在更新过程中不会造成危险。
|
|
|
|
vyewrewr 发表于 2018-12-29 10:23 感谢回复,那有没有一种方式在升级的时候对外设可控呢? |
|
|
|
如果想可控的话,那就自己写bootloader吧,自己来控制 用stlink肯定是有一段时间没法控制的 |
|
|
|
可以把外围控制断电,单独主板供电
|
|
|
|
stlink 在烧写的时候,原本正在运行的是程序A,现在要烧写程序B,那么,在烧写过程中,程序A还在继续 执行吗?
|
|
|
|
这种情况,应该不会有问题。
STlink给MCU烧写程序的时候,首先MCU的内核是工作的,仿真烧写器连接后,一般会自动复位MCU。 而一旦复位后,所有IO状态都会是浮空输入或模拟输入状态。 因此,只要保证复位状态下,外部逻辑不产生矛盾,是不会烧东西的。 |
|
|
|
那如果复位失败呢?这个问题困惑我好久了。 现在的ST-link 和开发板大多都是没有连接RST引脚的,在只连接SWD的情况下,如何完成复位? 我尝试过,在WINDOWS下面,可以完成自动MCU复位,但是,在MAC 环境下,使用openocd的时候,这个复位是无法完成的。这就造成有些板子在MAC下是OK的,有些是不OK。这个问题如何解决? |
|
|
|
感谢回复,我实验发现调用NVIC_SystemReset()函数,执行前IO处在高电平,执行软复位后IO口还是处在高电平,只有在复位后重新对IO口执行初始化代码时,IO口才从高电平降到低电平。 |
|
|
|
|
|
|
|
感谢回复,确实有必要自己写boot,在代码中做一些初始化。 |
|
|
|
|
|
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1950 浏览 1 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
1809 浏览 3 评论
4389 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
1960 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
2463 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-18 09:58 , Processed in 0.917500 second(s), Total 94, Slave 77 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号