miraclexue 发表于 2018-7-16 00:10:25

STLink工具烧写芯片,连接芯片时程序停止造成电路受损

如题,如果芯片已经烧写程序,此时想用stlink重刷程序,stlink连接芯片时程序是否会停止?
假如停止时电路正开启大电压或者大电流,那么在烧写的过程会有十几秒的时间,势必会造成电路器件的损伤。
假如上面猜测正确,那么用串口重刷程序是否会避免上述问题?
请大神指教!!!

Angel_YY 发表于 2018-7-16 08:22:10

不管什么方式刷新程序,都不要在系统中接入有危险的执行器件。任何形式的固件更新都会在一定时间内失去对外设的控制,对于可能造成危险的外设,物理隔离后在更新程序,保证程序在更新过程中不会造成危险。

miraclexue 发表于 2018-7-16 09:58:14

Angel_YY 发表于 2018-7-16 08:22
不管什么方式刷新程序,都不要在系统中接入有危险的执行器件。任何形式的固件更新都会在一定时间内失去对外 ...

感谢回复,那有没有一种方式在升级的时候对外设可控呢?

我是熊猫大仙 发表于 2018-7-16 10:53:54

miraclexue 发表于 2018-7-16 09:58
感谢回复,那有没有一种方式在升级的时候对外设可控呢?

如果想可控的话,那就自己写bootloader吧,自己来控制
用stlink肯定是有一段时间没法控制的

wudianjun2001 发表于 2018-7-16 13:43:56

可以把外围控制断电,单独主板供电

select326 发表于 2018-7-16 14:33:56

stlink 在烧写的时候,原本正在运行的是程序A,现在要烧写程序B,那么,在烧写过程中,程序A还在继续 执行吗?

toofree 发表于 2018-7-16 16:38:43

这种情况,应该不会有问题。
STlink给MCU烧写程序的时候,首先MCU的内核是工作的,仿真烧写器连接后,一般会自动复位MCU。
而一旦复位后,所有IO状态都会是浮空输入或模拟输入状态。
因此,只要保证复位状态下,外部逻辑不产生矛盾,是不会烧东西的。

select326 发表于 2018-7-17 23:24:06

toofree 发表于 2018-7-16 16:38
这种情况,应该不会有问题。
STlink给MCU烧写程序的时候,首先MCU的内核是工作的,仿真烧写器连接后,一般 ...

那如果复位失败呢?这个问题困惑我好久了。
现在的ST-link 和开发板大多都是没有连接RST引脚的,在只连接SWD的情况下,如何完成复位?
我尝试过,在WINDOWS下面,可以完成自动MCU复位,但是,在MAC 环境下,使用openocd的时候,这个复位是无法完成的。这就造成有些板子在MAC下是OK的,有些是不OK。这个问题如何解决?

miraclexue 发表于 2018-8-1 14:26:54

toofree 发表于 2018-7-16 16:38
这种情况,应该不会有问题。
STlink给MCU烧写程序的时候,首先MCU的内核是工作的,仿真烧写器连接后,一般 ...

感谢回复,我实验发现调用NVIC_SystemReset()函数,执行前IO处在高电平,执行软复位后IO口还是处在高电平,只有在复位后重新对IO口执行初始化代码时,IO口才从高电平降到低电平。

miraclexue 发表于 2018-8-1 14:28:34

wudianjun2001 发表于 2018-7-16 13:43
可以把外围控制断电,单独主板供电

感谢回复,手机上的主板升级是不是就是采用这个方式?
页: [1] 2
查看完整版本: STLink工具烧写芯片,连接芯片时程序停止造成电路受损