×
嵌入式 > 技术百科 > 详情

通过SWIM实现类似ST-LINK功能,给STM8下载

发布时间:2024-05-20 发布时间:
|

技术依赖:SWIM通信、FLASH操作、串口、DMA。


主要变成思路,通过串口实现命令行工具,再通过主机的swim进行slave烧录。其中串口数据的发送通过DMA接收。


SWIM通信之前有介绍,有需要可以查看,本文章主要介绍SWIM对STM8烧写时的思路。


一、直接通过WOTF进行烧写。

此方法确实可行,但是实际试验后发现,在烧写过程中由于WOTF的失败率导致烧写速度极慢。不建议采用。


二、让从机自己烧写flash

我们知道,在烧写flash时有块烧写。而且块烧写的程序时运行在RAM中的。我们可以利用这一特点,将编写好的flash 块烧写的程序(指定需要烧录数据的地址和需要烧录地址的地址)通过SWIM下载到从机RAM的指定地址。然后通过主机控制从机使其完成自烧写。

在这个过程中我们需要的是将串口传过来的数据传到从机的RAM中的指定地址,将烧写的地址传到从机的RAM中的指定地址。我们通过控制从机的CPU,使其运行提前烧进RAM中的代码完成“自烧写”。


注:

我们需要烧写的代码不可能通过一个块写完,所以我们在烧录完一块之后,需要暂停从机(通过控制从机CPU),在下一次烧录时复位从机然后再执行烧写FLASH的代码。


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
FPGA及CPLD应用领域不断拓展