天天看点

ubuntu中使用jlink烧录stm32程序

安装jlink驱动参考https://blog.csdn.net/lc_cc/article/details/66982821

1.以下为通过jlink连接到stm32的操作(红色为命令输入行,部分使用默认选项直接enter所以没有输入)

[email protected]:/media/allen/CP$ cd /opt/SEGGER/JLink/

[email protected]:/opt/SEGGER/JLink$ ./JLinkExe 

SEGGER J-Link Commander V5.12 (Compiled Mar 30 2016 17:29:11)

DLL version V5.12, compiled Mar 30 2016 17:29:06

Connecting to J-Link via USB...O.K.

Firmware: J-Link ARM V8 compiled Nov 28 2014 13:44:46

Hardware version: V8.00

S/N: 1631096674

License(s): RDI,FlashDL,FlashBP,JFlash,GDBFULL

VTref = 3.300V

Type "connect" to establish a target connection, '?' for help

J-Link>connect

Please specify device / core. <Default>: STM32F105RB

Type '?' for selection dialog

Device>

Please specify target interface:

  J) JTAG (Default)

  S) SWD

TIF>S

Specify target interface speed [kHz]. <Default>: 4000 kHz

Speed>

Device "STM32F105RB" selected.

Found SWD-DP with ID 0x1BA01477

Found SWD-DP with ID 0x1BA01477

Found Cortex-M3 r1p1, Little endian.

FPUnit: 6 code (BP) slots and 2 literal slots

CoreSight components:

ROMTbl 0 @ E00FF000

ROMTbl 0 [0]: FFF0F000, CID: B105E00D, PID: 001BB000 SCS

ROMTbl 0 [1]: FFF02000, CID: B105E00D, PID: 001BB002 DWT

ROMTbl 0 [2]: FFF03000, CID: B105E00D, PID: 000BB003 FPB

ROMTbl 0 [3]: FFF01000, CID: B105E00D, PID: 001BB001 ITM

ROMTbl 0 [4]: FFF41000, CID: B105900D, PID: 001BB923 TPIU-Lite

ROMTbl 0 [5]: FFF42000, CID: B105900D, PID: 101BB924 ETM-M3

Cortex-M3 identified.

2.以下为烧录操作

J-Link>loadbin /media/allen/CP/DisplayV1.05.bin, 0x8000000

Downloading file [/media/allen/CP/DisplayV1.05.bin]...

**************************

WARNING: CPU is running at low speed (8018 kHz).

**************************

Comparing flash   [100%] Done.

Erasing flash     [100%] Done.

Programming flash [100%] Done.

Verifying flash   [100%] Done.

J-Link: Flash download: Flash programming performed for 1 range (36864 bytes)

J-Link: Flash download: Total time needed: 1.169s (Prepare: 0.062s, Compare: 0.012s, Erase: 0.000s, Program: 1.085s, Verify: 0.005s, Restore: 0.003s)

O.K.

J-Link>

3.以下为jlink的help,可以查看所有指令及格式(可以忽略)

J-Link>?

Available commands are:

----------------------

f          Firmware info

h          halt

g          go

Sleep      Waits the given time (in milliseconds). Syntax: Sleep <delay>

s          Single step the target chip

st         Show hardware status

hwinfo     Show hardware info

mem        Read memory. Syntax: mem  [<Zone>:]<Addr>, <NumBytes> (hex)

mem8       Read  8-bit items. Syntax: mem8  [<Zone>:]<Addr>, <NumBytes> (hex)

mem16      Read 16-bit items. Syntax: mem16 [<Zone>:]<Addr>, <NumItems> (hex)

mem32      Read 32-bit items. Syntax: mem32 [<Zone>:]<Addr>, <NumItems> (hex)

w1         Write  8-bit items. Syntax: w1 [<Zone>:]<Addr>, <Data> (hex)

w2         Write 16-bit items. Syntax: w2 [<Zone>:]<Addr>, <Data> (hex)

w4         Write 32-bit items. Syntax: w4 [<Zone>:]<Addr>, <Data> (hex)

erase      Erase internal flash of selected device. Syntax: Erase

wm         Write test words. Syntax: wm <NumWords>

is         Identify length of scan chain select register

ms         Measure length of scan chain. Syntax: ms <Scan chain>

