Link Order: Using Multiple Definitions with ARM GNU Linker and Eclipse

Sometimes I have ‘multiple definitions’ in my projects: this means that I have functions defined in one source files, and I need to ‘overwrite’ one or more with a version in another source file.  For example I have a source file with utility functions (Utility.c), and I want to overwrite some of these functions with a different implementation in a different file (MyUtility.c). How can I do this?

Continue reading

Compiling Documentation and Presentations: LaTeX

If you are not in the academic world, then you might wonder about that ‘LaTeX‘ in the title.  and no, it is not about that latex rubber material ;-), it is about ‘la-tek’ 🙂

In short, it is a programming language and tool set to ‘compile’ documents. Originally, TeX has been designed and mostly written by Donald Knuth and released in 1978. Since then, it has been evolved and TeX (or LaTeX) is widely used in academia.

Continue reading

Overview of ARM Microcontrollers and Tools

In this semester course, students (and myself too, of course :-)) are building a Mini Sumo Robot. That robot is using the Freescale FRDM-KL25Z board with an ARM Cortex-M0+ on it. Today I’ll give an introduction to the ARM core to the class, and timing is right: this morning I have found an excellent overview about ARM microcontroller and tools written by Jay Carlson.: Getting Started with ARM Microcontrollers.

Continue reading

New CodeWarrior for MCU10.5

On Friday, Freescale has updated CodeWarrior for MCU10 from V10.4 to V10.5, available on http://www.freescale.com/cwmcu10. I have not had much time to use it over the week-end, but here is a list of the things which in my view will make me switch my projects over to 10.5 and use it in my university classes:

  • Smaller: smaller setup and less disk space
  • Faster: faster debugging and flashing
  • Features: Eclipse Juno, detachable editor views, ‘unlimited’ breakpoints, simplified debugger attach/connect/download, and more.

Continue reading

DIY Free Toolchain for Kinetis: Part 6 – Linux Host with OpenOCD and CMSIS-DAP

For everyone who wants to build a Do-It-Yourself toolchain for Kinetis on Linux, I recommend to read the following excellent post by Karibe:

Setting up Linux opensource build and debug tools for freescale freedom board FRDM-KL25Z

He describes how to get OpenOCD with CMSIS-DAP working with Eclipse on Ubuntu to debug the FRDM-KL25Z board.

List of Tutorials

Happy Linuxing 🙂

FreeRTOS V7.5.0 released

A week ago, the updated FreeRTOS V7.5.0 has been released on FreeRTOS.org. So time to have my Processor Expert FreeRTOS component updated as well :-).

FreeRTOS V7.5.0

FreeRTOS V7.5.0

Continue reading

DIY Free Toolchain for Kinetis: Part 3 – Debugger (GDB Server with P&E and Segger)

This is the third part of a tutorial series how to ‘do-it-yourself’ a tool chain for the Freescale Kinetis microcontroller, with the FRDM-KL25Z as example. The tool chain is using GNU ARM gcc plus Eclipse Kepler release. So far I have the following parts:

List of Tutorials

So far things are very generic. But with debugging it means different hardware, and different hardware connections. And for this connection we need a GDB Server.

GDB Server

Eclipse CDT features a GNU Debugger (GDB), and this is what I want to use here: debugging my microcontroller with GDB inside Eclipse. In order to debug the microcontroller, I need two other things: a GDB Server and a Debug Probe.

GDB with GDB Server

GDB with GDB Server

Continue reading

DIY Free Toolchain for Kinetis: Part 2 – Eclipse IDE

This is the second part of a multi-part tutorial about how to set up an open source tool chain with GNU ARM gcc + Eclipse to build and debug an application for Kinetis ARM devices.

List of Tutorials

Eclipse Kepler

Eclipse Kepler

Continue reading

DIY Free Toolchain for Kinetis: Part 1 – GNU ARM Build Tools

This is the first part of a multi-part tutorial on setting up a free and functional GNU gcc + Eclipse + debugger environment for use with the Freescale FRDM-KL25Z board.

List of Tutorials

In this first part, I’m showing how to install the GNU ARM tool chain to build a ‘blinking LED’ application for the FRDM-KL25Z. With 100% free tools 😉

Blinking Red RGB LED made with free tools

Blinking Red RGB LED made with free tools

Continue reading

FreeRTOS Heap with Segmented Kinetis K SRAM

While working on a project for the FRDM-K20D50M, I faced a problem: I was running out of SRAM for my application. The GNU linker reports: “section `.bss’ will not fit in region `m_data'”: 😦

bss will not fit in region m_data

bss will not fit in region m_data

But my device has 16 KByte of SRAM, and I knew I use much less than 10 KByte. So what is the problem? Continue reading