搜索
bottom↓
12
返回列表 发新帖
楼主: XIVN1987

分享离线SWD编程器代码

  [复制链接]

出0入0汤圆

发表于 2018-12-10 08:18:20 来自手机 | 显示全部楼层
感谢楼主分享

出0入0汤圆

发表于 2018-12-10 08:31:56 | 显示全部楼层
扭了隔壁楼主

出10入95汤圆

发表于 2018-12-10 08:35:22 来自手机 | 显示全部楼层
SWD离线下载器

出0入4汤圆

发表于 2018-12-12 04:04:42 | 显示全部楼层
大佬 脱机代码里面好像没有读保护设置 研究了好久没研究出来 怎么实现呢

出0入0汤圆

发表于 2018-12-12 06:31:18 | 显示全部楼层
楼主牛人,膜拜

出0入0汤圆

发表于 2018-12-14 00:01:06 | 显示全部楼层
可以的,很厉害,学习了。

出0入0汤圆

发表于 2018-12-14 16:54:19 | 显示全部楼层
谢谢分享!!

出0入0汤圆

发表于 2018-12-15 16:41:43 | 显示全部楼层
感谢分享
头像被屏蔽

出0入0汤圆

发表于 2018-12-19 07:57:58 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
头像被屏蔽

出0入0汤圆

发表于 2018-12-19 08:01:39 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

出0入25汤圆

 楼主| 发表于 2018-12-19 08:57:56 | 显示全部楼层
adee4210 发表于 2018-12-19 08:01
楼主,我试了您的程序,可以烧录STM32F103,但是无法烧录GD32F130或GD32F330,程序下载到目标芯片后,目标 ...


你看下我置顶的那三个帖子,,

GD32内部好像是SPI Flash,可能得根据置顶的66楼、72楼的帖子做相应修改
头像被屏蔽

出0入0汤圆

发表于 2018-12-19 16:10:09 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
头像被屏蔽

出0入0汤圆

发表于 2018-12-19 16:15:01 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

出0入0汤圆

发表于 2018-12-24 20:06:42 | 显示全部楼层
测试成功了 感谢楼主

出0入0汤圆

发表于 2019-2-24 09:14:56 | 显示全部楼层
XIVN1987 发表于 2018-9-17 09:06
光修改PIN_SWCLK、PIN_SWDIO的宏定义是不够的,,下面还有些代码需要修改,,

封装性不太好,, ...

大侠,哪些代码还需要修改?最近在捣鼓这玩意。。

出0入0汤圆

发表于 2019-2-24 13:17:39 | 显示全部楼层
swd资料猛

出0入0汤圆

发表于 2019-2-25 10:37:27 | 显示全部楼层
编程器狂人啊

出30入54汤圆

发表于 2019-2-28 08:59:26 | 显示全部楼层
把楼主的源码porting到了F4平台,整合到了一个工程下,测试给103下载可用,已经PR了

出0入0汤圆

发表于 2019-3-24 11:34:01 | 显示全部楼层
XIVN1987 发表于 2018-9-17 09:02
我把flash_algo.py给打包成.exe文件了,,把*.FLM文件放到flash_algo.exe文件目录下,,,然后双击执行f ...

您好,在吗?最近在用您FLash_Algo做个项目,遇到一个问题。我们的芯片是nRF51822,用FLashAlgo.exe转换不了,不知道什么原因,能帮忙看一下吗?谢谢!

出0入25汤圆

 楼主| 发表于 2019-3-24 11:36:25 | 显示全部楼层
君达 发表于 2019-3-24 11:34
您好,在吗?最近在用您FLash_Algo做个项目,遇到一个问题。我们的芯片是nRF51822,用FLashAlgo.exe转换不 ...


邮件已回复,,后缀名改大写

出0入0汤圆

发表于 2019-3-24 14:57:13 | 显示全部楼层
厉害了,学习学习

出10入12汤圆

发表于 2019-3-24 17:17:24 来自手机 | 显示全部楼层
嘎嘎嘎嘎嘎嘎

