JFlash读取和烧录加密stm32程序
安装后JFlash所在的目录:C:\Program Files\SEGGER\JLink
一、烧写加密程序
1、打开C:\Program Files\SEGGER\JLink目录,找到JFlash.exe,双击它,就可以打开该执行程序。见下图:

2、选择"Create new project",见下图:

3、点击"Start J-Flash",得到下图:

4、点击上图中的"..."。得到下图:

5、在"Device"下面的文本框里输入"STM32F103VE",这里是举例,你要输入你的CPU型号

6、选择下面例举的CPU,点击"STM32F103VE"选择,然后按下回车键,或点击下面的"OK"按钮,得到下面的界面:

7、选择"Target interface"为"SW"接口,其他按照默认设置,然后点击"OK"按钮。注意:对于不清楚的地方,不要随便去修改。得到下图:

8、点击"File",再点击"Open data file...",见下图:

9、找到烧录文件,通常以".hex"或".bin"结尾,见下图:

10、假定我们点击以".hex"结尾的文件,得到下图:

11、假如要加密,则点击"Options",再点击"Project settings ...",见下图操作:

12、点击"Flash",不勾选最后一个扇区

注意:
不勾选最后一个扇区,是因为最后一个扇区用来保存参数,目的是在烧录程序时,不希望J-Link对这部分进行改写。
CPU可以对加密扇区进行读写,但烧录程序后,J-Link不可以对其进行读写,否则会导致程序丢失。
13、点击下图中的"Production"

14、点击"OK"按钮,加密配置结束
15、点击"Target",在点击"Connect",连接到J-LINK烧录器。

16、点击"Target",在点击"Production Programming",开始烧写程序


17、点击上图中的"OK"按钮,烧写完成。
二、读取烧录的程序:
1、关闭打开的文件
2、点击"Target",再点击"Manual Programming",点击"Read back",点击"Entire chip",见下图:

3、加密后的程序,读取后会告诉为FF,见下图:

4、在用J-Link烧写加密程序后,不要再通过J-Link去读CPU的代码或通过J-Link去连接CPU,否则可能会将以前烧录的程序擦除。
5、加密扇区和非加密的扇区,CPU均可以自由读取或改写其内容。