Skip to content

GDB Load Failed Due to Invalid memory.x Flash Layout #102

Open
@martinomburajr

Description

@martinomburajr

Description

In the Hardware > Configuring section of the Rust Embedded Book, the FLASH : ORIGIN value is set to 0x08000000. However in the memory.x file, the value is set to 0x00000000.

FLASH : ORIGIN = 0x00000000, LENGTH = 256K

This is a very subtle difference but leads to the following error:

$ arm-none-eabi-gdb -q target/thumbv7em-none-eabihf/debug/examples/hello        
Reading symbols from target/thumbv7em-none-eabihf/debug/examples/hello...
(gdb) target remote :3333
Remote debugging using :3333
cortex_m_semihosting::export::hstdout_fmt (args=...) at /Users/martinomburajr/.cargo/registry/src/github.com-1ecc6299db9ec823/cortex-m-semihosting-0.3.7/src/export.rs:44
44	    interrupt::free(|_| unsafe {
(gdb) load
Loading section .vector_table, size 0x400 lma 0x0
Loading section .text, size 0x1134 lma 0x400
Load failed

After changing the value to FLASH : ORIGIN = 0x08000000, LENGTH = 256 the program works as expected.

This was pointed out in a Reddit Post last year.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions