Listen here: embedded.fm/episodes/484
Here's a quote from the show:
Thank you to Memfault for sponsoring the show!
#engineering #embedded #skills #badges #semihosting
Listen here: embedded.fm/episodes/484
Here's a quote from the show:
Thank you to Memfault for sponsoring the show!
#engineering #embedded #skills #badges #semihosting
Listen here: embedded.fm/episodes/484.
Here's Elecia and Chris on pointers as optimization:
#transcript #engineering #embedded #skills #badges
Listen here: embedded.fm/episodes/484.
Here's Elecia and Chris on pointers as optimization:
#transcript #engineering #embedded #skills #badges
Listen here: embedded.fm/episodes/484.
Here they're on strategies for exploring new code bases:
Thank you to Memfault for sponsoring the show!
Listen here: embedded.fm/episodes/484.
Here they're on strategies for exploring new code bases:
Thank you to Memfault for sponsoring the show!
You can read the show's transcript here: embedded.fm/transcripts/... .
#transcript #engineering #embedded #semihosting
You can read the show's transcript here: embedded.fm/transcripts/... .
#transcript #engineering #embedded #semihosting
Listen here: embedded.fm/episodes/484 or anywhere you get your podcast.
#semihosting #skillstree #embedded #engineering #code
Listen here: embedded.fm/episodes/484 or anywhere you get your podcast.
#semihosting #skillstree #embedded #engineering #code
I used arm-none-eabi-gdb to flash the device and cortex_m_semihosting with openocd for logging - mostly what is documented here docs.rs/cortex-m-sem...
Not great tbh, the feedback loop is pretty slow. I saw now probe.rs so I might give that a go one day.
I used arm-none-eabi-gdb to flash the device and cortex_m_semihosting with openocd for logging - mostly what is documented here docs.rs/cortex-m-sem...
Not great tbh, the feedback loop is pretty slow. I saw now probe.rs so I might give that a go one day.
Like Semihosting, it operates over your existing SWD/JTAG connection, so no additional HW needed. However it uses a more efficient technique (a ringbuffer on your MCU memory) to have much better performance.
Like Semihosting, it operates over your existing SWD/JTAG connection, so no additional HW needed. However it uses a more efficient technique (a ringbuffer on your MCU memory) to have much better performance.
The downside is it requires debugger HW support (the cheap ones usually don't), or a separate fast USB-UART.
The downside is it requires debugger HW support (the cheap ones usually don't), or a separate fast USB-UART.
From a plus side: It's very easy to implement, and if you have a JTAG/SWD debugger, you don't need a separate serial port! All these messages just go through the debugger.
From a plus side: It's very easy to implement, and if you have a JTAG/SWD debugger, you don't need a separate serial port! All these messages just go through the debugger.
* Semihosting
* ITM/SWO
* RTT
* Memoized logging
* Deferred Formatting
* Semihosting
* ITM/SWO
* RTT
* Memoized logging
* Deferred Formatting
You can use semihosting on any ARM CPU to send and receive data in a few lines of code. Click here to see an example implementation on a 10p “disposable” microcontroller. There are many ways to debug embedded projects. For high speed stuff, you might toggle a pin at the…
You can use semihosting on any ARM CPU to send and receive data in a few lines of code. Click here to see an example implementation on a 10p “disposable” microcontroller. There are many ways to debug embedded projects. For high speed stuff, you might toggle a pin at the…
I've consistently found firmware with semihosting to run too slow for anything except playing around. I tough cases, I use gdb breakpoint scripts.
I've consistently found firmware with semihosting to run too slow for anything except playing around. I tough cases, I use gdb breakpoint scripts.
L: https://bogdanthegeek.github.io/blog/insights/jlink-rtt-for-the-masses/
C: https://news.ycombinator.com/item?id=45244601
posted on 2025.09.14 at 20:00:17 (c=0, p=3)
L: https://bogdanthegeek.github.io/blog/insights/jlink-rtt-for-the-masses/
C: https://news.ycombinator.com/item?id=45244601
posted on 2025.09.14 at 20:00:17 (c=0, p=3)
I've always found semihosting to be a useful tool for enhancing the embedded development workflow. In this post, I explore the Zephyr built-in RISC-V support on the ESP32-C3.
https://danielmangum.com/posts/risc-v-bytes-semihosting-zephyr-esp32/
I've always found semihosting to be a useful tool for enhancing the embedded development workflow. In this post, I explore the Zephyr built-in RISC-V support on the ESP32-C3.
https://danielmangum.com/posts/risc-v-bytes-semihosting-zephyr-esp32/
https://bogdanthegeek.github.io/blog/insights/jlink-rtt-for-the-masses/
https://bogdanthegeek.github.io/blog/insights/jlink-rtt-for-the-masses/
網站架設在一次性電子菸上 http://ewaste.fka.wtf/
作者描述了一個別出心裁的實驗:他將一個一次性電子菸改造成一台能夠運行網站的迷你伺服器。起初,他只是收集朋友與家人丟棄的電子菸,用來回收電池。但隨著產品日漸複雜,他發現裡頭搭載了相當完整的微控制器,例如基於 ARM Cortex-M0+ 的 PUYA PY32 系列晶片,內含 24KB 的快閃記憶體與 3KB RAM。雖然這樣的規格乍看極其有限,但作者決定挑戰讓它承載一個能連上網的網站。
為了實現這個計畫,他透過 semihosting 技術讓微控制器能和主機互動,並利用 SLIP […]
網站架設在一次性電子菸上 http://ewaste.fka.wtf/
作者描述了一個別出心裁的實驗:他將一個一次性電子菸改造成一台能夠運行網站的迷你伺服器。起初,他只是收集朋友與家人丟棄的電子菸,用來回收電池。但隨著產品日漸複雜,他發現裡頭搭載了相當完整的微控制器,例如基於 ARM Cortex-M0+ 的 PUYA PY32 系列晶片,內含 24KB 的快閃記憶體與 3KB RAM。雖然這樣的規格乍看極其有限,但作者決定挑戰讓它承載一個能連上網的網站。
為了實現這個計畫,他透過 semihosting 技術讓微控制器能和主機互動,並利用 SLIP […]
// need to disable semihosting to run outside of openocd + gdb
// use cortex_m_semihosting::hprintln;
// dummy hprintln
#[macro_export]
macro_rules! hprintln {
( $( $x:expr ),* ) => {
}
}
```
github.com/lucasw/misc_...
// need to disable semihosting to run outside of openocd + gdb
// use cortex_m_semihosting::hprintln;
// dummy hprintln
#[macro_export]
macro_rules! hprintln {
( $( $x:expr ),* ) => {
}
}
```
github.com/lucasw/misc_...
stackoverflow.com/a/70492258/6...
stackoverflow.com/a/70492258/6...