Exclude Source Files from Build in Eclipse


Sometimes I have source files in my project which I do not want to get compiled (or excluded from build). Because as I’m using the ‘managed make’, all source files matching certain extensions (like *.c) are automatically included into the build.

To exclude a file from build, I right-click on it to get to the properties. There I can select a check box to have it excluded from the build:

File Excluded from Build

File Excluded from Build

Continue reading

About these ads

Adafruit NeoPixel Clock with 60 LED’s


After the problems with level shifters (see “First Adafruit NeoPixel Blinks with the FRDM Board“) I received the ordered 74HCT245N. Put it on a bread board, wired it up, … only to find out that the device gets very hot… turned off power, and realized that had the device put in with a wrong orientation :-( oh darn! That’s why I always order things like that in quantities of 3 or more :-). Corrected the mistake, and things are running (or blinking) again :-)

74HCT245 Wiring for WS2812

74HCT245 Wiring for WS2812

Continue reading

Preserving Memory Ranges with Eclipse and P&E GDB Server


For my boot loaders I need the functionality that I can keep memory ranges from being erased while downloading the rest of the application. P&E provides a GDB server which interfaces with their probes (P&E Universal Multilinks, Tracelinks, …) and as well with the OpenSDA present on many of the Freescale evaluation boards. In CodeWarrior there is an option for ‘Advanced Programming Options’ which allows to preserve memory of the microcontroller FLASH (see “Programming part of flash“). However, that option or button is not present in the Eclipse version of the P&E GDB server (e.g. in Kinetis Design Studio). So how can I preserve some areas of FLASH in Eclipse with GDB?

Preservation of Non-Volatile Memory in CodeWarrior

Preservation of Non-Volatile Memory in CodeWarrior

Continue reading

Switching ARM GNU Tool Chain and Libraries in Kinetis Design Studio


The Freescale Kinetis Design Studio (KDS) V1.0.1 beta is using a different GNU ARM toolchain than the ARM Inc. supported one on launchpad (GCC ARM Embedded). Additionally, KDS is using newlib 1.19 and newlib-nano 1.0, while there just has been a new release of the GCC ARM Embedded a month ago with the 4.8.4 update 2 release in June this year. So how to upgrade KDS to the latest and greatest GCC ARM Embedded?

Continue reading

Replicating an Eclipse Update Site for Offline Usage


In my post “Constructing a Classroom IDE with Eclipse for ARM” I outlined how to build a DIY Eclipse distribution. That way I can build an archive/zip and distribute to my students: it saves them a lot of time, and they do not need to download things from the internet themselves, as I can give them the thing on a memory stick. But what if I want them to give them the update site files for offline usage too? For example CodeWarrior has an online update site:

Online Update Site

Online Update Site

How can I make a local copy of it to use in my classroom?

Continue reading

Tutorial: Nordic Semiconductor nRF24L01+ with the Freescale FRDM-K64F Board


For some time I’m using the Nordic Semiconductor nRF24L01+ transceiver successfully in many projects (see “Tutorial: Ultra Low Cost 2.4 GHz Wireless Transceiver with the FRDM Board“). Since that tutorial things evolved a lot with the introduced RNet Stack. To honor the popularity of the Nordic Semiconductor nRF24L01+, Freescale has put a socket on the FRDM-K64F board. So time to make a new step-by-step tutorial how to use the nRF24L01+ with the FRDM-K64F.

Two FRDM-K64F Boards with nRF24L01+ Transceiver

Two FRDM-K64F Boards with nRF24L01+ Transceiver

Continue reading

Tutorial: DIY Kinetis SDK Project with Eclipse – Board Configuration


In “Tutorial: DIY Kinetis SDK Project with Eclipse – Startup” I showed how to create a Kinetis SDK project from scratch. In this post it is about adding the board initialization files. With the board initialization the peripheral clocks and pin muxing is configured.

MK64FN1M0VLL12 on FRDM-K64F

MK64FN1M0VLL12 on FRDM-K64F

