Constructing a Classroom IDE with Eclipse for ARM

For the next semester I will do things differently in my advanced embedded systems programming course (INTRO) at the University of Lucerne: Instead of using the Freescale provided CodeWarrior, we will use a DIY tool chain for ARM with Eclipse Kepler.

Eclipse Kepler Ready for Classroom Usage

Eclipse Kepler Ready for Classroom Usage

That way we we can offer students an open and convenient tool chain for their lab work, course assignments and own projects both at work and at home. So this post is about spending about 30 minutes to build your own tool chain which then can passed to students and coworkers so they have a complete toolchain installed in a few minutes.

Continue reading

Printing Code Size Information in Eclipse

For the GNU ARM tools it is easy to print out the code and date size information, see

But this is all for ARM cores. What if I use other architectures like S08 or ColdFire in Eclipse?

Code Size Information in Build Console

Code Size Information in Build Console

Continue reading

Binary (and S19) Files for the mbed Bootloader with Eclipse and GNU ARM Eclipse Plugins

The existing OpenSDAv1 (see “OpenSDA on the Freedom KL25Z Board“) bootloader is using the industry standard Motorola S-Record (S19) Files. However, new FRDM-K64F board (see “FTF: FRDM-K64F, Kinetis Design Studio and Kinetis SDK“) has OpenSDAv2 on it, which is an mbed bootloader. So how to create files with an IDE other than mbed for that bootloader which is present on the FRDM-K64F board by default? Well, creating binary files is one thing, but to have it working with the mbed bootloader is another challenge :-(.

FRDM-K64F with mbed MSD bootloader

FRDM-K64F with mbed MSD bootloader

Continue reading

Using the FRDM-K64F with CodeWarrior

The new flagship of FRDM boards is the FRDM-K64F board. After FTF I have explored different ways debugging the board, and received many comments and questions about it (thanks!). Freescale announced the supports with the new Eclipse based Kinetis Design Studio (KDS). But until KDS is out, how can I use the FRDM-K64F board with CodeWarrior?

Debugging FRDM-K64F Board with CodeWarrior for MCU v10.6

Debugging FRDM-K64F Board with CodeWarrior for MCU v10.6

Continue reading

GNU Linker, can you NOT Initialize my Variable?

my students sometimes are afraid to ask questions, although I urge them ask any question. In my opinion there are no ‘dumb’ questions: only questioning things let us think and learn new things. I see that many readers of this blog are *not* afraid to comment or ask questions. The WordPress statistics shows 5’687 questions/comments for this blog (thank you all!), and the spam filter protected me from 202,341 items (ok, these *are* dumb) :-).

The ‘question of the week’ comes from Andy. That question caused me some serious head scratching, but the same time I have learned something important and useful for my next project: how to tell the ARM GNU linker *not* to initialize variables?

GNU ARM Embedded Linker Options

GNU ARM Embedded Linker Options

Continue reading

Tutorial: User Interrupts with Processor Expert

I have been asked this question several times:

“How can I define my own interrupt vector with Processor Expert?”

So I think it deserves a short tutorial, if more than one person is asking this ;-).

My user interrupt in the vector table

My user interrupt in the vector table

Continue reading

GNU Additional Tools: Create Flash Image, Print Size and Extended Listing Options

One question I have been asked several times here at FTF:

“How can I create an S19/Motorola S-Record with Eclipse?”

The answer depends on which Eclipse you are using. Actually it depends on which (ARM) build  tools plugin you are using, as with Eclipse you have the freedom of choice.

And this is not only about S19/Binary (Flash Image), but covers ‘Extended Listing’ and ‘Print Size’:

Additional Tool Options

Additional Tool Options

Continue reading

FreeRTOS, malloc() and SP check with GNU Tools

FreeRTOS has many memory allocation options (see Memory Management) with four ‘schemes’. One of it is the a simple wrapper over the library malloc() and free() routines. I admit, I have not used them, as usually I avoid to include such kind of libraries, as they have their own problems. Anyway, a discussion in the FreeRTOS forum raised my interest: obviously some malloc() implementation (as in the EWL library of CodeWarrior) are making a safety check against the current stack pointer.

Continue reading

Generating Static FreeRTOS Source Code

Using Processor Expert is an awesome tool: it generates source code for me, and I can can ‘dynamically’ tune my projects to my needs. Still, sometimes it is better or desirable to have a ‘normal’ or ‘static’ project. This is very well possible with Processor Expert (see “Sneaking from Processor Expert” or “Disable my Code Generation“): I can generate the code one time, and then use it without Processor Expert.

To make this even easier, I have added an option to the FreeRTOS Processor Expert component to generate ‘static’ code I can copy-paste to projects and tool chains which are either not supported by Processor Expert, or just for ‘static’ projects.

FreeRTOS Custom Port Settings

FreeRTOS Custom Port Settings

Continue reading

DIY Free Toolchain for Kinetis: Part 10 – Project Creation with GNU ARM Eclipse 2.1.1

As mentioned in Part 9: There is a new GNU ARM Eclipse plugin 2.1.1, and this one makes project creation for Freescale devices easier than ever 🙂

  • Native Kinetis-L project templates for FRDM-KL25Z and FRDM-KL46Z boards
  • Easier than ever project creation for Processor Expert projects
GNU ARM Eclipse 2.1.1

GNU ARM Eclipse 2.1.1

Continue reading