开源SWD脱机烧录器-第一章 软硬件配置及其初始化

/********************2020.03.02更新********************/

感谢博友的提醒我忘记上传Qt源码了,这就补上

https://gitee.com/airtech/offline_Qt

/**********************************************2020.01.20*****************************************/

开源地址:https://gitee.com/airtech/offline_burner

前段时间被各种工作上的事情给耽误了都没时间来整理更新。今天终于有一些时间了。整理下开始更新吧。

/***********************************************分割线**********************************************/

2019.12.31更新

授人以渔,授人以小鱼

1. 断断续续用了一个月时间把GPIO模拟SWD改成了SPI+GPIO模拟SWD。速度更快,波形也更漂亮。

2. 还重写了上位机。之前的上位机因为C++还是为入门都是各种百度来的,所以性能很差。我居然用一个大大大数组去存读取到文件内容导致加载几十K的文件后整个上位机就卡死了。现在重写了上位机摒弃了之前的LOW方式。

3. 硬件也改了一些,之前是SWC/SWD都上拉,现在改成SWC下拉,SWD上拉,更适合SPI方式。

4. 烧录速度:完整烧录128K文件(单片机型号STM32F103RBT6)用时6.35S。整个过程包括“全片擦除+FLash读取解密烧录+校验”速度和市面上脱机烧录器的速度差不多。

 

Flash、FatFs部分代码移植 “硬石电子” 和“正点原子”

http://www.ing10bbs.com/forum.php      

http://www.ing10.cn/

SWD烧写部分代码来源与ARM开源项目CMSIS DAP LINK 

https://github.com/ARMmbed/DAPLink

https://os.mbed.com/handbook/CMSIS-DAP

部分代码来源于“正点原子”

http://www.openedv.com/

SWD的协议介绍不就不说,CSDN上一大堆。大家自己搜索就行了(别问为什么,问就是我懒,我也是搜的)

 

下面进入正文

一、 硬件模块:

我直接贴我在用的硬件吧,自己画的PCB,自己打样的,自己焊。下面是原理图:

开源SWD脱机烧录器-第一章 软硬件配置及其初始化_第1张图片

 

二、软件初始化

对于新入手的来说可以直接用STM32CUBEMX来配置,我的软件里面也有配置好的,直接打开就行了。

对于大神来说使用移植过程中遇到什么bug请记得告诉我OTZ,毕竟我也是菜鸟

接下来就开始移植代码:

此处省略10000字。HAL库串行FLASH FatFs大家可以去参考“硬石电子”的文章,46-49例

http://www.ing10bbs.com/forum.php?mod=viewthread&tid=291&extra=

然后移植本次的主角SWD烧录协议:

1.从Git上下载CMSIS DAP的源码https://github.com/ARMmbed/DAPLink

解压后:

开源SWD脱机烧录器-第一章 软硬件配置及其初始化_第2张图片

最主要的几个文件:

 

DPA.c/error.c/SW_DP.c/target_flash.c/swd_host.c/flash_blob.c

DPA.h/error.h/SW_DP.h/target_flash.h/swd_host.h

DAP_config.h
DAP.h

下面就开始移植了

你可能感兴趣的:(开源SWD脱机烧录器-第一章 软硬件配置及其初始化)