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:16Script 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.300VSleep(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 -> 07FD0000Writing 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 = 00Script processing completed.
Write executable failed: invalid image format (-340)
cli_programmer 1.22
Copyright (c) 2016 Dialog Semiconductorbootloader 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
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:
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
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