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 →

Starting Point for Kinetis Low Power LLS Mode

In “IoT: FreeRTOS Down to the Micro Amps” I’m using an application with FreeRTOS to get down in micro amps low power mode. Well, nearly all or my applications are using FreeRTOS because it makes the application scalable and extensible. Still, for anyone not used to an RTOS, that might be a hard start. So here we go: how to get into the Kinetis Low Power LLS Mode *without* an RTOS.

Power Measurement

Power Measurement

Continue reading →

Variable Debugging with Eclipse Kepler

The current Eclipse Kepler version comes with changes for debugging variables. I have students coming from the earlier Eclipse versions, so here are a few tips for dealing with variables in Eclipse Kepler.

Variables View in Eclipse

Variables View in Eclipse

Continue reading →

Tutorial: Thermal Printer, Part 1: Hardware Setup with FRDM Board

One of my embedded projects is to measure the running time in a sports event (see “Sports Timing System in a Lunch Box“). The recorded time is stored in an EEPROM plus sent over USB or wireless connection to the host. It would be great if I could print out the time and ranking directly, so if there is no PC, the system can be small and tiny. So here is my next project and tutorial: Printing with the Freedom board!

Hello World on the Printer with FRDM-KL25Z

Hello World on the Printer with FRDM-KL25Z

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 →

Processing the Pololu Motor Shaft Encoders

For the first generation of the INTRO Zumo robots, I have Pololu optical wheel encoders (see “Adding Quadrature Encoder to the Zumo Chassis“) which were available last year. It seems that Pololu heard my feedback, and are offering new encoders. Time to move things to the next level, using an optical encoder attached to the motor shaft:

Optical Motor Shaft Encoder

Optical Motor Shaft Encoder

Continue reading →

First Steps with the Freescale TWR-K64F120M

Naturally, I have several project ideas lingering around. No time to make them all (for now). One of it is interfacing the Raspberry Pi camera with a microcontroller. To store the images, I need plenty of RAM on the device, and so far the Kinetis microcontroller did not have that. Finally, Freescale announced the K64F120 a few months back, and my ordered TWR-K64F120M board arrived on my desk, waiting to be used: Finally I get an ARM Cortex-M4F with 1 MByte of FLASH and 256 KByte of RAM :-).

TWR-K64F120M Box

TWR-K64F120M Box

Continue reading →

FreeRTOS V8.0.0 Final Release available as Processor Expert Component

The final FreeRTOS V8.0.0 has been released last week: time to update the Processor Expert component for it, and this time it is really a major release 🙂 : from V7.5.0 to V8.0.0:

FreeRTOS V8.0.0 Processor Expert Component

FreeRTOS V8.0.0 Processor Expert Component

FreeRTOS V8.0.0 comes with many small changes, especially it now includes many of the extra casts I have contributed to avoid compiler warnings. And additionally it has a brand new feature: Event Groups.

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 →

IoT: FreeRTOS Down to the Micro Amps

University research projects can be a lot fun, and are very challenging the same time. The good thing is that there is always someting new to learn :-).

This week-end I was working on my Internet of Things (IoT) project, based on a Freescale KL15Z and a nRF24L01+ transceiver. In essence it is a wireless data logger. For this, I only can afford a few micro amps consumed by the whole board over an extended period of time. I mean 21 micro amps for running a whole board with sensor, EEPROM, wireless transceiver, operating system and an ARM Cortex-M0+ ready to crunch numbers at 20 MHz 🙂

21 micro amps for wireless sensor node

21 micro amps for wireless sensor node (when not sending)

Continue reading →