mr         Measure RTCK react time. Syntax: mr

q          Quit

qc         Close JLink connection and quit

r          Reset target         (RESET)

rx         Reset target         (RESET). Syntax: rx <DelayAfterReset>

RSetType   Set the current reset type. Syntax: RSetType <type>

Regs       Display contents of registers

wreg       Write register.   Syntax: wreg <RegName>, <Value>

moe        Shows mode-of-entry, meaning: Reason why CPU is halted

SetBP      Set breakpoint.   Syntax: SetBP <addr> [A/T] [S/H]

SetWP      Set Watchpoint. Syntax: <Addr> [R/W] [<Data> [<D-Mask>] [A-Mask]]

ClrBP      Clear breakpoint. Syntax: ClrBP  <BP_Handle>

ClrWP      Clear watchpoint. Syntax: ClrWP  <WP_Handle>

VCatch     Write vector catch. Syntax: VCatch <Value>

loadfile   Load data file into target memory.

             Syntax: loadfile <filename>, [<addr>]

             Supported extensions: *.bin, *.mot, *.hex, *.srec

             <addr> is needed for bin files only.

loadbin    Load *.bin file into target memory.

             Syntax: loadbin <filename>, <addr>

savebin    Saves target memory into binary file.

             Syntax: savebin <filename>, <addr>, <NumBytes>

verifybin  Verfies if the specified binary is already in the target memory at the specified address.

             Syntax: verifybin <filename>, <addr>

SetPC      Set the PC to specified value. Syntax: SetPC <Addr>

le         Change to little endian mode

be         Change to big endian mode

log        Enables log to file.  Syntax: log <filename>

unlock     Unlocks a device. Syntax: unlock <DeviceName>

           Type unlock without <DeviceName> to get a list

           of supported device names.

           nRESET has to be connected

term       Test command to visualize _ReportOutf output from the target device,

           using DCC (SEGGER DCC handler running on target)

ReadAP     Reads a CoreSight AP register.

           Note: First read returns the data of the previous read.

           An additional read of DP reg 3 is necessary to get the data.

ReadDP     Reads a CoreSight DP register.

           Note: For SWD data is returned immediately.

           For JTAG the data of the previous read is returned.

           An additional read of DP reg 3 is necessary to get the data.

WriteAP    Writes a CoreSight AP register.

WriteDP    Writes a CoreSight DP register.

SWDSelect  Selects SWD as interface and outputs

           the JTAG -> SWD switching sequence.

SWDReadAP  Reads a CoreSight AP register via SWD.

           Note: First read returns the data of the previous read.

           An additional read of DP reg 3 is necessary to get the data.

SWDReadDP  Reads a CoreSight DP register via SWD.

           Note: Correct data is returned immediately.

SWDWriteAP Writes a CoreSight AP register via SWD.

SWDWriteDP Writes a CoreSight DP register via SWD.

Device     Selects a specific device J-Link shall connect to

           and performs a reconnect.

           In most cases explicit selection of the device is not necessary.

           Selecting a device enables the user to make use of the J-Link

           flash programming functionality as well as using unlimited

           breakpoints in flash memory.

           For some devices explicit device selection is mandatory in order

           to allow the DLL to perform special handling needed by the device.

ExpDevList Exports the device names from the DLL internal

           device list to a text file

             Syntax: ExpDevList <Filename>

PowerTrace Perform power trace (not supported by all models)

Syntax: PowerTrace <LogFile> [<ChannelMask> <RefCountSel>]

<LogFile>: File to store power trace data to

<ChannelMask>: 32-bit mask to specify what channels shall be enabled

<SampleFreq>: Sampling frequency in Hz (0 == max)

<RefCountSel>:       0: No reference count

                     1: Number of bytes transmitted on SWO

---- CP15 ------------

rce        Read CP15.  Syntax: rce <Op1>, <CRn>, <CRm>, <Op2>

wce        Write CP15. Syntax: wce <Op1>, <CRn>, <CRm>, <Op2>, <Data>

---- ICE -------------

Ice        Show state of the embedded ice macrocell (ICE breaker)

ri         Read Ice reg.  Syntax: ri <RegIndex>(hex)

wi         Write Ice reg. Syntax: wi <RegIndex>, <Data>(hex)

---- TRACE -----------

TClear     TRACE - Clear buffer

