Mastering interrupts is critical to make an embedded application reentrant. The challenge with reentrancy is that things might be implemented in a wrong way and the issue might just show up sporadically (see “EnterCritical() and ExitCritical(): Why Things are Failing Badly“). The ARM Cortex interrupt controller is named NVIC (Nested Vectored Interrupt Controller).
Tag Archives: Debugging
SWD Debugging the FRDM-KL43Z
It is possible to use the Freescale FRDM-KL43Z to debug another board (see “Using the Freescale Freedom (FRDM-KL43Z) to Debug other Boards“). The FRDM-KL43Z has an on-board debug probe integrated, the OpenSDA. But it is easily possible to debug the board directly with a SWD debug probe like the P&E Universal Multilink or the Segger J-Link.
FreeRTOS ARM Thread Debugging with Eclipse and GDB
FreeRTOS is probably the most popular RTOS used and I love it: it is efficient, has a lot of features, simple and easy to use. But despite its popularity, debugging it with open source tools as with Eclipse and GDB is really not that user-friendly: debugging threads/tasks is a pain compared to commercial solutions. For my university classes this semester I was looking for something easy to use by my students. Finally I managed to use a GDB helper which makes things easier now: I can switch task threads in Eclipse with GDB now 🙂
Freescale CMSIS-SVD Register Files with Eclipse MARS and EmbSysRegView
In “How to Add Register Details View in Eclipse” I showed how to add the Register detail support in Eclipse using the EmbSysRegView plugin. This was for Luna/Mars, and for the version v0.2.4 of the plugins.
Since then, there is a new version of Eclipse (MARS, see “Going to Mars: Building a DIY Eclipse IDE for ARM Embedded Microcontrollers“) and the EmbSysRegView plugin has been updated to v2.0.5. Makes everything much simple, so here is an updated post with the details how to add register detail view to Eclipse Mars.
Using FRDM-K64F Board to debug another Kinetis Board
Given all the posts I already have published on a similar topic, this one will be a short one: how to use the Freescale FRDM-K64F board with OpenSDAv2 to debug another board:
Going to Mars: Building a DIY Eclipse IDE for ARM Embedded Microcontrollers
It has been a while since I published my ‘build my own DIY IDE’ (see “DIY Free Toolchain for Kinetis: Part 1 – GNU ARM Build Tools“). I have used that approaches in my classes successfully. Now a new semester is coming up, so time to update the instructions using the latest Eclipse IDE (Mars) and tools (GCC ARM Embedded (launchpad) with GNU ARM Eclipse).
Better Debugging with Eclipse: Step Into Selection
Some might say that Eclipse is too powerful and has too many features. But to me, the many small and somehow hidden gems can make a big difference in my daily life. One of these features is ‘Step Into Selection’ while debugging.
Very often I have a source line with nested function calls like this:
Programming Kinetis with CodeWarrior from the DOS Shell
In “CodeWarrior Flash Programming from a DOS Shell” I showed how to program a device from the DOS shell. Because that example was for ColdFire and CodeWarrior for MCU10.2, here is the same for a Kinetis (FRDM-KL25Z) and CodeWarrior for MCU10.6. In my workspace (c:\tmp\wsp_10.6) I have a project folder (FRDM-KL25Z).
I’m using the ‘Flash Programmer’ to sneak the needed commands:
Updating Segger Tools in Eclipse Kinetis Design Studio
Segger releases often new application and firmware updates. If I install an IDE like the Freescale Kinetis Design Studio, it comes with that firmware version available at that time. How to take advantage of a new Segger release?
Batch Programming with GDB: Segger J-Link and P&E Multilink
I need to program several boards with a firmware: a number too small for serious batch/factory programming, but a number too high doing this with the debugger. I want this:
- Connect the board with the debug probe and power it
- Run a script to flash the program and run it
- Disconnect and restart step 1.









