-
A Teensy Distraction
03/14/2014 at 18:42 • 0 commentsSo, looking to revive my enthusiasm for playing with ARM MCUs, I picked up a Teensy 3.1 last weekend. I'd been vaguely aware of the Teensy for some time, and had seen Paul Stoffregen described on hackaday, amongst other place, as 'brilliant'. I'd thought 'meh, another arduino clone'. I couldn't have been more wrong. Stoffregen is brilliant, and the Teensy 3.1 is an amazing piece of engineering: 72MHz (overclockable to 96MHz), 32 bit ARM cortex-M4 CPU, breadboard friendly and compatible with most Arduino libraries.
I was tipped over the edge into buying the Teensy when I read that it could be programmed via gcc & makefile, rather than purely through the Teensyduino IDE. I thought that playing with the makefiles would give me some insight into getting the LPC810 and FRDM-KL86Z working without Nexpresso and Codewarrior. It will, but not until I'm done having fun with the Teensy with the huge array of compatible Arduino libraries.
Up to now, I've struggled a bit to see much use (for a hobbyist tinkerer like me) for bare metal 32-bit MCUs. To be honest, an ATmega328P has been fast enough, and had enough memory, for all of my low-level hardware projects, and the Raspberry Pi and Beaglebone Black have been cheap enough to throw at the upper end (and fast enough to program in Python under Linux).
Like all really great hacker products, the Teensy seems to open up a whole new range of possibilities somewhere in the middle ground.
Excited/10.
-
Death and Taxes
03/05/2014 at 21:43 • 0 commentsI'm not dead, and haven't given up on getting an ARM toolchain up and running: just busy doing my taxes, and spinning my wheels a little on the ARM stuff. I wanted to be able to program the FRDM board using gcc and make before jumping into Eclipse and its Freescale add-ins. In order to do this I need to get hold of a link command file (linker script) to tell the linker how the memory is organized on the FRDM-KL46Z. Googling turned up a ".ld" file for the FRDM-KL25Z, but, given that the 46Z has twice the memory, and given my resolution not to just cut-and-paste-and-hope, it looks like I'll have to learn just enough about linker configuration to hack the file.
An alternative approach is to use the "export to desktop IDE" feature of mbed.org to download a KL46Z project and to pick around in the files looking for something equivalent.
Either way, the prospect of doing this worthy-but-dull stuff has driven me to finish my tax prep.
-
A New Dawn
02/26/2014 at 15:43 • 0 commentsI've been a Linux user, off-and-on, since Ubuntu 6.10 (Edgy Eft). By Ubuntu 12.04 (names no longer cute) my Linux use had withered away to 2 days fixing a broken update every 6 months. I spent most of my play-time in my Compaq Presario's XP partition.
And this wasn't a problem, as most of my play-time activities were better suited to Windows. I'd program PIC microcontrollers in assember using Microchip's Windows tools, write Nintendo DS homebrew using devKitPro libraries and Windows emulators, or write Java roguelikes in Netbeans (which sucks anywhere).
And then the Presario died. Stone cold dead. Yipee! Time for a new laptop.
I eventually settled on a Toshiba Satellite L775D-S7340 as it was cheap, has a 17 inch screen, was cheap, has a quad core (but AMD) CPU, was cheap, and has decent graphics (Radeon HD 6520). (It also has a BlueRay drive, which I've never used.)
The Toshiba came with Windows 7, and I sort of got the Presario's XP partition working on it (until a Windows Update killed it), but I knew I also wanted a Linux partition. After a last look of cold contempt at Ubuntu I installed Mint 13 (Maya) with the retro (Gnome 2) Mate GUI. And I was smitten: Mint13+Mate was everything I liked about Ubuntu back in the mid-naughties. Pretty soon I stopped booting into Windows at all.
I'd been in a Java phase when tragedy struck and it was pretty easy to get Netbeans and the JDK installed to continue my "work". Netbeans was just as flaky on a new, fast, Linux machine as on an aging Windows XP box so the continuity was seamless.
I drifted on to tinkering with USB drivers in Vanilla C with Geany and makefiles, dabbled with writing an Android app using Eclipse Indigo, got really into programming AVRs in C with command line tools, wrote Python programs to monitor my Beaglebone Black-based robot, tried Arduino with a Trinket, and had a nostalgia fling with programming PICs in C. LIfe was good.
Then, on a whim, I ordered a couple of LPC810s and a Freescale FRDM-KL46Z from element14. Time to get ARMed. I had, after all, done a lot of ARM programming on the NIntendo DS, and a (very) little for Android, and the Raspberry Pi and BBB were ARM, so how hard could it be? Very hard. So far I've only managed to write some "hello world" stuff for the FRDM board using the online IDE at mbed.org.
My attempts to get a clean install of Eclipse Kepler working with Gnu ARM cross-building tools and Freescale's Processor-Expert add-in have gone nowhere. Rather than just thrash around piling more random cruft onto Mint13, I decided to make a clean install of the latest Mint (16) and then to methodically (?) follow mcuoneclipse.com's 10 part (!!!) series of articles on installing a "DIY Free Toolchain for Kinetis". I'll document my progress here.
TL;DR - Notes on installing ARM development tools in Linux.