出250入8汤圆

发表于 2019-3-26 10:07:41 | 显示全部楼层
网友的,我给汇集到这个贴里:
STM32的乞丐版SWD脱机下载器开源,含下载软件
https://www.amobbs.com/thread-5709230-1-1.html
(出处: amoBBS 阿莫电子论坛)

出0入0汤圆

发表于 2019-3-26 10:29:50 | 显示全部楼层
感谢楼主分享  SWD KEIL 下载算法

出0入0汤圆

发表于 2019-3-26 11:43:55 | 显示全部楼层
虽然国外有, 但是贵在整理. 方便大家自己动手.

出0入0汤圆

发表于 2019-3-26 14:40:32 | 显示全部楼层
先留名,慢慢有机会好好看看!!谢谢

出0入0汤圆

发表于 2019-3-26 15:25:16 | 显示全部楼层
mark!!!! 感谢楼主分享

出0入4汤圆

发表于 2019-3-26 15:46:14 | 显示全部楼层
留着备用。

出0入20汤圆

发表于 2019-3-26 17:30:13 | 显示全部楼层
君达 发表于 2019-3-24 11:34
您好,在吗?最近在用您FLash_Algo做个项目,遇到一个问题。我们的芯片是nRF51822,用FLashAlgo.exe转换不 ...

你好,请问一下你的51822烧录成功了吗?我试了52832,始终无法擦除和烧录

出0入0汤圆

发表于 2019-3-26 21:19:31 | 显示全部楼层
仔细看了下楼主大神的帖子,厉害!

出0入0汤圆

发表于 2019-8-20 13:27:41 | 显示全部楼层
JIANGJIAYU 发表于 2018-12-9 16:51
感谢分享。已经试验ST的F1和F0芯片烧录成功,F4等其他品牌的Cortex M4 内核的烧录 失败,不知道为啥 ...

你好,请问你试验F0用的FLM生成的代码是什么,我从Keil5里提取的不行,
page大小是1K还是2K的
谢谢解惑~

出0入0汤圆

发表于 2019-8-29 15:12:20 | 显示全部楼层
本帖最后由 爱情转移 于 2019-8-29 15:37 编辑
XIVN1987 发表于 2018-9-23 17:21
继续填坑

下面两段内容分别来自flash_algo.py和c_blob.tmpl


大神,您好!请教一下flash_algo.py和c_blob.tmpl这两个文件怎么用?怎么样才能根据*.FLM文件生成对应的.C文件?

出0入25汤圆

 楼主| 发表于 2019-8-29 16:29:49 | 显示全部楼层
爱情转移 发表于 2019-8-29 15:12
大神,您好!请教一下flash_algo.py和c_blob.tmpl这两个文件怎么用?怎么样才能根据*.FLM文件生成对应的. ...


把 *.FLM文件放到flash_algo.py目录下,双击flash_algo.py文件执行就能生产对应的*.c文件了

如果你不懂python的话,,26楼有打包好的flash_algo.exe文件,

出0入0汤圆

发表于 2019-8-29 16:46:58 | 显示全部楼层
XIVN1987 发表于 2019-8-29 16:29
把 *.FLM文件放到flash_algo.py目录下,双击flash_algo.py文件执行就能生产对应的*.c文件了

如果你不懂 ...

多谢您的答复!我用flash_algo.exe生成的.C文件不能支持GD的单片机。我看到帖子里的提示如果想支持GD单片机可能需要修改flash_algo.py文件。所以我按照提示安装了python2.7,  把 *.FLM文件也放到flash_algo.py目录下了,双击flash_algo.py没有任何反应,这是怎么回事呢

出0入0汤圆

发表于 2019-8-29 17:07:02 | 显示全部楼层
adee4210 发表于 2018-12-19 08:01
楼主,我试了您的程序,可以烧录STM32F103,但是无法烧录GD32F130或GD32F330,程序下载到目标芯片后,目标 ...

可以烧写GD32单片机了吗

出0入25汤圆

 楼主| 发表于 2019-8-29 17:39:11 | 显示全部楼层
