So I’ve been playing with TI’s MSP430 series uC for a few days now … well I was before our whole town got flooded (and surrounding areas). It brought me back to a question I posed not too long ago: when will the library be made independent of Arduino? So that it can be pulled into any other coding environment without needing any of the core Arduino bits and pieces and able to be used as is. If we can write raw C/C++ code for these micro controllers and not use the overhead of the Arduino code …
The library is mostly arduino free already - with the exception of some fallback code for pins if there’s no port/register mappings. However - each MCU has different ways of talking to I/O ports and registers for SPI - So there’s 3-4 classes that would need to be implemented for a new MCU.
I have an msp430 - but the I/O coprocessors in the beagle board are a bit more immediately interesting to me.
Oh - also some of the hand rolled assembly in the math functions would need to be ported to the msp’s instruction set.
Gotcha. I haven’t jumped onto the Beagle Wagon yet …
Also: the library really doesn’t particularly use any “Arduino” library code. It’s mostly raw C, C++, and AVR/ARM assembly.
No, it doesn’t. But I believe it does need/use some of the Arduino core files (for pin assignments and what not.) Or am I mistaken here?
You are mistaken - I am only using arduino headers/functions for the fallback functions for getting pin/port mappings when they aren’t defined in fastpin.h - that was the whole point behind the rewrite.
I think some of the arduino header files are used as a shortcut for the avr includes to get things like register definitions, mostly becaue I haven’t tracked down the avr/*.h files to include directly yet.
Ooooh, cool. That makes things a tad easier to fiddle with.
Well - yes and no - the msp430 has it’s own way of interacting with gpio pins - which means there needs to be msp430 versions of the fastpin class , the clockless controller class, and the hardware spi class.
I do want to port the library to new hardware and document it - so that I can outline a porting guide for people to use, which might help.
Somewhat relatedly, I’ve had far more interest expressed in PIC32 than msp430
And if we could make it work sanely on a Pi…
Nah. That’s crazy talk, and I know it.
On a pi, it’d need to be a device driver for the timing, and it would piss off Linux. This is why I’m curious about the beagle’s I/o coprocessors.
Yep. And I’m wondering how hard it actually is to live as a device driver. Maybe that’s bedtime reading for me some night.
Ok, that was the best line I’ve seen so far, “it would piss of Linux” …