December 2, 2013

pyOCD (gdb) and KL25Z

As I wrote yesterday, that everything was working, I run today directly gdb, using elf file. The result? KL25Z got locked, can't flash it anyhow. Need to replace the chip and look into the gdb server implementation, why it caused locking the chip. This confirmed what users reported on mbed site, that it locks the chip.

Here's an output:


Readelf returns from application elf file (simple gpio demo which I used yesterday, but bin file created from this elf file):

ELF Header:
  Magic:   7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00
  Class:                             ELF32
  Data:                              2's complement, little endian
  Version:                           1 (current)
  OS/ABI:                            UNIX - System V
  ABI Version:                       0
  Type:                              EXEC (Executable file)
  Machine:                           ARM
  Version:                           0x1
  Entry point address:               0xc1
  Start of program headers:          52 (bytes into file)
  Start of section headers:          111732 (bytes into file)
  Flags:                             0x5000002, has entry point, Version5 EABI
  Size of this header:               52 (bytes)
  Size of program headers:           32 (bytes)
  Number of program headers:         5
  Size of section headers:           40 (bytes)
  Number of section headers:         23
  Section header string table index: 20

Section Headers:
  [Nr] Name              Type            Addr     Off    Size   ES Flg Lk Inf Al
  [ 0]                   NULL            00000000 000000 000000 00      0   0  0
  [ 1] .isr_vector       PROGBITS        00000000 008000 0000f4 00  AX  0   0  4
  [ 2] .flash_protect    PROGBITS        00000400 008400 000010 00   A  0   0  1
  [ 3] .text             PROGBITS        00000410 008410 006818 00  AX  0   0  8
  [ 4] .ARM.exidx        ARM_EXIDX       00006c28 00ec28 000008 00  AL  3   0  4
  [ 5] .data             PROGBITS        1ffff0c0 00f0c0 0000dc 00  WA  0   0  4
  [ 6] .bss              NOBITS          1ffff19c 00f19c 000154 00  WA  0   0  4
  [ 7] .heap             PROGBITS        1ffff2f0 00f1a0 000080 00      0   0  8
  [ 8] .stack_dummy      PROGBITS        1ffff2f0 00f220 000080 00      0   0  8
  [ 9] .ARM.attributes   ARM_ATTRIBUTES  00000000 00f2a0 000028 00      0   0  1
  [10] .comment          PROGBITS        00000000 00f2c8 0000e0 01  MS  0   0  1
  [11] .debug_info       PROGBITS        00000000 00f3a8 00579f 00      0   0  1
  [12] .debug_abbrev     PROGBITS        00000000 014b47 0011c7 00      0   0  1
  [13] .debug_loc        PROGBITS        00000000 015d0e 000e8a 00      0   0  1
  [14] .debug_aranges    PROGBITS        00000000 016b98 000298 00      0   0  8
  [15] .debug_ranges     PROGBITS        00000000 016e30 0002d0 00      0   0  8
  [16] .debug_line       PROGBITS        00000000 017100 0016d4 00      0   0  1
  [17] .debug_str        PROGBITS        00000000 0187d4 00184b 01  MS  0   0  1
  [18] .debug_frame      PROGBITS        00000000 01a020 0012f0 00      0   0  4
  [19] .stabstr          STRTAB          00000000 01b310 000076 00      0   0  1
  [20] .shstrtab         STRTAB          00000000 01b386 0000ed 00      0   0  1
  [21] .symtab           SYMTAB          00000000 01b80c 002730 10     22 439  4
  [22] .strtab           STRTAB          00000000 01df3c 000e64 00      0   0  1
Key to Flags:
  W (write), A (alloc), X (execute), M (merge), S (strings)
  I (info), L (link order), G (group), T (TLS), E (exclude), x (unknown)
  O (extra OS processing required) o (OS specific), p (processor specific)


Be warned !