Monday, August 31, 2009

getting started

I have had an interest in the TI msp430 microcontroller for a few years now. Became aware of it when the ez430 came out (http://www.ti.com/ez430), I am a sucker for $20 microcontroller evaluation boards. I really like the instruction set, the size, power, cost, etc. I want to remember that I became frustrated for a couple of reasons, one most likely was lack of linux support for the tool so I had to use windows. Perhaps even at the time the windows tools, I am not interested in an IDE, in fact will intentionally avoid them. I want my text editor a command line compiler and a dumb loader. I want to remember that I didnt like something about being forced to use the internal RC based clock.

Recently I dusted off the ez430 box and started playing with it again. Started to think this instruction set is so simple perhaps I can make an emulator. Stumbled on two linux based attempts at loaders. Found that an msp430 backend has begun for llvm. All of this combined has re-sparked an interest. And most recently I gave up on the simulator I had started as I found (at least one) an open source core in verilog that runs nicely under icarus verilog (http://www.icarus.com/eda/verilog).

So the next few posts will cover building binutils from sources so that you have an assembler and linker. The instruction set is so simple why would you want to use C? If you do though I have a build of llvm working using llvm's clang C frontend (the gcc front is undesireable as a cross compiler on 64 bit systems, at least for ARM, so I prefer the clang front end for now as the results are consistent between 32 and 64 bit Linux). And then a simple loader program for the ez430 based usb stick. And on top of all that using the openmsp430 core for simulating programs and getting much better visibility for debugging.

No comments:

Post a Comment