爱情转移 发表于 2019-8-29 16:46
多谢您的答复!我用flash_algo.exe生成的.C文件不能支持GD的单片机。我看到帖子里的提示如果想支持GD单片 ...


没反应那原因可多了,,可能是你脚本写的有问题(格式问题、逻辑问题),也可能是你没安装脚本执行依赖的外部package,,

这些问题需要你学会了python才能解决,,不过远水解不了近渴,,所以你还是先别折腾flash_algo.py了,,你就用flash_algo.exe提取出*.c文件,,文件的内容可能不完全对,,不过那个文件一共也没多少东西,,你只要搞懂那个文件里都是些什么东西,,你自己手动改下就好了

具体需要改什么,,它们什么含义你看下72楼的内容就明白了

出0入0汤圆

发表于 2019-8-29 18:14:36 | 显示全部楼层
XIVN1987 发表于 2019-8-29 17:39
没反应那原因可多了,,可能是你脚本写的有问题(格式问题、逻辑问题),也可能是你没安装脚本执行依赖 ...

多谢大侠指点!

出0入0汤圆

发表于 2019-9-6 21:05:59 | 显示全部楼层
多谢楼主开源,方便人民群众!

出0入104汤圆

发表于 2019-10-20 22:59:19 来自手机 | 显示全部楼层
收藏。。。swd

出0入0汤圆

发表于 2019-11-2 14:52:05 | 显示全部楼层
非常感谢大神分享的的资料,这里我有一个问题,就是当程序烧写进去以后如何设置芯片加密呢?

出0入0汤圆

发表于 2020-2-17 00:32:34 | 显示全部楼层

必须顶!!! 感谢楼主分享!+ 收藏了。

出0入0汤圆

发表于 2020-3-4 13:55:59 | 显示全部楼层
学习了,找了好久的关于离线烧写器的资料,网上买的离线烧写器好有次数限制,感觉还是可以自己开发一个的

出0入4汤圆

发表于 2020-3-19 16:26:00 | 显示全部楼层
早起的鸟儿 发表于 2019-11-2 14:52
非常感谢大神分享的的资料,这里我有一个问题,就是当程序烧写进去以后如何设置芯片加密呢? ...

这也是我想问的 选项字节怎么写进去呢 比如读保护啥的

出0入0汤圆

发表于 2020-3-19 18:32:51 | 显示全部楼层
谢谢分享!!!

出0入0汤圆

发表于 2020-3-19 18:47:26 来自手机 | 显示全部楼层
xiaotaodzgzs 发表于 2020-3-19 16:26
这也是我想问的 选项字节怎么写进去呢 比如读保护啥的

SWD通信连接到AP后可以直接操作寄存器,也就是说SWD可以直接控制AD,DA,GPIO等,那么控制写保护也不成问题了

出0入4汤圆

发表于 2020-3-21 10:38:00 | 显示全部楼层
sanjue 发表于 2020-3-19 18:47
SWD通信连接到AP后可以直接操作寄存器,也就是说SWD可以直接控制AD,DA,GPIO等,那么控制写保护也不成问 ...

明白原理了 谢谢大佬提醒

出0入0汤圆

发表于 2020-3-21 18:58:18 | 显示全部楼层
学习了!

出0入0汤圆

发表于 2020-4-13 13:56:04 | 显示全部楼层
谢谢分享厉害

出0入0汤圆

发表于 2020-5-8 22:30:13 | 显示全部楼层
谢谢,分享!

出0入0汤圆

发表于 2020-5-9 23:41:26 来自手机 | 显示全部楼层
Swd脱机编程

出0入4汤圆

发表于 2020-7-5 21:37:27 | 显示全部楼层
mark一下后面可能会用到,多谢楼主

出0入0汤圆

发表于 2020-7-7 14:59:31 | 显示全部楼层
厉害,刚好想做一个离线烧录器

出0入0汤圆

发表于 2020-8-19 17:52:25 | 显示全部楼层
厉害,学到了

