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 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:

FRDM-K64F Board to Debug FRDM-KL25Z Board

FRDM-K64F Board to Debug FRDM-KL25Z Board

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

New in Eclipse Mars: Launchbar

In “Going to Mars: Building a DIY Eclipse IDE for ARM Embedded Microcontrollers” I described how to install an Eclipse based IDE for ARM, based on Eclipse Mars (4.5) and CTD (8.7). There are many great new features in Eclipse Mars which makes that switch worthwhile: the Launchbar:

Launchbar in Eclipse Mars

Launchbar in Eclipse Mars

A dream is are now a reality: a really, really easy way to build, run/debug an application!

Continue reading

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:

Nested Functions

Nested Function Calls

Continue reading

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:

Sneaking Commands from Flasher

Sneaking Commands from Flasher

Continue reading

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?

Segger Download Page

Segger Download Page

Continue reading

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:

  1. Connect the board with the debug probe and power it
  2. Run a script to flash the program and run it
  3. Disconnect and restart step 1.
First set of sensor nodes with two programming adapters

Need to program a few boards…

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