Editing Compiler Include (or other) Settings in Eclipse

So now I have carefully set up my compiler include paths in Eclipse to tell the GNU compiler where to find my header files:

Include Paths

Include Paths

The question is: how can I apply these settings to another project?

Continue reading

CRC Checksum Generation with ‘SRecord’ Tools for GNU and Eclipse

One of the things missing for Embedded in the GNU linker is that it cannot generate a CRC checksum. Luckily, there is the solution of using SRecord:

SRecord 1.64 Web Page
SRecord 1.64 Web Page
Continue reading

Semihosting with GNU ARM Embedded (Launchpad) and Kinetis Design Studio

A while back I wrote two articles about Semihosting: “Semihosting with GNU ARM Embedded (LaunchPad) and GNU ARM Eclipse Debug Plugins” and Semihosting with Kinetis Design Studio. With using the GNU ARM Embedded (lauchpad) in my Kinetis Design Studio, time for a ‘summary’ post :-).

Semihosting Output in Console

Semihosting Output in Console

Continue reading

Proof of Concept: Open Source ARM SWD Debug and General Purpose Board

The Teensy is a great and tiny board (see “USB CDC with the Teensy 3.1 Board“), but it lacks real SWD/JTAG debugging capabilities (see “Hacking the Teensy V3.1 for SWD Debugging“). The Freescale Freedom boards are great, but for many applications too big, and have potentially too many components on it. So what about building a breadboard friendly tiny board which *has* SWD debugging ability *and* can be used to debug another boards?

So here is a working prototype based on the FRDM-K20D50M:

FRDM-K20D50M used as debug probe

FRDM-K20D50M used as debug probe

Continue reading

Serial Terminal View in Eclipse Luna

If you have read my article “Serial Terminal View with Eclipse Kepler“, then you are aware that using a Terminal view to a serial connection (COM port) under Eclipse Kepler is pretty much broken. I’m moving some of my projects to the more recent Eclipse Luna release, and the good news is that support is back 🙂

Terminal View with connection to board

Terminal View with connection to board

Continue reading

Freescale Processor Expert Survey

Frequent readers of this blog know: I’m using Processor Expert in most of my projects with CodeWarrior, Driver Suite or Kinetis Design Studio. With the move of Freescale to Kinetis Design Studio and the Kinetis SDK with Processor Expert, there is an opportunity for our voice to be heard in a survey Freescale now runs about configuration tools and Processor Expert.

Processor Expert

Processor Expert

Happy Surveying 🙂

Sensirion SHT11 Temperature and Humidity Sensor on a MikroElektronika Click Board

In one of my earlier posts (“Using the DHT11/DHT22 Temperature/Humidity Sensor with a FRDM Board“) I’m using the DHT11/DHT22 temperature/humidity sensors with the FRDM-KL25Z board. These sensors are very inexpensive, but have limited measurement range and accuracy. As pointed out by a reader of that article, Sensirion (a Swiss company :-)) has good sensors too, and I decided I would like to try the SHT11 sensor:

  • 0-100% Relative Humidity
  • +/- 3% Relative Humidity accuracy
  • -40 – +125°C
  • 2.4 – 5.5V supply voltage

SHT11 Sensor

SHT11 Sensor

Continue reading

Poor Man’s Trace: Free-of-Charge Function Entry/Exit Trace with GNU Tools

There are cases where my application runs find for days, weeks or even months, but then from time to time there is an application crash. Yes, the watchdog will recover it, but still it would be good to know what happened? One solution would be to hook up a trace probe (like the one I have described in this post: “First Steps with the P&E Tracelink“). But having such a trace probe attached all the time is first not cheap and second not always possible. So what if the application would leave ‘breadcrumbs’ behind which would tell me the flow of the program leading to the problem? I have found a functionality in the GNU tools which seems not be widely known or use, but is incredibly helpful in such cases.

So what if I could get a log like this telling me which functions get called by whom?

{ 00000E88->00000DA0 ???->DEMO_Init
} 00000E88<-00000DA0 ???<-DEMO_Init
{ 00000E8C->00000D40 ???->DEMO_Run
 { 00000D62->00000CE8  DEMO_Run:0x0022->decide
  { 00000D0E->00000C60  decide:0x0026->calcValue
  } 00000D0E<-00000C60  decide:0x0026<-calcValue
  { 00000D16->00000CA0  decide:0x002E->getValue
   { 00000CC6->00000C60  getValue:0x0026->calcValue
   } 00000CC6<-00000C60  getValue:0x0026<-calcValue
  } 00000D16<-00000CA0  decide:0x002E<-getValue
 } 00000D62<-00000CE8  DEMO_Run:0x0022<-decide
 { 00000D62->00000CE8  DEMO_Run:0x0022->decide

Continue reading

Solving the 8192 Character Command Line Limit on Windows

There is a really annoying issue with using command line tools on Windows: the maximum length of the command line passed to cmd.exe is 8192 characters (see http://blogs.msdn.com/b/oldnewthing/archive/2003/12/10/56028.aspx). So you think this is not a problem for you, as you would not pass such a long command line to cmd.exe (the DOS shell under Windows)? Well, if you are using Eclipse (as I do) which generates make files (which is the normal way), then the cmd.exe very likely is involved to call the compiler/linker/etc, indirectly with the usage of make.exe. Compiling files is usually not a problem as it does not hit that 8192 limit. However, it is likely that link phase will end up with an error:

Error in the Problems View

Error in the Problems View

If you have such a problem, there is a solution ….

Continue reading

Using the DHT11/DHT22 Temperature/Humidity Sensor with a FRDM Board

For a home automation project I need to know the room temperature and humidity percentage of the room air. Adafruit has an inexpensive DHT11 sensor from http://www.aosong.com which I decided to use for that project.

Test Setup for DHT11 Sensor

Test Setup for DHT11 Sensor

Continue reading