出0入0汤圆

发表于 2020-8-21 14:05:10 | 显示全部楼层
现在的问题就是如何写选项字节以达到解除读保护的问题了

出0入0汤圆

发表于 2020-9-26 08:47:25 | 显示全部楼层
早起的鸟儿 发表于 2019-11-2 14:52
非常感谢大神分享的的资料,这里我有一个问题,就是当程序烧写进去以后如何设置芯片加密呢? ...

请问设置芯片加密这个问题解决了吗?

出0入0汤圆

发表于 2020-9-26 17:24:00 | 显示全部楼层
JIANGJIAYU 发表于 2018-12-9 16:51
感谢分享。已经试验ST的F1和F0芯片烧录成功,F4等其他品牌的Cortex M4 内核的烧录 失败,不知道为啥 ...

你好,我这边F1烧录成功了,但是烧录F0失败了,有没有哪些需要注意的地方吗?还有你的F4 烧录成功了没呢?感谢!(下载算法文件我都有替换过)

出0入0汤圆

发表于 2020-9-28 18:04:57 | 显示全部楼层
多谢分享!!!

出0入0汤圆

发表于 2020-10-13 08:08:12 | 显示全部楼层

感谢分享

出0入0汤圆

发表于 2020-11-4 21:52:16 | 显示全部楼层
收藏一下

出0入0汤圆

发表于 2020-11-6 10:26:25 | 显示全部楼层
有没有支持烧录STM32L071CZ啊?我换了STM32L071CZ的ramcode,但是擦除和写入都无效,只有读取数据正常,求大神帮帮忙!谢谢!

出0入0汤圆

发表于 2020-11-6 10:30:27 | 显示全部楼层
还有就是flash_algo.exe转ramcode的时候需要根据不同的芯片Flash大小去做相应修改吗?

出0入0汤圆

发表于 2020-11-23 13:43:25 | 显示全部楼层
这个怎么添加其他型号呢,需要修改的地方是除了flash code那还有哪

出0入0汤圆

发表于 2021-2-26 12:28:28 | 显示全部楼层
感谢楼主分享!

我也弄了一下,stm32f1没问题,然后我修改为烧录灵动MM32f0010的时候有一个问题:

         每烧录1024字节,最后的8个字节都变成了:FF FF FF FF 01 00 00 20 。

目标芯片:
16K flash, 2K ram,是小容量芯片

以下是我的修改:

c_blob.tmpl 修改:
// BKPT : start of blob + 1
// RSB  : address to access global/static data
// RSP  : stack pointer
    {
        {{'0x%08X' % (entry + 1)}},
        {{'0x%08X' % (entry + 1024 + 512)}},
        {{'0x%08X' % stack_pointer}}
    },

    {{'0x%08X' % (entry + 1024)}},  // mem buffer location
    {{'0x%08X' % entry}},  // location to write prog_blob in target RAM

flash_algo.py 修改:
    data_dict = {
        'prog_header': BLOB_HEADER,
        'header_size': HEADER_SIZE,
        'entry': 0x20000000,
        'stack_pointer': 0x20000000 + 2048,
    }

出0入10汤圆

发表于 2021-2-26 19:00:15 来自手机 | 显示全部楼层
感谢分享!

出0入0汤圆

发表于 2021-2-26 23:48:02 | 显示全部楼层
ljn008 发表于 2021-2-26 12:28
感谢楼主分享!

我也弄了一下,stm32f1没问题,然后我修改为烧录灵动MM32f0010的时候有一个问题:

哈哈,问题已经解决,再次感谢楼主!

出0入0汤圆

发表于 2021-3-9 21:46:07 | 显示全部楼层
那这样KEIL的每一个芯片的编程算法,都要导出为.c 和.h文件吗

出0入0汤圆

发表于 2021-3-14 17:20:21 | 显示全部楼层
特别好用,我已经调试完成了

出0入4汤圆

发表于 2021-6-8 19:22:39 | 显示全部楼层
Flash_Erase1K 加, 时间全部浪费在擦写flash上了。。。