TSetSize   TRACE - Set Size of trace buffer

TSetFormat TRACE - SetFormat

TSR        TRACE - Show Regions (and analyze trace buffer)

TStart     TRACE - Start

TStop      TRACE - Stop

---- SWO -------------

SWOSpeed   SWO - Show supported speeds

SWOStart   SWO - Start

SWOStop    SWO - Stop

SWOStat    SWO - Display SWO status

SWORead    SWO - Read and display SWO data

SWOShow    SWO - Read and analyze SWO data

SWOFlush   SWO - Flush data

SWOView    SWO - View terminal data

---- PERIODIC --------

PERConf    PERIODIC - Configure

PERStart   PERIODIC - Start

PERStop    PERIODIC - Stop

PERStat    PERIODIC - Display status

PERRead    PERIODIC - Read and display data

PERShow    PERIODIC - Read and analyze data

---- File I/O --------

fwrite     Write file to emulator

fread      Read file from emulator

fshow      Read and display file from emulator

fdelete    Delete file on emulator

fsize      Display size of file on emulator

flist      List directory on emulator

SecureArea Creates/Removes secure area on probe

---- Test ------------

TestHaltGo   Run go/halt 1000 times

TestStep     Run step 1000 times

TestCSpeed   Measure CPU speed.

             Parameters: [<RAMAddr>]

TestWSpeed   Measure download speed into target memory.

             Parameters:  [<Addr> [<Size>]]

TestRSpeed   Measure upload speed from target memory.

             Parameters: [<Addr> [<Size>] [<NumBlocks>]]

TestNWSpeed  Measure network download speed.

             Parameters: [<NumBytes> [<NumReps>]]

TestNRSpeed  Measure network upload speed.

             Parameters: [<NumBytes> [<NumReps>]]

---- JTAG ------------

Config     Set number of IR/DR bits before ARM device.

             Syntax: Config <IRpre>, <DRpre>

speed      Set target interface speed. Syntax: speed <freq>|auto|adaptive, e.g. speed 2000, speed a

i          Read JTAG Id (Host CPU)

wjc        Write JTAG command (IR). Syntax: wjc <Data>(hex)

wjd        Write JTAG data (DR). Syntax: wjd <Data64>(hex), <NumBits>(dec)

RTAP       Reset TAP Controller using state machine (111110)

wjraw      Write Raw JTAG data. Syntax: wjraw <NumBits(dec)>, <tms>, <tdi>

rt         Reset TAP Controller (nTRST)

---- JTAG-Hardware ---

c00        Create clock with TDI = TMS = 0

c          Clock

tck0       Clear TCK

tck1       Set   TCK

0          Clear TDI

1          Set   TDI

t0         Clear TMS

t1         Set   TMS

trst0      Clear TRST

trst1      Set   TRST

r0         Clear RESET

r1         Set   RESET

---- Connection ------

usb        Connect to J-Link via USB.  Syntax: usb <port>, where port is 0..3

ip         Connect to J-Link ARM Pro or J-Link TCP/IP Server via TCP/IP.

           Syntax: ip <ip_addr>

---- Configuration ---

si         Select target interface. Syntax: si <Interface>,

           where <Interface> can be any supported target interface (e.g SWD, JTAG, ICSP, FINE, ...

power      Switch power supply for target. Syntax: power <State> [perm],

           where State is either On or Off. Example: power on perm

wconf      Write configuration byte. Syntax: wconf <offset>, <data>

rconf      Read configuration bytes. Syntax: rconf

license    Shows a list of all available license commands

ipaddr     Show/Assign IP address and subnetmask of/to the connected J-Link.

gwaddr     Show/Assign network gateway address of/to the connected J-Link.

dnsaddr    Show/Assign network DNS server address of/to the connected J-Link.

conf       Show configuration of the connected J-Link.

ecp        Enable the  J-Link control panel.

calibrate  Calibrate the target current measurement.

selemu     Select a emulator to communicate with,

           from a list of all emulators which are connected to the host

           The interfaces to search on, can be specified

             Syntax: selemu [<Interface0> <Interface1> ...]

ShowEmuList Shows a list of all emulators which are connected to the host.

            The interfaces to search on, can be specified.

             Syntax: ShowEmuList [<Interface0> <Interface1> ...]

----------------------