我们平时的程序都是烧写到STM32的内部FLASH里的,所以可以通过串口或JLINK直接下载就可以了。
而ST官方DEMO的资源文件,和uclinux的image文件都是烧写到外部NOR FLASH的,
除了可以用DFU方式下载.dfu文件之外,还可以用JLINK烧写.bin文件和.hex等文件,而且JLINK烧写NOR的速度比DFU快很多。
这里我们来介绍一下,是怎么通过JLINK烧写字库到NOR FLASH里的:
1、首先打开SEGGER- JLink ARM Vx.xx - J-Flash ARM
2、然后点File - open project,
在弹出的选择框中选择工程文件:C:\Program Files\SEGGER\JLinkARM_V424\Samples\JFlash\ProjectFiles\STM32F103ZE_ST_MB672_CFI_1x16.jflash
3、然后点File - open data file 打开要烧写的文件,这里以字库HZK16.bin为例
4、然后会弹出一个地址设置框,这里我们填写NOR FLASH的起始地址64000000
5、设置好上面的步骤后,下面点Target - connect连接设备
连接成功后,在下面的LOG框中看到Connected successfully的信息
6、最后就可以点Target - program valify烧写了
等待烧写完成,文件就成功烧写到外部NOR FLASH了
如果要烧写多个文件,步骤3、完成后,接着加一个步骤File - Merge data file。后面步骤一样。
如果我们烧写的两个文件,会擦除FLASH的同一个块,那就要用Merge data file,不然后面烧的就会把前面烧的擦除了。
你需要使用JLink的配套软件J-Flash for ARM,安装后打开J-Flash for arm工具,打开hex文件,选择芯片,连好jlink和STM32,最后下载即可。
PS:Jflash for arm软件不要使用太高的版本,不然有可能会识别你的Jlink为盗版导致无法下载程序。
一头插在单片机上,一头插USB,打开单片机,在keil里面点击魔术棒--debug--选择J-LINK/J-TRACE Cortex点击settings--ort设置成sw,Mx设置成10M--点Flash Download--Add一个1M的那个,确定。点击魔术棒左边的那个Download。烧写成功
用UART1串口,然后看芯片简介把boot0和boot1配置好,下载个官方的ISP下载软件,就ok了。
首先下载一个软件
Flash
Loader
Demo
然后就是把boot0置1
,boot1置0.
这样就是串口下载模式。
选择好波特率和端口。貌似默认的就行。建议改成com1.其实com0也是没关系的。
最关键的是
stm32单片机的USART只能用usart1。其他几个USART是都不行的。切记。设计电路的时候就要注意这一点。
然后可以打开,简单的按下一步。后面选择domn
to
device.使用默认设置。然后把hex文件放进去就OK。
其实很简单的。
最后一步,还是要还原BOOT设置。
boot0置0,boot1置0.一定要还原设置。不然程序是不会运行的。
1.先打开的keil软件,点击options for target(魔法棒标志),在弹出的窗口中device选项中选择你要用的stm32芯片型号,然后在debug选项中点上右面的use(硬件调试),下拉栏选择j-link,
2.点击下拉栏右侧的settings,弹出的窗口中flash down,添加你所有芯片对应的地址区.到这keil5的配置完事了,一路确定.
3.用你的j-link调试工具把开发板和计算机连接好(一般j-link的驱动插上自己就安装了),当j-link上灯为稳定绿色不闪时,点击keil中的下载按键即可.如果驱动没有安装好百度j-link驱动安装.
本文标签:stm32jlink烧写原理图