出0入4汤圆

发表于 2021-6-8 21:57:43 | 显示全部楼层
多谢分享,有空研究一下。

出0入0汤圆

发表于 2021-6-10 16:06:50 | 显示全部楼层
Mark SWD 离线编程器

出0入0汤圆

发表于 2021-7-13 11:10:47 | 显示全部楼层
为什么我读的ID始终不对

出0入0汤圆

发表于 2021-9-22 09:31:17 | 显示全部楼层
怎么提高烧录速度

出0入0汤圆

发表于 2021-10-8 09:36:32 | 显示全部楼层
烧录算法里面有没有verify地址

出590入992汤圆

发表于 2021-10-16 20:54:18 | 显示全部楼层
acmilannast 发表于 2021-6-8 19:22
Flash_Erase1K 加, 时间全部浪费在擦写flash上了。。。

今天我移植了下,操作了F4,也发现了这个问题。
下次擦除改下。写倒是挺快的。

出0入8汤圆

发表于 2021-10-20 15:20:51 | 显示全部楼层
flash_algo好用,也做了个脱机烧录器。

出0入0汤圆

发表于 2022-2-9 14:58:16 | 显示全部楼层
cloudboy 发表于 2019-2-28 08:59
把楼主的源码porting到了F4平台,整合到了一个工程下,测试给103下载可用,已经PR了 ...

大哥,可以分享下移植到F4平台的工程源码吗,我整了半天,下载还是没成功

出30入54汤圆

发表于 2022-2-11 10:25:36 | 显示全部楼层
Jerry_xu 发表于 2022-2-9 14:58
大哥,可以分享下移植到F4平台的工程源码吗,我整了半天,下载还是没成功  ...

https://github.com/442534820/DAPProg
以前的代码,你试试

出0入0汤圆

发表于 2022-2-16 14:39:19 | 显示全部楼层
cloudboy 发表于 2022-2-11 10:25
https://github.com/442534820/DAPProg
以前的代码,你试试
(引用自177楼)

多谢大哥

出0入0汤圆

发表于 2022-2-22 16:11:23 | 显示全部楼层
sanjue 发表于 2018-9-18 19:54
我自己修改了你的代码,重新移植了IO驱动部分,方便定义IO,删除了JTAG部分的一些定义
将代码上传到github ...
(引用自57楼)

大哥,我用这个代码测试,调试读取DP的ACK值一直是5,这个一般是什么原因的?目标板的PA13 PA14脚的SWD功能需要禁止吗?

出0入0汤圆

发表于 2022-3-30 10:24:16 | 显示全部楼层
sanjue 发表于 2018-9-18 19:54
我自己修改了你的代码,重新移植了IO驱动部分,方便定义IO,删除了JTAG部分的一些定义
将代码上传到github ...
(引用自57楼)

大哥,我调这个代码,总是不成功呢,这个代码确定可以下载么

出0入8汤圆

发表于 2022-3-30 11:10:24 | 显示全部楼层
本帖最后由 skype 于 2022-3-30 11:16 编辑



GPIO 模拟 SWD,一直在用。


增加一点说明:
                                ++swd_try_cnt;
                                //可以自动识别SWD 的CLK SDA
                                if (0 == swd_try_cnt%2)
                                        swd_clk_dio_exchange = 0;
                                else
                                        swd_clk_dio_exchange = 1;

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2022-7-15 09:01:14 | 显示全部楼层
skype 发表于 2022-3-30 11:10
GPIO 模拟 SWD,一直在用。


(引用自181楼)

请问这个代码段加在哪

出0入8汤圆

发表于 2022-7-15 09:13:04 | 显示全部楼层
diliuchanye 发表于 2022-7-15 09:01
请问这个代码段加在哪
(引用自182楼)


一般加在芯片检测IDCODE部分。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出10入12汤圆

发表于 2022-10-13 18:44:51 | 显示全部楼层
我使用 逻辑分析仪 抓取波形 发现提取的算法少了 6个32bit,不知原因
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-26 07:04

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表