STM32程序3种下载方式说明
下面介绍U-Link、J-Link和ISP下载STM32程序的配置方法,以MDK3.24为例,也可以使用MDK3.80或者更高版本的MDK,过程类似。此文档仅供学习和交流使用。
STM32程序U-Link下载说明
(1)ULink下载工具如图1所示。
图1 ULink下载工具
(2)双击MDK安装文件图标进行安装,在后续出现的窗口中依次点击Next按钮,直到安装完成(默认安装路径是C:\\Keil,建议换个路径名,比如C:\\Keil MDK324文件目录下,以防止与51单片机开发环境冲突)。安装好后,未输入License的MDK,在开发时会有代码量的限制。
(3)输入License:选择File菜单下的License Management子菜单,如图2所示。
图2 File菜单下的License Management子菜单
(4)将License序列号拷贝到License Management中的New License ID Code(LIC)中,点击ADD LIC完成,如图3所示。
图3 输入License序列号
(5)运行序列号生成程序,打开破解补丁:
(部分杀毒软件可能会将
《基于ARM Cortex-M3的STM32系列嵌入式微控制器应用实践》
这个文件误报为病毒文件,这时不必理会杀毒软件的警告,并将这个文件设为信任文件或者直接关掉杀毒软件),运行压缩包中程序,按图4所示配置,将Target下拉选项选中“arm”。
图4 输入CID,获得序列号
将Keil软件“License Management”对话框中的Computer CID中的内容:
拷贝到此程序的CID中:
击
按钮,获得序列号。
,然后点
(6)将生成的序列号拷贝到“License Management”对话框的LIC区域中:
然后,点击“Add LIC”,出现图5所示的内容,点击“Close”关闭对话框。
图5 添加LIC序列号
(7)将文件夹Bin目录中的3个文件“UL2ARM_RDI.dll”、“UL2ARM_ULINK1.dll”、
《基于ARM Cortex-M3的STM32系列嵌入式微控制器应用实践》
“UL2CM3_ULINK1.dll”拷贝到MDK安装目录下的\\ARM\\Bin目录中。
(8)将文件夹system32目录中的文件“FTCJTAG.dll”拷贝到C:\\WINDOWS\\system32目录下,而Drivers目录中的文件“keilul.sys”拷贝到C:\\WINDOWS\\system32\\Drivers目录下。
(9)将文件夹下的inf目录拷贝到C盘根目录。 (10)进入MDK根目录下的\\ARM\\FLASH目录,找到
2个文件,将
其后缀改成FLX。
(11)将ULink下载工具的一端通过USB线连接到电脑USB口上,另一端连接到教学开发板上的JTAG口上。接好后,按图6(a)~(c)所示过程依次配置,安装ULink驱动。
(a)ULink驱动安装步骤1
(b)ULink驱动安装步骤2
《基于ARM Cortex-M3的STM32系列嵌入式微控制器应用实践》
(c)ULink驱动安装步骤3 图6 ULink下载工具驱动的安装
然后点击Next按钮,直到安装完成,ULINK的驱动就装好了。
(12)更改MDK安装目录下的TOOLS.INI文件,用记事本打开它,将下面一段内容拷贝进去,包括[ARM]、[ARMADS]、[KARM]三个片段(仅拷贝到[ARMADS] 片段也可以),并保存:
TDRV0=BIN\\UL2ARM.DLL(\"ULINK2 ARM Debugger\") TDRV1=BIN\\UL2CM3.DLL(\"ULINK2 Cortex Debugger\") TDRV2=BIN\\UL2ARM_RDI.DLL(\"RDI Interface Driver\") TDRV3=BIN\\UL2ARM_ULINK1.DLL(\"ULINK1 ARM Debugger\") TDRV4=BIN\\UL2CM3_ULINK1.DLL(\"ULINK1 Cortex Debugger\") TDRV5=BIN\\ABLSTCM.dll(\"Altera Blaster Cortex Debugger\") TDRV6=BIN\\lmidk-agdi.dll(\"Luminary Eval Board\") TDRV7=Signum\\SigUV3Arm.dll(\"Signum Systems JTAGjet\") TDRV8=Segger\\JLTAgdi.dll(\"J-LINK / J-TRACE\")
注意3处路径是Keil MDK3.24的安装路径。 [ARM]
PATH=\"C:\\Keil MDK324\\ARM\\\" [ARMADS]
PATH=\"C:\\Keil MDK324\\ARM\\\" [KARM]
PATH=\"C:\\Keil MDK324\\ARM\\\"
修改好后,如下所示:
《基于ARM Cortex-M3的STM32系列嵌入式微控制器应用实践》
在“Options for Target”的Debug页面中,如果有ULINK1 Cortex Debugger和ULINK2 Cortex Debugger说明安装成功。
(13)将ULink和教学开发板连接好,打开教学开发板电源开关。点击Project下的Options for Target(工程属性),弹出“Options for Target”对话框。或者点击“Flash”菜单下的“Configure Flash Tools”,按照如图7(a)~(f)所示进行配置。
(a)配置Target页面,使用微库
《基于ARM Cortex-M3的STM32系列嵌入式微控制器应用实践》
(b)配置Debug页面。如软件仿真,则选中“Use Simulator”
(c)配置Utilities页面步骤1
《基于ARM Cortex-M3的STM32系列嵌入式微控制器应用实践》
(d)配置Utilities页面步骤2:点击Settings
(e)配置Utilities页面步骤3:点击Add,添加相应的STM32芯片烧写算法
《基于ARM Cortex-M3的STM32系列嵌入式微控制器应用实践》
(f)配置Utilities页面步骤4:点击OK
图7 ULink下载配置
(14)这样ULink下载工具就配置好了。如图8所示,点击“Flash->Download”操作),程序就开始下载了。
图标(或通过
图8 程序下载
(15)下载时,先擦除上次Flash存储器中的程序,再将刚才编译好的程序下载,最后经校验无误后,下载结束。此时,按教学开发板的Reset复位键,下载的程序开始运行。
《基于ARM Cortex-M3的STM32系列嵌入式微控制器应用实践》
STM32程序J-Link下载说明
这里介绍J-Link下载程序的配置方法。 (1)J-Link下载工具如图1所示。
(2)将J-Link工具软件压缩包进行解
压,并安装,在后续出现的窗口中依次点击Next按钮,直到安装完成。
注意:有些杀毒软件可能会误报病毒,对此不必理会,可以直接关闭杀毒软件。
图1 J-Link下载工具
(3)将J-Link下载工具的一端通过USB线连接到电脑USB口上,另一端连接到教学开发板上的JTAG口上。Windows系统发现J-Link下载工具,如图2所示,接着安装J-Link驱动。
图2 系统发现J-Link下载工具
(4)将J-Link和教学开发板连接好,打开教学开发板电源开关。点击Project下的option for target(工程属性),弹出“Options for Target”对话框。或者点击“Flash”菜单下的“Configure Flash Tools”,如图3所示。
图3 配置Flash下载工具
(5)按照图4(a)~(h)所示,配置J-Link的RDI方式来调试STM32系列单片机。
《基于ARM Cortex-M3的STM32系列嵌入式微控制器应用实践》
(a)配置Target页面,使用微库
(b)配置Debug页面1,选中“Run to main”
《基于ARM Cortex-M3的STM32系列嵌入式微控制器应用实践》
(c)配置Debug页面2,点击Setting
点击“Browse for RDI Driver DLL”右边的按钮,选中C:\\Program Files\\SEGGER\\JLinkARM_V400a\\JLinkRDI.dll文件,确定后,如图4(d)所示。
(d)配置Debug页面3,加载完J-Link RDI驱动库后
点击“Configure RDI Driver”,出现图4(e)对话框。
《基于ARM Cortex-M3的STM32系列嵌入式微控制器应用实践》
(e)配置J-Link RDI对话框1
点击Flash页,出现图4(f)对话框,钩选“Enable flash programming”,选择器件类型,如:ST STM32F103VB。
《基于ARM Cortex-M3的STM32系列嵌入式微控制器应用实践》
(f)配置J-Link RDI对话框2
(g)配置Utility页面1
《基于ARM Cortex-M3的STM32系列嵌入式微控制器应用实践》
在图4(g)的“Use Target Driver for Flash Programming”下拉列表框中,选“RDI Interface Driver”,点击Settings,选中“J-Link Flash Programming”, 如图4(h)所示,点击“OK”确认。
(h)配置Utility页面2 图4 配置J-Link下载工具
(6)点击“OK”确定,完成J-Link配置。
注:RDI(Remote Debug Interface)是ARM公司提出的调试接口标准,主要用于ARM芯片的JTAG仿真。由于各个芯片厂商使用的调试接口各自独立,硬件无法进行跨平台的调试。现在众多的芯片厂家都逐步采用标准RDI作为ARM仿真器的调试接口,使跨平台的硬件调试成为可能。因此,建议在IDE中使用标准的RDI。ARM公司的ADS1.2/IAR公司的EWARM 3.30也支持DRI调试。
《基于ARM Cortex-M3的STM32系列嵌入式微控制器应用实践》
STM32程序ISP下载说明
这里介绍ISP下载程序的配置方法。
(1)ISP下载采用串口电缆,先将开发板与PC机用串口电缆连接好。
(Flash_Loader_Demonstrator_V1.1.1_Setup.exe),(2)点击
双击ISP下载软件,进行安装,在后续窗口中依次点击Next按钮,直到安装完成。
(3)软件默认安装在C:\\Program Files\\STMicroelectronics\\Software\\Flash Loader Demonstrator
目录下,找到可执行文件STMicroelectronics flash loader.exe:,
在桌面建立快捷方式。
(4)双击ISP下载软件图标,出现图1所示界面。连接好串口电缆,打开开发板电源,准备配置ISP下载软件。
图1 配置ISP下载软件
(5)将STM32单片机教学开发板的核心板BOOT0开关拨向右边,如图2所示。此时BOOT0=1,BOOT1=0,然后打开电源,按复位按钮,STM32单片机进入ISP编程模式。
《基于ARM Cortex-M3的STM32系列嵌入式微控制器应用实践》
BOOT0 左:0 右:1 BOOT1 左:0 右:1 图2 STM32单片机ISP编程模式开关选择
(6)点击图1的Next按钮,进入图3所示界面,表明ISP串口连接成功,否则表明连接失败,需重新按照以上步骤再连接一次,如果仍然无法连接,注意检查电源、串口线连接,以及晶振是否起振。
图3 STM32单片机ISP下载串口连接成功
(7)单击Next按钮,进入图4所示界面,选择STM32单片机型号。
《基于ARM Cortex-M3的STM32系列嵌入式微控制器应用实践》
图4 选择STM32单片机型号
(8)单击Next按钮,进入图5(a)所示界面,选择下载程序。点击“Download to Device”:选项后,再单击其右侧的按钮,弹出图5(b)所示对话框。在文件类型下拉菜单中选中hex文件类型,如图5(c)所示。随后找到需要下载的hex可执行文件,如图5(d)所示。
(9)选择好要下载的hex可执行文件后,在图6(a)所示界面单击Next按钮,程序开始下载,经校验无误后,程序下载完成,如图6(b)所示。
(a)选择下载程序
《基于ARM Cortex-M3的STM32系列嵌入式微控制器应用实践》
(b)选择下载文件
(c)选择下载的*.hex文件
(d)选择hex可执行文件
图5 选择下载程序
《基于ARM Cortex-M3的STM32系列嵌入式微控制器应用实践》
(a)程序下载中
(b)程序下载完成 图6 下载程序
(10)此时,程序已经成功下载到目标芯片上了,单击Finish关闭这个程序。将BOOT0开关拨回到左边,即BOOT0=0,BOOT1=0状态。然后按复位按钮,下载到STM32单片机里的程序开始执行。
注意:ISP下载完后要注意关闭ISP下载软件,否则使用串口调试软件会有冲突;同理,在使用串口调试软件后,也注意要断开连接,否则会与ISP下载软件有冲突。
《基于ARM Cortex-M3的STM32系列嵌入式微控制器应用实践》
STM32程序下载常见问题
(1)烧写Flash异常
当遇到无法将程序烧写进Flash时,可以将开发板上的BOOT0和BOOT1开关选择从STM32微控制器内嵌的SRAM启动,之后重新选择BOOT0和BOOT1开关,再进行烧写。
有时候,更换了PC(笔记本)端的USB下载插口,也可能导致下载异常,此时可以将USB下载线拔掉,插回原来的USB口。
当教学开发板插上耗电量大的字符型、点阵型或TFT LCD时,由于从PC(笔记本)端的USB口供电电流为500mA,也可能由于供电不足导致下载异常。此时,可拔下LCD,或采用电源适配器供电(输出电流1A或2A)。
(2)发现不了Cortex-M3内核
确认硬件连接正确,以及连接电缆的完好。可参考前面的说明,重新配置Debug页面和Utilities页面。
(3)高版本MDK与低版本MDK
如果你原来的工程是在MDK3.x下建立的,当使用MDK4.x打开后,工程文件及配置文件会被修改为MDK4格式,以后MDK3.x就不能再打开这个工程了。如果需要MDK3.x、MDK4.x共存,在装完MDK4.x后,再将MDK3.x重装一次,这时MDK3.x及MDK4.x都能正常使用了,否则MDK3.x有可能不能正常编译。
因篇幅问题不能全部显示,请点此查看更多更全内容