开源STM8S脱机编程器for ST-LINK V2

2019-12-18 18:50发布

本帖最后由 wdwd 于 2014-6-13 22:30 编辑

将ST-LINK V2改造成脱机编程器,keil MDK代码。
支持hex和s19格式文件,直接将文件打包到到STM32芯片里,Flash和EEPROM的数据一起烧写;
支持ROP, 支持自动烧录和烧录次数限制(采用FLASH模拟EEPROM记录次数)。

hex或s19格式文件放到src目录,将bootload.s的代码中downloader.hex改为要烧写的文件名,需要重新编译下载;
最大次数由main.c的前面定义:
#define MAX_PRGNUM   (10000+200)  //烧录次数
#define MAX_ONNUM         (3*365)   //开关机次数

我的ST-LINK V2是淘宝买的最便宜14.5元的那种,实际用的是STM32F101RBT6芯片,属于超频72MHz使用的;
但有2个指示灯控制,如果只有单LED的注意修改指示方式:
#define GPIO_GRN_PIN                GPIO_Pin_8   //wdwd.PA.8 *不是标准版*
#define GPIO_RED_PIN                GPIO_Pin_9   //wdwd.PA.9

只测试过STM8S003, 其它芯片需要修改块的大小在platform_config.h中定义:
#define PAGEBLOCK                64

代码受益于其它开源代码,这里一并谢过。
(注:没有用到USB, 代码没有打开,无需上位机软件 )
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
68条回答
wdwd
1楼-- · 2019-12-20 03:08
本帖最后由 wdwd 于 2014-6-14 00:10 编辑
TANK99 发表于 2014-6-13 21:24
我也来凑一个。

里面的原理图能生个PDF看看吗?不知道怎么触发烧录。


用标准的/山寨的ST-LINK V2硬件,原理图你网上找很多的;
代码是在whimsy的基础上改的,
他的原来用USB下载文件的,相关USB文件没有删去,保留在src目录;
秉承whimsy的开源精神。参考的代码还有SimonQian的和yanggexiaosa的,和半壶水的EEPROM。

固件下载进STM32,下载好能自动烧写STM8S003的,USB用于加电不用电脑;
输出管脚定义按st-link V2的 REST SWIM GND 5V/3V接STM8S芯片即可。
STM32_Study
2楼-- · 2019-12-20 08:31
wdwd 发表于 2014-6-13 23:37
用标准的/山寨的ST-LINK V2硬件,原理图你网上找很多的;
代码是在whimsy的基础上改的,
他的原来用USB下 ...

谢谢楼主分享

请问楼主,有没有高速的办法可以实现校验?重新读出来比较很费时间呀

整片擦除,能否利用芯片本身的功能,先读保护,然后再解除保护,这样不就清除了吗?
cc2666
3楼-- · 2019-12-20 09:12
 精彩回答 2  元偷偷看……
wdwd
4楼-- · 2019-12-20 09:47
本帖最后由 wdwd 于 2014-6-14 09:32 编辑
STM32_Study 发表于 2014-6-14 01:39
谢谢楼主分享

请问楼主,有没有高速的办法可以实现校验?重新读出来比较很费时间呀


低速与高速相差的时间(22-10)/8MHz=1.5us/bit, 10*8K*1.5us=120ms,
加上校验相差240ms, 不是很多的。实际操作不影响的。

SWIM协议可以实现高速和超高速的烧录。有兴趣的坛友自己增加2~3条指令可以实现。
tiger5
5楼-- · 2019-12-20 11:14
wkman
6楼-- · 2019-12-20 14:13
支持开源。。。虽然很少用stm8

一周热门 更多>