stm32单片机编程常用开发工具有MDK、IAR、STM32Cube系列等。但是等到开发完成之后,转交生产进行批量烧写程序的时候,总不能扔过去一套开发工具,这时候用的比较多的就有J-Flash,只需一个J-link,一个HEX文件(由开发工具中编译链编译出来),再加上一个SEGGER J-Flash上位机软件即可完成stm32单片机的程序烧写(其他芯片暂时未使用过)。
1. 创建工程
第一次打开J-Flash,大概是这个样子(我用的J-Flash版本为V6.44),你看看,它上面说读到了6836个设备!!
我们选择第二个新建工程,Create a new project(如果之前有保存的jflash工程文件,也可以第一个选择打开)。什么?你不小心点了叉?OKOK,没有关系,左上角File->New project可以达到同样的效果。
-
Target Device,在( … )里面,选择自己使用的芯片,我这里使用的为意法半导体的stm32
l471re,之后点击OK,该芯片为小端模式(Little endian);
-
Target Interface 常用SWD,根据自己硬件接口进行选择,我这里是SWD;
-
Speed使用默认4000KHz即可
点击OK即可完成工程创建,可以看到选择芯片的详细信息。
2. 下载文件
- File->Open data file,查找打开需要烧写的hex文件
stm32的flash地址从0x8000000开始,L471RE的flash大小为512KB
- 将J-Link连接上单片机;
- Target->Conncet,将J-Flash与单片机进行连接,连接成功后,Target->Product Programming开始下载程序。
- 至此,程序下载完成。
- 关闭J-Flash时,可以保存下工程文件,下次使用工程文件打开,无需重新选择芯片。
3. 读回文件
我们可以使用J-Flash将stm32存储在flash中的程序读取出来(当然单片机不能是各种读写保护之类的状态)。
- Target->Manual Programming->Read back->Selected sectors
读出的文件可以与原烧写文件进行对比,发现数据相同(有多出来的FF,因为读回的是整个flash,也可以使用Range读回部分flash数据)。
版权声明:本文为hard_lilimao原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。