Continue reading

Switching between ‘tabs’ and ‘no-tabs’ UI in Processor Expert


Newer releases of Processor Expert (e.g. in Kinetis Design Studio (KDS)) come with a ‘graphical’ (or ‘tabbed’) view of the Component Inspector. The UI elements are different and ‘tabs’ are using:

Component Inspector in Tabbed View

Component Inspector in Tabbed View

I like much more the earlier ‘no-tabs’ view. Luckily, there is a setting to switch the view back.

Continue reading

Tutorial: DIY Kinetis SDK Project with Eclipse – Startup


This is the start of a multi-post tutorial about the Freescale Kinetis SDK, released back in April as beta version. The SDK a set of peripheral drivers, and will become the standard software foundation and drivers provided by Freescale for their ARM Cortex based devices. Similar what other vendors already do. While this is a good step, it is the same time very disruptive for my university projects with new Freescale Cortex-M devices. And with everything new (and beta), it needs time to learn. So this post is about creating a Do-It-Yourself Kinetis SDK project from scratch for Eclipse. This part is about the startup code: about everything to get the application started.

FRDM-K64F with SD, nRF24L01+ and HC-06 Bluetooth

FRDM-K64F with SD, nRF24L01+ and HC-06 Bluetooth

Continue reading

EmbSys Registers View with CMSIS-SVD dimElementGroup


As outlined in “How to Add Register Details View in Eclipse“, I have a nice register detail level viewer for Eclipse and GDB. But one problem showed up: there were entries showing with %s:

PCR Register with %s

PCR Register with %s

The reason is that the parser is not handling the dimElementGroup of CMSIS-SVD.

Continue reading

Tutorial: PWM with DMA on ARM/Kinetis


For a project I need to change the PWM duty cycle after a PWM period is over. One way to do this is to have an interrupt at the end of the PWM period, and then set the new PWM duty (compare) register value in the interrupt. That works fine for ‘slow’ PWM frequencies, but if the PWM frequency is high, the CPU load is massively increasing. A better way is to use DMA (Direct Memory Access).

FRDM-KL25Z with DMA PWM and Logic Analyzer

FRDM-KL25Z with DMA PWM and Logic Analyzer

Continue reading

Semihosting with Kinetis Design Studio


Semihosting is a technique to do printf() debugging through an active debug connection. So instead using a physical connection like RS-232 or USB CDC, the connection to the host machine is through the debugger. This post is about enabling and using semihosting with gcc and newlib/newlib-nano in Freescale Eclipse based Kinetis Design Studio (KDS) using the GNU ARM Eclipse plugins.

Semihosting Console View with output

Semihosting Console View with output

Continue reading

How to Add Register Details View in Eclipse


The standard Eclipse registers view only shows the core registers:

Standard Registers View in Eclipse

Standard Registers View in Eclipse

I think it would be great to have a view to see all the device peripheral registers too?

Embedded System Registers View

Embedded System Registers View

If you want the same, then this article is for you. It works both for stock Eclipse and Freescale Kinetis Design Studion (KDS) :-)

Continue reading

Tutorial: Data Logger with the FRDM-K64F Board


The Freescale FRDM-K64F is a great board for data logger applications: it has a powerful ARM Cortex M4F with 120 MHz, 1 MB Flash and 256 KByte RAM. Best of all: it already has a micro SD card socket on the board :-).

Data Logger with FRDM-K64F

Data Logger with FRDM-K64F

Continue reading

Reducing Compile Time in Eclipse with Parallel Build


Feeling that building a project in Eclipse (including Kinetis Design Studio) takes a long time? Then probably the ‘parallel build’ option is not enabled in your project: Using parallel build option reduces the needed time by factors. To give an example, to build a project with 56 source files takes 32 seconds without parallel build enabled:

no parallel build

no parallel build

With parallel build enabled this gets reduced down to less than 10 seconds:

Parallel Build Enabled

Parallel Build Enabled

:-)

Continue reading