Home > On-Demand Archives > Talks >

Instrumenting Embedded Applications

Dave Marples - Watch Now - Duration: 45:10

Instrumenting Embedded Applications
Dave Marples
On the desktop, everyone learns to observe what their program is doing using print statements and logging. Embedded systems aren't amenable to such approaches because they run in real-time and don't have screens or memory to spare for logs, so new techniques need to be applied. Fortunately, modern CPUs provide surprisingly rich facilities for meeting these needs. In this presentation, we will introduce a range of these capabilities, from a novel twist on the simple flashing LED progressing all the way to full post-mortem instruction trace.
M↓ MARKDOWN HELP
italicssurround text with
*asterisks*
boldsurround text with
**two asterisks**
hyperlink
[hyperlink](https://example.com)
or just a bare URL
code
surround text with
`backticks`
strikethroughsurround text with
~~two tilde characters~~
quote
prefix with
>

Zeke
Score: 0 | 9 hours ago | no reply

I really enjoyed this conference!! Hopefully we can have more from you. Thanks a lot

RaulPando
Score: 0 | 7 months ago | 1 reply

Hi Dave,
I found your presentation very informative, very exciting tools with a lot of potential! Making tracing accessible to newcomers/students will be a great investment for the industry.
Looking forward to getting hold of an Orbtrace mini :D (Checking Zyp's store regularly)

DaveSpeaker
Score: 0 | 7 months ago | no reply

Hi,
Thanks for the kind words. We have a huge distance left to travel, but at least we've started the journey new and the tools we already have available are genuinely useful...hopefully folks will build on those to delivery some nicely differentiated capabilities.

Nathan3
Score: 0 | 7 months ago | 1 reply

Thanks for the presentation. Feels like a dream come true ! Proper unintrusive trace has always been one of the missing tool in my embedded software engineer toolkit. I guess I'll have to try out Orboculum now !
Can you shed a bit more light on which features require ORBTrace, ? and which can work with any debug probe (like J-Link or maybe ST-Link) ? I am currently using Segger RTT over 2 channels on a project : one channel for a CLI interface, another for logging messages. Segger's own tools in this case don't even support displaying properly both channels, I have to go through a custom Python script to exploit that. Maybe I could switch to using SWO and Orbuculum ;)

DaveSpeaker
Score: 0 | 7 months ago | no reply

Hi Nathan,
The SWO link is unidirectional - from the target to the host, but that's generally the important direction of data transfer anyway. JLink and STLink will both terminate SWO and (at least for the JLink case) has been tested with Orbuculum, so you should be good to go.
If you want a proper bidirectional CLI then you can use a SWO channel for the target-to-host and write to a known memory location on the target (anywhere, as long as it's known) and trigger an otherwise unused interrupt by writing to the NVIC to collect the downlink data....obviously that side will need to be done from the debugger, so you can use the control interface of JLink or some gdb magic to do that... Sounds like the perfect job for a few lines of Python :-)

Good luck! Ping us on the discord if you get stuck.

OUR SPONSORS