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 ;-).
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 ;-).
There has been a lot of new Freescale releases recently around FTF, and I’m trying to catch up. For me as a Processor Expert Lover, it is good news that there is now the new version 10.4 available. And it comes in different ways:
For my embedded course at the University of Lucerne of Applied Sciences and Arts I needed more Bluetooth modules for the Zumo/Sumo robots. I run out of stock as the modules are getting popular and are used in many student projects. So I ordered a handful more from DX/DealExtreme of the same HC-06 type/part number I already ordered a while back. I expected that they will work as the modules I had ordered from DX half a year ago. Was that naïve? Probably. Because they did *not* work, and caused me to reverse engineer the modules and to apply a hardware fix to get them working….
The great thing with Processor Expert is: it writes the code for me :-). I’m using now the RNet wireless stack in more than 10 different projects, and keeping the projects up-to-date with the RNet stack sources in a traditional way gets harder and harder: I need to make sure the paths are pointing to the right place, and if I pass the project to somebody else, I have to make sure all the sources are packaged with that project. Processor Expert makes things simpler: it can generate the source files into my project, and I can easily configure it.
So instead to copy and support files by hand, I decided to package the RNet stack files into a Processor Expert component: all still normal C files, but easier to configure and distribute.
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.
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.
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 :-).
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 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.
On Monday the new semester starts, and yet again: we will do a Sumo thing :-). They can choose which tool chain they would like to use to develop their application for the ARM Cortex-M0+ used from Freescale. One option is to create a ‘Do-It-Yourself’ toolchain. Since the start of the series, things have evolved: there is a new GNU ARM tool chain available, Segger has updated their drivers, and most important the GNU ARM Eclipse plugin has been greatly extended to support Freescale parts and Processor Expert. So instead to read through all the previous tutorials, this one is about putting together a free tool chain less than 10 minutes (not counting the time to download around 500 MByte).
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 🙂