下面介绍 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) 运行序列号生成程序, 打开破解补丁 : ( 部分杀毒软件可能会将
这个文件误报为病毒文件, 这时不必理会杀毒软件的警告, 并将这个文件设为信任文件或者直接关掉杀毒软件 ), 运行压缩包中程序, 按图 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
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
(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\" 修改好后, 如下所示 :
在 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 页面, 使用微库
(b) 配置 Debug 页面 如软件仿真, 则选中 Use Simulator (c) 配置 Utilities 页面步骤 1
(d) 配置 Utilities 页面步骤 2: 点击 Settings (e) 配置 Utilities 页面步骤 3: 点击 Add, 添加相应的 STM32 芯片烧写算法
(f) 配置 Utilities 页面步骤 4: 点击 OK 图 7 ULink 下载配置 ( 14 ) 这样 ULink 下载工具就配置好了 如图 8 所示, 点击图标 ( 或通过 Flash->Download 操作 ), 程序就开始下载了 图 8 程序下载 (15) 下载时, 先擦除上次 Flash 存储器中的程序, 再将刚才编译好的程序下载, 最后经校 验无误后, 下载结束 此时, 按教学开发板的 Reset 复位键, 下载的程序开始运行
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 系列单片机
(a) 配置 Target 页面, 使用微库 (b) 配置 Debug 页面 1, 选中 Run to main
(c) 配置 Debug 页面 2, 点击 Setting 点击 Browse for RDI Driver DLL 右边的按钮, 选中 Files\SEGGER\JLinkARM_V400a\JLinkRDI.dll 文件, 确定后, 如图 4(d) 所示 C:\Program (d) 配置 Debug 页面 3, 加载完 J-Link RDI 驱动库后 点击 Configure RDI Driver, 出现图 4(e) 对话框
(e) 配置 J-Link RDI 对话框 1 点击 Flash 页, 出现图 4(f) 对话框, 钩选 Enable flash programming, 选择器件类 型, 如 :ST STM32F103VB
(f) 配置 J-Link RDI 对话框 2 (g) 配置 Utility 页面 1
在图 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 调试
STM32 程序 ISP 下载说明 这里介绍 ISP 下载程序的配置方法 (1)ISP 下载采用串口电缆, 先将开发板与 PC 机用串口电缆连接好 (2) 点击 (Flash_Loader_Demonstrator_V1.1.1_Setup.exe), 双击 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 编程模式
BOOT0 左 :0 右 :1 图 2 STM32 单片机 ISP 编程模式开关选择 BOOT1 左 :0 右 :1 (6) 点击图 1 的 Next 按钮, 进入图 3 所示界面, 表明 ISP 串口连接成功, 否则表明连接失败, 需重新按照以上步骤再连接一次, 如果仍然无法连接, 注意检查电源 串口线连接, 以及晶振是否起振 图 3 STM32 单片机 ISP 下载串口连接成功 (7) 单击 Next 按钮, 进入图 4 所示界面, 选择 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) 选择下载程序
(b) 选择下载文件 (c) 选择下载的 *.hex 文件 (d) 选择 hex 可执行文件 图 5 选择下载程序
(a) 程序下载中 (b) 程序下载完成 图 6 下载程序 (10) 此时, 程序已经成功下载到目标芯片上了, 单击 Finish 关闭这个程序 将 BOOT0 开 关拨回到左边, 即 BOOT0=0,BOOT1=0 状态 然后按复位按钮, 下载到 STM32 单片机里 的程序开始执行 注意 :ISP 下载完后要注意关闭 ISP 下载软件, 否则使用串口调试软件会有冲突 ; 同理, 在 使用串口调试软件后, 也注意要断开连接, 否则会与 ISP 下载软件有冲突
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 有可能不能正常编译