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

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

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

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

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

二、让从机自己烧写flash
我们知道,在烧写flash时有块烧写。而且块烧写的程序时运行在RAM中的。我们可以利用这一特点,将编写好的flash 块烧写的程序(指定需要烧录数据的地址和需要烧录地址的地址)通过SWIM下载到从机RAM的指定地址。然后通过主机控制从机使其完成自烧写。
在这个过程中我们需要的是将串口传过来的数据传到从机的RAM中的指定地址,将烧写的地址传到从机的RAM中的指定地址。我们通过控制从机的CPU,使其运行提前烧进RAM中的代码完成“自烧写”。

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值