Comments (8)
As @rahealy already pointed out, this is currently not possible.
While it would be possible to come up with a software solution, e.g. implementing a GDB Remote Serial Protocol server in an EL > EL1, this is unfortunately out of the scope for now.
It would be a fun project, but given that JTAG adapters are quite affordable, not worth pursuing in light of the effort that would be needed.
from rust-raspberrypi-os-tutorials.
Yes. https://github.com/rust-embedded/rust-raspi3-OS-tutorials#-usb-serial-output
from rust-raspberrypi-os-tutorials.
That is useful to do booting via USB. My question was regarding debugging using GDB.
from rust-raspberrypi-os-tutorials.
AFAIK the RPi's JTAG is implemented at the transistor level in the hardware. As a result JTAG requires a JTAG adapter - either built from plans found on the internet and/or hacked together and/or purchased from a dealer like Olimex.
You also might consider emulation using the qemu target in the tutorial's Makefile. Please see this comment #45 (comment) for an example of how to modify the 12_cpu_exceptions_part1 tutorial to connect an instance of gdb-multiarch
to qemu running in the docker image provided by the tutorial's author @andre-richter.
If you have questions about my alterations to 12_cpu_exceptions_part1 please feel free to ask in the comments section of the commit.
from rust-raspberrypi-os-tutorials.
@vinaychandra Forgot to mention: The reason I answered yes to your original question is that your programs can read/write to the RPi UART and send debug info over the serial->USB converter to a computer running a terminal emulator like PuTTY.
from rust-raspberrypi-os-tutorials.
Thanks for the info! Yes, while I do understand that we can send random debug info over UART, I am looking more for gdb support over USB so that breakpoints and watches would work. I also do understand that qemu is an option, but I wanted to see if it is possible to do breakpoint debugging over USB/UART
from rust-raspberrypi-os-tutorials.
@vinaychandra I did some research. The Arm® Architecture Reference Manual
Armv8, for Armv8-A architecture profile chapter D2 AArch64 Self-hosted Debug describes the hardware debugging goodies for the ARM cores on the RPi3 SoC. So it might be possible. Has anyone written a crate that you can just add as a dependency and begin debugging? I don't know.
from rust-raspberrypi-os-tutorials.
Closing for now since this feature is not on the agenda for the near future.
from rust-raspberrypi-os-tutorials.
Related Issues (20)
- error[E0463]: can't find crate for `core` HOT 2
- Complete Chinese Translation HOT 3
- I want to know about other microcontrollers, you can refer to this example HOT 3
- Pure rust chainboot HOT 1
- Cannot start to work with this repo
- error: linker `cc` not found [Makefile:123: target/aarch64-unknown-none-softfloat/release/kernel] Error 101 HOT 1
- chapter 6 can not get correct output, stuck at: [ML] Requesting binary HOT 1
- everything seems to work fine but I cant input anything HOT 3
- Miniterminal not working on Raspberry pi 4 HOT 1
- ICR management question
- Error regarding Github CI/CD HOT 3
- Depracated link in The tl;dr Version subsection of README.md file HOT 2
- Invalid links in 11_exceptions_part1_groundwork/README.md HOT 2
- Consider generating these documents into a website
- Plans for even more embedded devices
- Please Change README HOT 2
- Why use Makefile handle build process? HOT 1
- Currently porting to RISC-V
- What determines the value of GPIO_PUP_PDN_CONTR_REG ?
- Problem setting up the MacOS environment, the serialport gem is not maintained. HOT 6
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rust-raspberrypi-os-tutorials.