使用环境

<!-- 必须 告知插件运行的环境,帮助开发者定位问题 -->

  • 操作系统版本:win10
  • 操作系统平台(x86/x64):x64
  • VsCode 版本:1.69
  • EIDE 插件版本:3.88
  • C/C++ 插件版本:
  • 何种编译器(keil_c51/sdcc/armcc5/armgcc/...):
  • 编译器版本(非编译问题可忽略):

描述问题

  • 正在文件夹 TTC_2642R1_multi_role 中执行任务: "C:\ti\JLink_V646k\JLink.exe -ExitOnError 1 -AutoConnect 1 -Device CC2642R1F -If JTAG -Speed 4000 -CommandFile e:\TTC_2642R1_multi_role\build\Release\commands.jlink -JTAGConf -1,-1"

SEGGER J-Link Commander V6.46k (Compiled Jul 22 2019 10:50:37)
DLL version V6.46k, compiled Jul 22 2019 10:49:32

J-Link Commander will now exit on Error

J-Link Command File read successfully.
Processing script file...

J-Link connection not established yet but required for command.
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: 17935099
License(s): RDI,FlashDL,FlashBP,JFlash
VTref=3.300V
Target connection not established yet but required for command.
Device "CC2642R1F" selected.

Connecting to target via JTAG
InitTarget: Found ICE-Pick with ID: 0x3BB4102F
InitTarget: Found CPU TAP 0x4BA00477
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: 0x24770011)
Iterating through AP map to find AHB-AP to use
AP[0]: Core found
AP[0]: AHB-AP ROM base: 0xE00FF000
CPUID register: 0x410FC241. Implementer code: 0x41 (ARM)
Found Cortex-M4 r0p1, Little endian.
FPUnit: 6 code (BP) slots and 2 literal slots
CoreSight components:
ROMTbl[0] @ E00FF000
ROMTbl[0][0]: E000E000, CID: B105E00D, PID: 000BB00C SCS-M7
ROMTbl[0][1]: E0001000, CID: B105E00D, PID: 003BB002 DWT
ROMTbl[0][2]: E0002000, CID: B105E00D, PID: 002BB003 FPB
ROMTbl[0][3]: E0000000, CID: B105E00D, PID: 003BB001 ITM
ROMTbl[0][4]: E0040000, CID: B105900D, PID: 000BB9A1 TPIU
Cortex-M4 identified.
Reset delay: 0 ms
Reset type NORMAL: Resets core & peripherals via SYSRESETREQ & VECTRESET bit.

PC = 1000118E, CycleCnt = 00000000
R0 = 00000000, R1 = 00000004, R2 = 40030000, R3 = 00000005
R4 = 40090000, R5 = 40030000, R6 = 00000003, R7 = 00000000
R8 = 00000001, R9 = 40092000, R10= 40090000, R11= 0400000D
R12= 00006000
SP(R13)= 11001FF0, MSP= 11001FF0, PSP= 00000000, R14(LR) = 100011D1
XPSR = 61000000: APSR = nZCvq, EPSR = 01000000, IPSR = 000 (NoException)
CFBP = 00000000, CONTROL = 00, FAULTMASK = 00, BASEPRI = 00, PRIMASK = 00

FPS0 = 00000000, FPS1 = 00000000, FPS2 = 00000000, FPS3 = 00000000
FPS4 = 00000000, FPS5 = 00000000, FPS6 = 00000000, FPS7 = 00000000
FPS8 = 00000000, FPS9 = 00000000, FPS10= 00000000, FPS11= 00000000
FPS12= 00000000, FPS13= 00000000, FPS14= 00000000, FPS15= 00000000
FPS16= 00000000, FPS17= 00000000, FPS18= 00000000, FPS19= 00000000
FPS20= 00000000, FPS21= 00000000, FPS22= 00000000, FPS23= 00000000
FPS24= 00000000, FPS25= 00000000, FPS26= 00000000, FPS27= 00000000
FPS28= 00000000, FPS29= 00000000, FPS30= 00000000, FPS31= 00000000
FPSCR= 00000000

Downloading file [e:\TTC_2642R1_multi_role\build\Release\Exe\multi_role.hex]...
J-Link: Flash download: Bank 0 @ 0x00000000: Skipped. Contents already match
O.K.

Reset delay: 0 ms
Reset type NORMAL: Resets core & peripherals via SYSRESETREQ & VECTRESET bit.

****** Error: CPU is not halted

Script processing completed.

期望现象

第一次能成功烧录,第二次就烧录失败了。
用Jflash工具,可以反复烧录。

commands.jlink

erase # 增加擦除后,能解决

r
halt
loadfile "xx\build\Release\Exe\multi_role.hex"
r
go
exit

自己看 log:

烧录成功(待烧录的内容与 flash 中的一样,跳过)

J-Link: Flash download: Bank 0 @ 0x00000000: Skipped. Contents already match
O.K.

复位失败(无法停住CPU)

Reset delay: 0 ms
Reset type NORMAL: Resets core & peripherals via SYSRESETREQ & VECTRESET bit.

****** Error: CPU is not halted

    如果你的程序上电后会关闭 JTAG 口,

    那么烧录完成后就可能无法使用 JTAG 进行复位

    admin 待烧录的内容与 flash 中的一样,跳过,

    这个解释不通,我特地修改了代码,编译再烧录的。

      xue1995

      Skipped. Contents already match 就是这个意思

      Write a Reply...