ld.lld: error: no memory region specified for section '.ARM.exidx'
clang: error: ld.lld command failed with exit code 1 (use -v to see invocation)
make: *** [Makefile:26: led.elf] エラー 1
.text : {
__logical_binary_start = .;KEEP (*(.vectors))KEEP (*(.binary_info_header))
__binary_info_header_end = .;KEEP (*(.reset))/* TODO revisit this now memset/memcpy/float in ROM *//* bit of a hack right now to exclude all floating point and time critical (e.g. memset, memcpy) code from * FLASH ... we will include any thing excluded here in .data below by default */
*(.init)
*(EXCLUDE_FILE(*libgcc.a: *libc.a:*lib_a-mem*.o *libm.a:).text*)
*(.fini)/* Pull all c'tors into .text */
*crtbegin.o(.ctors)
*crtbegin?.o(.ctors)
*(EXCLUDE_FILE(*crtend?.o *crtend.o).ctors)
*(SORT(.ctors.*))
*(.ctors)/* Followed by destructors */
*crtbegin.o(.dtors)
*crtbegin?.o(.dtors)
*(EXCLUDE_FILE(*crtend?.o *crtend.o).dtors)
*(SORT(.dtors.*))
*(.dtors)
*(.eh_frame*). = ALIGN(4);
} > FLASH
/** * Binary info is intended for embedding machine readable information with the binary in FLASH. * * Example uses include: * * - Program identification / information * - Pin layouts * - Included features * - Identifying flash regions used as block devices/storage */
/* .stack*_dummy section doesn't contains any symbols. It is only * used for linker to calculate size of stack sections, and assign * values to stack symbols later * * stack1 section may be empty/missing if platform_launch_core1 is not used *//* by default we put core 0 stack at the end of scratch Y, so that if core 1 * stack is not used then all of SCRATCH_X is free. */.stack1_dummy (COPY):
{
*(.stack1*)
} > SCRATCH_X
.stack_dummy (COPY):
{
*(.stack*)
} > SCRATCH_Y
.flash_end : {
__flash_binary_end = .;
} > FLASH
/* stack limit is poorly named, but historically is maximum heap ptr */
__StackLimit = ORIGIN(RAM) + LENGTH(RAM);
__StackOneTop = ORIGIN(SCRATCH_X) + LENGTH(SCRATCH_X);
__StackTop = ORIGIN(SCRATCH_Y) + LENGTH(SCRATCH_Y);
__StackOneBottom = __StackOneTop - SIZEOF(.stack1_dummy);
__StackBottom = __StackTop - SIZEOF(.stack_dummy);PROVIDE(__stack = __StackTop);
/* Check if data + heap + stack exceeds RAM limit */ASSERT(__StackLimit >= __HeapLimit, "region RAM overflowed")
ASSERT( __binary_info_header_end - __logical_binary_start <= 256, "Binary info must be in first 256 bytes of the binary")
/* todo assert on extra code */
$ gdb-multiarch -x pico.gdbinit led.elf
... (snip) ...
Type "apropos word" to search for commands related to "word"...
Reading symbols from led.elf...
0x20000116 in main () at main.c:83
83 for (int i = 100000; i != 0; i--) ;
target halted due to debug-request, current mode: Thread
xPSR: 0xf1000000 pc: 0x000000ee msp: 0x20041f00
target halted due to debug-request, current mode: Thread
xPSR: 0xf1000000 pc: 0x000000ee msp: 0x20041f00
Loading section .text, size 0x158 lma 0x20000000
Start address 0x20000000, load size 344
Transfer rate: 2752 bits in <1 sec, 344 bytes/write.
(gdb)
(gdb) b main
(gdb) c
continuing.
Note: automatically using hardware breakpoints for read-only addresses.
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x00000178 msp: 0x20041f00
Thread 1 hit Breakpoint 1, main () at /home/mickey/work/rpi_pico/pico/pico-examples/blink/blink.c:9
9 int main()