ubuntu18.04使用jlnk下载程序

ubuntu使用JLink下载程序

JLink安装

  1. JLink官网下载最新的JLink驱动程序。ubuntu使用的是deb包,下载时选J-Link Software and Documentation Pack下面的链接。
  2. 使用sudo dpkg -i JLink-linux-xxxx-xxx.deb安装。安装成功就可以使用JLinkExe命令了。输入JLink用tab键看看有没有出来一堆命令提示,如果有就安装好JLink了>。不过这个时候还不能使用它来连接STM32,还有点依赖和设置问题。

依赖

  1. libusb 和 libreadline,我也不知道有没有用后面一个,网上说安上我就安上嘛
sudo apt-get install libusb-1.0-0
sudo apt-get install libreadline6-dev

设置

网上只找到复制设置文件的方法,我不知道可以用不,我是直接使用的JLink提供命令>完成的。

  1. 安装好后按网上教程连接不上STM32,不能检测到有JLink的连接。
SEGGER J-Link Commander V6.90 (Compiled Dec 11 2020 18:06:43)
DLL version V6.90, compiled Dec 11 2020 18:06:31                                                                                                        Connecting to J-Link via USB...FAILED: Cannot connect to J-Link.            
  1. 自己摸黑找到JLinkSTM32和JLinkSTM32Exe命令,选择你的芯片系列
$ JLinkSTM32
  1. 再次使用JLinkExe就可以连接STM32了
  2. 下面就简单些了
$ JLinkExe
SEGGER J-Link Commander V6.90 (Compiled Dec 11 2020 18:06:43)               DLL version V6.90, compiled Dec 11 2020 18:06:31

Connecting to J-Link via USB...O.K.
Firmware: J-Link ARM-OB STM32 compiled Aug 22 2012 19:52:04
Hardware version: V7.00
S/N: 20090928
License(s): RDI,FlashDL,FlashBP,JFlash,GDB
VTref=3.300V
Type "connect" to establish a target connection, '?' for help
## 输入connect 2 次, 为什么要 2 次。我也不知道
J-Link>connect
Please specify device / core. <Default>: CORTEX-M3
Type '?' for selection dialog                                               ## 第二个connect                                                            Device>connect                                                              Please specify target interface:                                              J) JTAG (Default)                                                           S) SWD
  F) FINE                                                                     I) ICSP
  C) C2
  T) cJTAG
## 我用的SWD连接
TIF>S
Specify target interface speed [kHz]. <Default>: 4000 kHz                   ## 这里让你输入传输速度。可以改变,也可以直接enter。会再次弹一个让你先芯片的页面,在Device中输入芯片规格选择确认。                                      Speed>
Device "STM32F103C8" selected.


Connecting to target via SWD
Found SW-DP with ID 0x1BA01477                                              Found SW-DP with ID 0x1BA01477                                              DPv0 detected
Scanning AP map to find all available APs                                   AP[1]: Stopped AP scan as end of AP map has been reached                    AP[0]: AHB-AP (IDR: 0x14770011)
Iterating through AP map to find AHB-AP to use
AP[0]: Core found
AP[0]: AHB-AP ROM base: 0xE00FF000
CPUID register: 0x411FC231. Implementer code: 0x41 (ARM)
Found Cortex-M3 r1p1, Little endian.
FPUnit: 6 code (BP) slots and 2 literal slots
CoreSight components:
ROMTbl[0] @ E00FF000                                                        ROMTbl[0][0]: E000E000, CID: B105E00D, PID: 001BB000 SCS
ROMTbl[0][1]: E0001000, CID: B105E00D, PID: 001BB002 DWT
ROMTbl[0][2]: E0002000, CID: B105E00D, PID: 000BB003 FPB
ROMTbl[0][3]: E0000000, CID: B105E00D, PID: 001BB001 ITM                    ROMTbl[0][4]: E0040000, CID: B105900D, PID: 001BB923 TPIU-Lite
Cortex-M3 identified.                                                       ## 用erase擦除一下
J-Link>erase
Without any give address range, Erase Chip will be executed
Erasing device...
J-Link: Flash download: Total time needed: 0.093s (Prepare: 0.051s, Compare: 0.000s, Erase: 0.036s, Program: 0.000s, Verify: 0.000s, Restore: 0.005s)
Erasing done.
## 下载程序。可以下载bin和hex文件,最后要加上地址
J-Link>loadbin 你的程序目录/for_jswd.bin 0x8000000                          Downloading file [你的程序目录/for_jswd.bin]...                             J-Link: Flash download: Bank 0 @ 0x08000000: 1 range affected (5120 bytes)
J-Link: Flash download: Total: 0.298s (Prepare: 0.082s, Compare: 0.014s, Erase: 0.000s, Program & Verify: 0.160s, Restore: 0.040s)                      J-Link: Flash download: Program & Verify speed: 31 KB/s
O.K.
  1. 写入后可以拔下jlink,使用正常电源上电跑起来了。

为什么写它

网上的教程没有一个让我正常下载进去的,总是有点地方不正确卡往。写这一篇详细点
的也帮人少走点弯路。之前一直想使用st官方的STM32CubeProg下载,但总是连接不上>。不管是usart,还是淘宝这个10多的jlink。只能说STM32CubeProg还是不适合用JLink。

你可能感兴趣的:(笔记)