I have carefully implemented my firmware. It works perfectly for hours, days, months, maybe for years. I there would not be a problem: the firmware crashes sporadically :-(. Yes, I’m using watchdogs to recover, but hey: it is a serious problem. And because it happens only under rare and special conditions, it is hard to track it down or to debug it.
Accessing shared data from the main application and from an interrupt
The thing is: these nightmares exist, and they are real and nasty. I’m pushing my students hard on this topic: It is about how to protect critical sections. And what could go wrong. And here is just yet another example: how it can go badly wrong if you are not careful. And it took me a while too to realize where the problem is. It was not a fun ride….
January 25th 2014. It was a cold night, with little snowfall overnight. A beautiful morning, blue sky with a wonderful sun light, slowly melting away the snow in the lower areas. Parts of Lake Lowerz are still frozen. The green … Continue reading →
This is Part 3 of an ongoing tutorial to use the Arduino Ethernet Shield R3 with a Freescale FRDM-KL25Z board (or any other board you like).
In Part 1 I worked on the SD card, in Part 2 I have added basic network connection. Now time to run a web server with my FRDM-KL25Z :-). With this, I can get access to my board through the network, and the board will host a web page where I can do pretty much everything: showing status, or adding functions to turn on things like an LED 🙂
‘Inversion‘ is a meteorology phenomena in my area in Switzerland: typically the air gets colder the higher you get up in the mountains. But under special conditions during Fall/Winter time, it is possible that cold air is on the ground, … Continue reading →
Processor Expert Driver Suite 10.3 Project with GNU ARM Eclipse Build Tools
It is now easier than ever before to use the GNU ARM Eclipse plugins and Processor Expert. There are still some manual steps, and this post is about all the details to get it working as smooth as possible.
The Freescale Tower boards are very versatile, and there are many different boards you can combine like lego bricks. When I tinker with my own hardware or need to try out something, then I use a special prototype board: the TWR-PROTO.
I’m maintaining and hosting now more than 100 different Processor Expert components on GitHub. Instead to deal with CDE (Component Development Environment, that’s the SDK to create your own components), most users simply download and install the PEupd files. If you deal with normal source files, and if spot something you want (or need to change), then you can easily do this. But what if you want or need to change something in that code which comes with the PEupd file(s)?
I have I project which I want to debug on multiple boards the same time. So how can I download and debug the same application to multiple boards/processors, and debug them all the same time from within the same workspace and Eclipse IDE?
This is a typical scenario I have with my RNet stack: the same application runs on multiple boards, and I want to debug all the boards with the same project with the same Eclipse. For example to wireless sensor nodes with the RNet nRF24L01+ stack as in the picture below:
Sometimes it takes a very long time to realize a project. Adding the Arduino Ethernet Shield R3 to one of my Freescale FRDM boards is one of it: it took me a year until I have found a few days to work on using the Ethernet Shield with my FRDM-KL25Z.
FRDM-KL25Z with Ethernet Shield
I have not everything in place yet, so I decided to publish things in parts. So this is about part one: using the Micro SD Card on the Shield.
Character based LCD displays are great: they are inexpensive, and it is rather simple to use them compared to graphical displays. Yes, they only can display text and custom symbols, but this is usually what I need. And pretty much all character displays are using the Hitachi HD44780 protocol, so it is a de-facto industry standard.
HD44780 compatible Dual Line Character Display
These displays have one big disadvantage: they need to be compatible with the original Hitachi interface and protocol. First display were mostly one line only, and had only few characters, typically up to 16. The protocol worked either with one or two lines on the display. Today’s display have usually two lines, with 16 characters. But what if I need more?