I believe in ‘life-long-learning’. With this I continue to learn and discover new things every day. I’m writing tutorials to give something back to the community from which I have learned so much.
On top of this, I receive emails on a nearly daily basis, asking for help. Many articles have the origin in such requests or questions. I prefer questions or comments in a public forum, because that way I feel all others can benefit from it. Last week Alessandro contacted me with this:
I hope this find you well! I’m starting to using ARM processors, but I find them quite complicated on the configuration side. I started in the past with PIC micro (PIC16) with asm, and I found them quite straightforward to be configured (clock, IO, peripherals, …). Then I moved myself on C language, and on PIC18 without any big issues.
Now I would really like join the ARM community, I see that these processors are what I’ve always looking for, on energy, calc power, peripherals, and FINALLY on IDE (editor, toolchain and utilities)… AMAZING!!!”
The topic is about how to start learning developing for ARM. Alessandro agreed to make this public, so I thought this might be a good topic for an article?
For me, the available software and tools are the primary key decision factor why I select a particular silicon vendor. Without good software and tools, a microcontroller only ‘sand in plastic case’, even if it is the best microcontroller in the world. I do have several probably excellent microcontroller boards, and they are only getting touched by more durst over the months and years.
Coming out of a project meeting Friday evening, the following wisdom came to my mind:
“The major difference between a thing that might go wrong and a thing that cannot possibly go wrong is that when a thing that cannot possibly go wrong goes wrong it usually turns out to be impossible to get at or repair.” – Anonymous
The concept of Linux (Open Source, broad developer base and broad usage) is a success story. While there is a lot of diversity (and freedom) in the Linux world, Linux is Linux and again Linux :-). And the world has (mostly) standardized on Linux and its variants on the high embedded system side.
“The Linux Foundation Announces Project to Build Real-Time Operating System for Internet of Things Devices. Open source Zephyr™ Project aims to deliver an RTOS; opens call for developers to help advance project for the smallest footprint IoT devices.“
Ζεφυρος (Zephyros) is the Greek good of spring and the west wind. Obviously this inspired the logo for the Zephyr project:
It seems to me that not many developers use hardware trace? ARM indicates that maybe only <5% of developers are using trace. Too bad! Why are all the ARM Cortex microcontroller vendors putting a powerful hardware (and complicated!) trace engine into their devices, if only few developers are using it? Seems like a waste of silicon and an unnecessary price adder? Well, hardware trace can be a life saver: Because only with hardware trace the most complicated bugs and problems can be solved. And maybe because only the best are using it ;-).
As a standard procedure, I add some console functionality to my embedded applications. That way I have a command line interface and can inspect and influence the target system. One interesting hardware feature of ARM Cortex-M is Single Wire Output (SWO): it allows to send out data (e.g. strings) over up to 32 different stimulus ports, over a single wire.
Smartwatches are around for a while now. To me it is still questionable how useful the ‘big’ ones for iOS and Android are. But there are definitely the crowd funded smartwatch projects which caught my attention. Maybe it is about the ‘do-anything’ with connectivity? One of these gadgets is Hexiwear: a hackable open source device
While it *could* be a kind of smartwatch, the value of this thing is more that it includes a plethora of sensors with two microcontroller, and I can use Eclipse with GNU tools to build my firmware :-).
Alert: Hackster.io is giving away 100 Hexiwears, but you need to hurry up (submission until July 15th 2016)!
I’m using Processor Expert components for nearly every Freescale (now NXP) projects: for S08, S12, ColdFire, DSC and especially all the different NXP Kinetis devices. Not only because it makes software development fast and easy and allows re-use of software, but as well because Processor Expert has a good way to pack and distribute software components. Unfortunately Processor Expert is not any more included for the new Kinetis devices (see “First NXP Kinetis SDK Release: SDK V2.0 with Online On-Demand Package Builder“). So I have looked into an alternative and hopefully vendor neutral way to build and distribute software packages using CMSIS-Pack.
I’m not much monitoring what is happening on Kickstarter or Indiegogo, only for time reasons, but maybe I should? For a while I’m looking for the next level for the tinyK20 project: better and more powerful microcontroller with touch display/graphic LCD. And when I see a Freescale/NXP Kinetis microcontroller on a crowd funding platform like this one, I hardly can resist 😉 :
My Raspberry Pi Zero arrived last week (see “A Raspberry Pi for $5! What are your decision factors?“), and finally I have found an hour to try it out. Because the ‘bare board’ $5 version was sold out at that time, I ordered a package with 8GB SD card, micro USB cable and mini HDMI adapter. That way I had all the needed cables, including the mini HDMI adapter cable:
It it is obvious that a new trend from the US is swapping over to Europe and probably the rest of the world: Black Friday. That is the day yesterday following Thanksgiving day in the United States. It is a ‘shopping’ day. Consequently, the stores are battling with huge discounts. And I use that to fill up my inventory for the Christmas-time projects 🙂 What caught my attention yesterday Friday was this: a Raspberry Pi Zero for US$5!!!!
In “Overview: From Snippets to Code Generation” I discussed several tools used in my development process. On tool which helps me a lot to get things done is Processor Expert. In this post I’ll give an overview about this tool and reasoning for the pros and cons of using it.
To build an application for a modern microcontroller today is not a simple thing. Well, it depends what ‘simple’ means. But compared to the ‘old days of 8bit micro controllers’ (which are still in use!) developing for a complex 32bit device is definitely a different thing. Not only the complexity has changed, but as well the breath of tools and helpers. In my view, the only constant is ‘change’, and I have changed the way how to develop several times in my career. In this post I present several different techniques I’m using in my development.
I did not realize that the number of comments passed the 10k number 🙂
I want to pause for a minute and thank all my readers and commenters for all the feedback, suggestions, thoughts and learning material you provide with your comments.
Thank you all, and keep Commenting 🙂
PS: You might notice the amount of spam comments. Luckly WordPress is very good in filtering these out :-). But in case your comment somehow does not get through, contact me on the email address listed in the About page.
On our motorbike tour through the Alps this weekend, we visited Italy, Austria and of course many summits in Switzerland. On the way from Italy to Austria we visited Lake Reschen (or Lago di Resia), an artificial Lake in South Tyrol, Italy, south of the Reschen Summit. The lake is famous for the bell tower of a 14th-century church: the tower is all what remains from the submerged village of Graun, and it probably Italy’s most famous drowned town:
Here is my second blog about the Kinetis MCU development boards, introducing you to the new and more informative Getting Started process for Kinetis FRDM-K64F from Freescale. As a part of my internship I got the amazing opportunity to play with the ‘New Getting Started’ process and the most recent box of the FRDM-K64F development board from Freescale.
Freescale have been working all along to make the life of its customers easier. So, at the FTF 2015 we launched the new website: