
本帖最后由 wolfgang2015 于 2018-3-17 12:58 编辑 5 P" \5 y, h1 H) v' O3 G 一、实验开始之前 ![]() 试验开始之前,非常感谢三创电子举办的“新年抢楼,送板子”活动,有幸获得JLINK、ST-LINK以及STM32F103C8Mini开发板各一块,虽然有散件待焊,常年奋斗在硬件开发的熟手们并非难事,一手烙铁,一手焊锡,不费吹灰之力很快就能将其焊接好。 ![]() 因为J-LINK是 ARM-OB版本,不支持JTAG(其实也不是不支持,亲测该型J-LINK 的JTAG不能提供3.3V供电,对于熟悉JTAG引脚接口的人士,可以飞线或外部供电使用),因此只焊接4个SWD接口即可,不过焊上20PIN的标准JTAG接口也未尝不可,待解决电源供电的引脚后,也能支持通过JTAG下载程序使用了。 二、实验过程0、更新ST-LINK固件和JLINK固件 A、ST-LINK固件升级 刚拿到的ST-LINK固件版本并非是最新的,能与机器上的ST-LINK驱动完美适配,因此需要使用st-linkv2_upgrade 工具对其进行固件更新。固件更新工具下载地址如下: STSW-LINK005(https://www.stmcu.org.cn/document/detail/index/id-216344),下载并解压后可以看见蝴蝶的更新程序。 ![]() 用Mini USB连接ST-LINK后,运行EXE文件,点击DeviceConnect后,可以得到当前固件版本和更新固件版本(因我这里是最后写的调试环境,固版本号始一直的,诸位未升级固件的版本号略有不同),点击Yes后即可更新固件。 ![]() B、J-LINK ARM OB固件升级 1)、下载J-LINK驱动 打开segger管网(http://www.segger.com/) ![]() 找到行栏中找到 Older versions(链接:http://www.segger.com/j-link-older-versions.html),在历史版本中找一个与您当前使用的Keil版本和JLINK兼容的版本(比如:4.92链接:http://www.segger.com/jlink-software.html?step=1&file=JLink_492) 下载后安装很简单,可以通过下一步、下一步安装到系统中。若已经安装有J-LINK驱动的可以跳过这步,直接升级固件。 2)、恢复到一个低版本的J-LINK固件 驱动下载并按转好后,使用Mini USB连接。J-LINK OB固件恢复出厂设置,打开“开始”菜单--〉“SEGGER” ---〉<版本号>---〉“J-LinkCommander”,并输入 exec invalidateFw(手动降级命令)如下图: ![]() 然后会弹出一个更新固件的对话框,选择 yes 进入更新 ![]() ![]() ![]() 当看见 new firmware bootedsuccessfully 后,现在固件已经还原为以前较低的版本了。 3)、更新固件 连接上J-LINK后,启动Keil ,启动 “Flash”----〉Configure Flash Tools后, ![]() 选择Debug标签页,在Use下拉框中选择 J-LINK后点击Settings。 ![]() 在弹出配置菜单后提示后,提示有固件更新的对话框,点击“是”。 ![]() 系统会根据当前的J-LINK驱动自动监测并更新J-LINK固件。 ![]() 更新固件后,J-LINK配置窗口显示出了相关的配置信息,选择SW调试方式后,一切准备工作就做好了。 ![]() 0 N5 j! j; K7 n# X* d9 R 1、使用CubeMX辅助创建STM32F103C8 Mini开发板源代码3 ]4 A) B6 n- i* y( Q8 @ ![]() Mini开发板上有一个PC13引脚连接的LED灯,用CubeMX创建一个STM32F103C8Mini开发板的工程。MCU选择 STM32F103C8Tx的芯片。 ![]() 选择好后点击OK。界面中出现了芯片的引脚的分布图。 ![]() 选择左上角的PC13,在下拉菜单中选择GPIO_Output。 ![]() 选择SYS节点,Debug,选择Trace-Asynchronous_SW选项。 ![]() 第二页时钟配置默认,第三页Configuration,选择GPIO按钮,在弹出菜单中选中列表中的PC13,编辑下方的PC13配置参数,点击OK。 ![]() 选择Project,点击Project Settings。选择项目的保存目录和项目名称,并选择IDE的(这里选择MDK-ARM V5),选好后点击OK,如下图: ![]() 参数选择好后就创建代码,Project--->GenerateCode ![]() 在创建源代码进度条完成后,弹出代码成功创建的对话框,点击OpenProject用MDK程序打开项目。 ![]() 打开项目后,在Main.c文件中增加下列内容:
在INC目录中新增一个main.h文件 * s9 P# C! }: s0 t4 l/ W
这样一个LED闪亮的程序就制作好了,经过编译后就能下载到MINI开发板中了。 2、ST-LINK 与STM32F103C8 Mini开发板连接用跳线冒将Boot0和Boot1都连接到0条线柱上(接地),使用ST-LINK与F103C8Mini连接,连接方式如下图: ![]() 上图20PIN接口三角标识的是第一脚,Reset和TDO引脚是可选连接,连接好后,打开"STM32 ST-LINK Utility"软件,在点击Target---〉Connect连接后,显示如下图: ![]() 这样就能通过ST-LINK擦除MINI开发板上的程序,给开发板下载程序了~~~~,当然ST-LINK的用法不仅如此,在KEIL软件中,可以通过ST-LINK进行联机调试。连接上ST-LINK后,启动Keil ,启动 “Flash”----〉Configure Flash Tools后。选择Debug标签页,在Use下拉框中选择 ST-LINK后点击Settings。 ![]() 选择Ort为SW,点击确定,这时就可以使用ST-LINK调试代码了。 ![]() 选择Debug---〉Start/Stop Debug Session 对前面小节中编写的代码进行调试。 ![]() 3、JLINK 与STM32F103C8 Mini开发板连接 用跳线冒将Boot0和Boot1都连接到0条线柱上(接地),使用J-LINK与F103C8Mini连接,连接方式如下图: ![]() 上图20PIN接口三角标识的是第一脚,使用的J-LINK ARM-OB 的SWO方式与MINI开发板连接。连接好后,打开MDK软件,选择Debug标签页,在Use下拉框中选择J-LINK后点击Settings。 ![]() 选择Ort为SW,点击确定,这时就可以使用J-LINK调试代码了。 ![]() 选择Debug---〉Start/Stop Debug Session 对前面小节中编写的代码进行调试。 ![]() 4、ISP与STM32F103C8 Mini开发板连接 使用ST-LINK和J-LINK都需要芯片的Boot0和Boot1置于低点平。除此之外,还有从SRAM启动和系统存储器启动的方式,详细设置如下表:
我们可以设置Boot0为高点平, Boot1为低点平使用ISP来连接开发板,Boot0、Boot1如下图所示: ![]() ( }; O. A y) g* K; Q1 C, Q1 Z 设置好BOOT0、Boo1条线帽后(并非下图照片中的设置),用下图连接方法来连接一个USB转TTL串口的工具(如:CH340G等芯片工具)。 ![]() 到https://www.stmcu.org.cn/网站下载《STM32和STM8 FlashLoader演示程序:stsw-mcu005》(链接:https://www.stmcu.org.cn/document/detail/index/id-216326),安装后在开始菜单中会出现FlashLoader目录,DemonstratorGUI 工具是官方提供的ISP工具。 ![]() 做好Boot0=1,Boot1=0准备,用串口TTL连接到MINI主板的准备工作后,连接USB,并启动Demonstrator GUI 软件。 ![]() 在PortName的下拉框中选择正确CH340G工具所在的端口号后,点击下一步; ![]() 当出现“Targetis readable.....”时,代表已经于MINI开发板芯片连接上了,点击下一步; ![]() 这里就通过软件读取到MINI开发板的上STM32F103C8芯片内部的Flash信息,每个Flash块大小1K,Page0到Page63总共64个块区(地址0x0800,0000~0x0800,FFFF)。点击下一步; ![]() 这里我们可以进行Flash擦除;或者下载HEX文件到Flash中进行程序更新;或者更新设备中的文件;或者进行保护设置;或编辑Flash的字节信息等功能。 三、实验后的心得 5 s( F! i( ~" S# o9 y 4 E" n4 A1 r8 b" {5 R& B* } 8 l! d+ i: M3 Q4 @3 n 在本文的试验里,介绍了3种基本与开发板的链接方式,分别是ST-LINK、J-LINK以及TTL串口的ISP方式连接。通过这三种方式,在项目研发、产品设计时,就能通过开发工具实现软件开发、程序调试等工作,以便对芯片内部或电路板上各种硬件资源进行操作;在某些产品设计中,还需要将这些接口预留出来便于软件下载与升级。 y% M& I- @; f8 x, S, B/ n , @7 b: X; H: q* Q+ `" `6 f) E* k 本文PDF文档下载: ![]() |
多谢分享。。。
不好意思,市面上的大多数J-LINK不支持JTAG。
能否提供一下操作说明或注意事项,对此进行改进。
文档已更新~~