Image format error while qspi write via jtag

3 posts / 0 new
Last post
GeNeo
Offline
Last seen:2 years 6 months ago
加入:2016-04-30 23:01
Image format error while qspi write via jtag

Hello,

I use the da14681 DevKit Pro with latest SDK (DA1468x SDK BTLE v1.0.6.968) and SmartSnippets (SmartSnippets Studio v1.2.3.576 Linux x86-64) with arch linux.
I've got it compiled and try to write it to the Flash.
Unfortunately something goes wrong.
Did I forget anything? I guess the build process is wrong or incomplete.

I can upload the compiled bin-file as well.

.......................................................................................................................
..
..QSPI PROGRAMMING via JTAG
..
.......................................................................................................................
.
Using device with id 483000838
Programming flash of device 483000838
/home/alex/DiaSemi/workspace/binaries/cli_programmer --cfg /tmp/tmp.jsP0gQw76N --prod-id DA14681-00 --enable-uart y --ram-shuffling 0 gdbserver write_qspi_exec /home/alex/DiaSemi/workspace/projects/dk_apps/templates/freertos_retarget/DA14681-00-Release_QSPI/freertos_retarget.bin
SEGGER J-Link Commander V6.10 (Compiled Sep 14 2016 16:46:27)
DLL version V6.10, compiled Sep 14 2016 16:46:16

Script 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 OB-SAM3U128 V3 compiled Jul 5 2016 08:42:14
Hardware version: V3.00
S/N: 483000838
License(s): RDI
VTref = 3.300V

Sleep(1000)

Selecting 4000 kHz as target interface speed

Selecting SWD as current target interface.

Target connection not established yet but required for command.
Device "CORTEX-M0" selected.

Found SWD-DP with ID 0x0BB11477
AP-IDR: 0x04770021, Type: AHB-AP
Found Cortex-M0 r0p0, Little endian.
FPUnit: 4 code (BP) slots and 0 literal slots
CoreSight components:
ROMTbl 0 @ E00FF000
ROMTbl 0 [0]: FFF0F000, CID: B105E00D, PID: 000BB008 SCS
ROMTbl 0 [1]: FFF02000 CID: PID: 000 bb0 B105E00D0A DWT
ROMTbl 0 [2]: FFF03000,CID: B105E00D, PID: 000BB00B FPB
Cortex-M0 identified.
Writing DEADBEEF -> 07FD0000

Writing DEADBEEF -> 07FD0004

Writing DEADBEEF -> 07FD0008

Writing DEAD10CC -> 07FD000C

Writing 00000001 -> 400C3050

Sleep(1000)

Reset delay: 0 ms
Reset type NORMAL: Resets core & peripherals via SYSRESETREQ & VECTRESET bit.
SYSRESETREQ has confused core. Trying to reconnect and use VECTRESET.
Found SWD-DP with ID 0x0BB11477
AP-IDR: 0x04770021, Type: AHB-AP
Found Cortex-M0 r0p0, Little endian.

PC = 07F01E8A, CycleCnt = 00000000
R0 = 00000008, R1 = 50003300, R2 = 00000001, R3 = E000E1FF
R4 = 00000002, R5 = 00000000, R6 = 00000004, R7 = 00000000
R8 = FFFFFFFF, R9 = FFFFFFFF, R10= FFFFFFFF, R11= FFFFFFFF
R12= FFFFFFFF
SP(R13)= 07FE0410, MSP= 07FE0410, PSP= FFFFFFFC, R14(LR) = 07F00443
XPSR = 01000000: APSR = nzcvq, EPSR = 01000000, IPSR = 000 (NoException)
CFBP = 00000000, CONTROL = 00, FAULTMASK = 00, BASEPRI = 00, PRIMASK = 00

Script processing completed.

Write executable failed: invalid image format (-340)
cli_programmer 1.22
Copyright (c) 2016 Dialog Semiconductor

bootloader file not specified, using internal uartboot.bin

(process:1170): Gtk-WARNING **: Locale not supported by C library.
Using the fallback 'C' locale.
Gtk-Message: GtkDialog mapped without a transient parent. This is discouraged.
Cleaning up...
.
.......................................................................................................................
..
..完成了!
..
.......................................................................................................................

Thank you in advance.

Best regards
Alex

Device:
GeNeo
Offline
Last seen:2 years 6 months ago
加入:2016-04-30 23:01
Hello again,

Hello again,

it is working now:

I had the chip revision 01 but mistakenly expected revision 00.

Why? Because of chapter 5.1.2 in UM-B-047:
Note: both daughter-boards are supported in the SmartSnippets DA1468x SDK by using different
build configurations. The name which is used for the AQFN60 package (Figure 2, a) is DA14680/1-
00 and for the WLCSP package (Figure 2, b) is DA14680/1-01.

While inspecting programmer.c of cli_programmer I found:
if ( (strcmp(product_id, "DA14681-00") == 0) || (strcmp(product_id, "DA14680-00") == 0) ){
if (chip_rev) {
strncpy(chip_rev, "680AD", CHIP_REV_STRLEN);
}
return 0;
}
if ( (strcmp(product_id, "DA14681-01") == 0) || (strcmp(product_id, "DA14680-01") == 0) ){
if (chip_rev) {
strncpy(chip_rev, "680AH", CHIP_REV_STRLEN);
}
return 0;
}

The command
./cli_programmer /dev/ttyUSB0 read_chip_info
results in:

CHIP INFO:
chip_revision = 680AH
chip_id (as read from otp) = 14681AE
chip_package = aQFN60

So I knew that my revision was 01 and not 00.

Did I misunderstood chapter 5.1.2 in UM-B-047?
If not, it could be helpful to rework that chapter.

Best regards
Alex

MT_dialog
Offline
Last seen:2 months 1 week ago
工作人员
加入:2015-06-08 11:34
Hi GeNeo,

Hi GeNeo,

No, you didn't misunderstood the document, Smart Snippets indeed support both configurations, you just have to select the proper build for the chip revision you have and also have the proper configurations (the program_qspi_config_win), just make sure that the configurations and the build device matches.

Thanks MT_dialog