


The line-by-line execution of code almost always maps to lines in the user’s C code. When the execution is paused, the debugger also allows the user to peek at the contents of the central processing unit (CPU) and peripheral registers for the microcontroller. Many microcontroller development boards are equipped with in-circuit debuggers (Figure 1), allowing the developer to set breakpoints, pause execution, and run their code line-by-line in their integrated development environment (IDE).įigure 1. Like many other development boards, the MSP-EXP432P4111 LaunchPad from Texas Instruments (TI) includes an in-circuit debugger.

This is theoretically true however, the debugging advantage afforded by knowing assembly language rarely materializes in practice. Ultimately, my aim is to help you, the reader, decide whether or not your specific situation warrants learning or teaching how to program in assembly language.ĭoes Assembly Language Make Debugging Software Easier? In this article, I'll try to objectively support or refute the typical answers to this question that are found on software development forums and other web outlets. “Should I learn assembly language for embedded software development?” Nevertheless, every time we progress to the unit of the course where we revert for a few weeks from C language to assembly language, I approach Google and ask: In developing the curriculum for my course, I have tried to prioritize the practice of marketable skills (to some extent), but a university course should also provide more depth than a tech boot camp. Given the wealth of topics relevant to embedded systems, how much emphasis should I place on assembly language?Ī single 15-week semester isn’t long enough to accommodate a complete treatment of all relevant topics on the subject of embedded systems. Every year, I teach a course about embedded systems to engineering and computer science students, and I wrestle with the same question each time.
