Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Debug have some problems "unknown command: arm " #111

Open
adminSxs opened this issue Mar 11, 2022 · 1 comment
Open

Debug have some problems "unknown command: arm " #111

adminSxs opened this issue Mar 11, 2022 · 1 comment

Comments

@adminSxs
Copy link

adminSxs commented Mar 11, 2022

Os: win10
toolchain: stable-x86_64-pc-windows-msvc

config.toml

[target.thumbv7m-none-eabi]
# uncomment this to make `cargo run` execute programs on QEMU
runner = "qemu-system-arm -cpu cortex-m3 -machine lm3s6965evb -nographic -semihosting-config enable=on,target=native -kernel"

[target.'cfg(all(target_arch = "arm", target_os = "none"))']
# uncomment ONE of these three option to make `cargo run` start a GDB session
# which option to pick depends on your system
 runner = "arm-none-eabi-gdb -q -x openocd.gdb"
# runner = "gdb-multiarch -q -x openocd.gdb"
# runner = "gdb -q -x openocd.gdb"

rustflags = [
  # This is needed if your flash or ram addresses are not aligned to 0x10000 in memory.x
  # See https://github.com/rust-embedded/cortex-m-quickstart/pull/95
  "-C", "link-arg=--nmagic",

  # LLD (shipped with the Rust toolchain) is used as the default linker
  "-C", "link-arg=-Tlink.x",

  # if you run into problems with LLD switch to the GNU linker by commenting out
  # this line
  # "-C", "linker=arm-none-eabi-ld",

  # if you need to link to pre-compiled C libraries provided by a C toolchain
  # use GCC as the linker by commenting out both lines above and then
  # uncommenting the three lines below
  # "-C", "linker=arm-none-eabi-gcc",
  # "-C", "link-arg=-Wl,-Tlink.x",
  # "-C", "link-arg=-nostartfiles",
]

[build]
# Pick ONE of these compilation targets
# target = "thumbv6m-none-eabi"        # Cortex-M0 and Cortex-M0+
target = "thumbv7m-none-eabi"        # Cortex-M3
# target = "thumbv7em-none-eabi"       # Cortex-M4 and Cortex-M7 (no FPU)
# target = "thumbv7em-none-eabihf"     # Cortex-M4F and Cortex-M7F (with FPU)
# target = "thumbv8m.base-none-eabi"   # Cortex-M23
# target = "thumbv8m.main-none-eabi"   # Cortex-M33 (no FPU)
# target = "thumbv8m.main-none-eabihf" # Cortex-M33 (with FPU)

I follow embedded book https://doc.rust-lang.org/stable/embedded-book/start/qemu.html
cargo build success, but i want to dbg, i use arm-none-eabi-gdb -q -x openocd.gdb

warning: No executable has been specified and target does not support                                           
determining executable automatically.  Try using the "file" command. 
0x00000464 in ?? ()                                                  
No symbol table is loaded.  Use the "file" command.                                                    
Make breakpoint pending on future shared library load? (y or [n]) [answered N; input not from terminal]
No symbol table is loaded.  Use the "file" command.                                                    
Make breakpoint pending on future shared library load? (y or [n]) [answered N; input not from terminal]
No symbol table is loaded.  Use the "file" command.                                                    
Make breakpoint pending on future shared library load? (y or [n]) [answered N; input not from terminal]
No symbol table is loaded.  Use the "file" command.                                                    
Make breakpoint pending on future shared library load? (y or [n]) [answered N; input not from terminal]
unknown command: 'arm'
.\openocd.gdb:37: Error in sourced command file:
No executable file specified.
Use the "file" or "exec-file" command.


@jonathanpallant
Copy link

jonathanpallant commented Mar 11, 2022

The runners get the ELF file added to the command line arguments automatically. It appears you ran GDB by hand but didn't specify the path to the ELF file. Hence the error "No executable has been specified".

Either:

$ cargo run

Or

$ arm-none-eabi-gdb -q -x openocd.gdb ./target/thumbv7m-none-eabi/debug/<your-crate-name>

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants