stm32的iap升级一定要用ymodem协议吗

stm32的iap升级一定要用ymodem协议吗,第1张

因为STM32的ISP协议不支持Ymodem协议,它只支持裂羡它自已的ISP通信协议,该协议在坛子上有,你可以找到,如肆蔽拍果你要实现使用Ymodem协议来下载程序这个功并世能,可以自行写个支持Ymodem协议的IAP应用即可。

你说的这种方式风险很大。原本IAP就是个高风险的过程,代码从漏李SRAM刷入歼橡Flash的过程要谨防断电、动作越快完成越好;你可倒好,一边低速接收一边慢慢改写Flash的内容,将这个高风险的刷机时间人为延长了N倍。

更可怕的是你对Flash完全没有认知,还想不缓冲直接写Flash?连扇区缓冲都不用?整个扇区氏搜旁你不问青红皂白先一股脑擦掉、再慢悠悠地一个字节一个字节接收写入?

这个思路,做做论文、搞搞研究还行,真用到产品里面会坑死一家厂的。

不了解所说的代码跳转方式具体是如何实凯悉轮现的,但可以肯定的是你的切换程序的相应处理。一般来说比较可靠的切换,是在被切换的函数中,通过修改SP寄存器的,然后在盯信返回跳转至指定函数的入口地址,从而切换的。 另外需要注意的是升级过程是在中断调用,函数的返回指令也是不一样的 。

裸奔的话给你一个自简单的参考结构,只要任何位置 switchapp(xxx); 都可以相对可靠的切换。

void *(陆者 CurrentApp )(void) =

void main( )

{

...

while(1)

{

CurrentApp ()

}

}

void switchapp( void *( NextApp ))

{

CurrentApp = NextApp

}

bool KeepRunning =true

void App1( )

{

while(KeepRunning)

{

.......

}

}

void App2( )

{

while(KeepRunning)

{

.......

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12373034.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存