McuOnEclipse Components: 17-Oct-2015 Release

On SourceForge I have published an update of the McuOnEclipse software components, with following major changes:

  1. FreeRTOS updated to version V8.2.2 which comes with TLS (Thread Local Storage) support and GDB debug helpers.
  2. Percepio Trace updated to V3.0.2 with the release of Segger Real Time Terminal (RTT) for continuous trace streaming.
  3. FSL_USB_Stack with alternate USB initialization to deal with an issue in combination with the Kinetis SDK v1.3.0
  4. GenericI2C and GenericSWI2C have added support for custom I2C bus handling.

    McuOnEclipse SourceForge Release 2015-10-17

    McuOnEclipse SourceForge Release 2015-10-17

Continue reading

Learning from Failure: QFN Package Corner Problem

Every day, there is something new to learn. And having problems is always a good learning opportunity :-). Yesterday we were able to find a strange problem with our tinyK20 prototypes, just before we were about to send the design for manufacturing.

Kinetis K20 on tinyK20 Board

Kinetis K20 on tinyK20 Board

Continue reading

Aligning S19 Records to 64-bit Boundaries

Many tool chains and linker are able to produce S19 files, such as with the GNU tools it is the ‘objcopy‘ which does this job (see “Binary (and S19) Files for the mbed Bootloader with Eclipse and GNU ARM Eclipse Plugins“). But these tools usually cannot handle the special cases. For example on the Freescale Kinetis K64F my serial bootloader (see “Serial Bootloader for the Freedom Board with Processor Expert“) had a problem with these lines in the S19 file:

Not aligned S19 file entries

Not aligned S19 file entries

Continue reading

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.

Eclipse Mars

Eclipse Mars

Continue reading

Using Precompiled Headers with GNU gcc in Eclipse

Some of my robotics projects take a rather long time do a full build. When I developed applications with Visual C++ on the host, using precompiled headers gave me a big boost in compilation speed. I was looking for the same in similar with GNU and gcc, and as expected: gcc does support precompiled headers too. And indeed, I was able to cut down compilation time by 30% :-). So this post is about how to use gcc with precompiled headers in Eclipse/CDT to give my builds a boost.

using precompiled header

using precompiled header

Continue reading

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).

Eclipse Mars Splash Screen

Eclipse Mars Splash Screen

Continue reading

Tutorial: Using GNU Profiling (gprof) with ARM Cortex-M

I have published a Sneak Preview how GNU gprof profiling looks for an embedded target ARM Cortex-M in an earlier post:

Freescale Kinetis Microcontroller Application Profiling
Freescale Kinetis Microcontroller Application Profiling

This tutorial explains how to profile an embedded application (no RTOS needed) on ARM Cortex-M devices with GNU gprof. Additionally I explain the inner workings to generate the data necessary for gprof.

Continue reading

GNU Static Stack Usage Analysis

Stack overflows are a big problem: If I see a system crash, the first thing usually is I try to increase the stack size to see if the problem goes away. The GNU linker can check if my global variables fit into RAM. But it cannot know how much stack I need. So how cool would it be to have a way to find out how much stack I need?

Static Stack Usage Analysis with GNU

Static Stack Usage Analysis with GNU

And indeed, this is possible with the GNU tools (e.g. I’m using it with the GNU ARM Embedded (launchpad) 4.8 and 4.9 compilers :-). But it seems that this ability is not widely known?

Continue reading

Using the Freescale Freedom (FRDM-KL43Z) to Debug other Boards

In “Unboxing the Freescale FRDM-KL43Z Board” I was using the FRDM-KL43Z board the first time. The FRDM-KL43Z board has an on-board debug interface (Kinetis K20, OpenSDA). In this post I show how to use the FRDM-KL43Z board to debug another ARM board.

FRDM-KL43Z Board debugging custom (tinyK20) Board

FRDM-KL43Z Board debugging custom (tinyK20) Board

Continue reading