本帖最后由 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, 代码没有打开,无需上位机软件 )
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
@2楼 改了个非标准36MHz版本,标准的ST_LINK V2 用STM32F103C8T6,可以工作在72MHz的;
@3楼 我想用来大批量下载。
因为SWIM通信花的时间并不占多,STM8S003容量8K,SWIM通信用低速模式大约慢100ms不到的,所以没有采用快速格式,(Low speed bit format采用19/3比例)稳定可靠一点;
本来想用STM8的整片擦除功能提高烧录速度,没有稳定实现,暂时作罢,代码调得比较乱,没有好好整理。
一周热门 更多>