NXTGCC
From NXTGCC
The First Open Source LEGO® MINDSTORMS® NXT Firmware Development Kit: http://nxtgcc.sf.net
This project uses the GCC toolchain to program Lego Mindstorms NXT. It provides a good foundation for those who are interested in the combination of open source software, embedded systems, and Lego Mindstorms: the NXTreme approach!. The NXTGGC firmware kit consists of three things: a tool to convert from IAR1 sources to GCC compatible sources, an ARM GCC/GDB toolchain, and an IDE for programming in assembler and C.
Contents |
NXTGCC Documentation
- Online documentation (you are reading it right now): http://nxtgcc.sourceforge.net
- NXTGCC GDB (Experimental stage): Debugging NXT with the GNU debugger (and posted on nxtasy.org).
- NXT memory layout
- GCC and IAR compiler comparison
- NXTGCC Sourceforge navigation panel: http://sourceforge.net/projects/nxtgcc
NXTGCC Forum
- A new dedicated NXTGCC forum for questions, bugs, your project demos, etc. I can also recommend the nxtasy forums.
ARM Documentation
- The PDF file for the Atmel ARM7 processor in NXT can be downloaded here: AT91SAM7S Series Preliminary
- The technical reference manual here: ARM7TDMI Technical Reference Manual
- ARM documentation at Wikipedia: ARM and specifically the ARM7
- ARM7 documentation from ARM itself and an ARM7TDMI overview
- A high-quality GCC compiler is supported by ARM and is released by Codesourcery
- ARM has a University program
- A nice hardcover book on the ARM processor is ARM System Developer's Guide
- If you are in doubt: ARM is a very widespread micro processor according to Frederick P. Brooks, Jr. It is one of the 25 chips that shook the world according to IEEE Spectrum.
Installation
- You should download the latest NXTGCCECLIPSE.0.0.x.zip file and unzip.
- Then there is a ReadMe.rtf file in the root of the NXTGCCECLIPSE directory.
- Please start by selecting the NXTGCC folder and press F5 for a refresh of the workspace.
LEGO Mindstorms NXT
- There is good coverage of NXT at Wikipedia: NXT Programming
- Some good blogs on Mindstorms include: nxtasy.org, and The NXT STEP
- Forums that concentrate on NXT inlcude: Lego NXT forum and NXT Firmware Hacking (if you want a relevant link placed next to the latter forum, pls. contact me).
NXTGCC Projects
- It has been used for a masters thesis in 2007
- A (work-in-progress) TinyOS implementation (see http://nxtmote.sf.net)
- NXTGCC was used in DTU Robocup 2009
- KDubiq Ph.D. summer school
- Google IO (cool pic. of Google in LEGO)
- ESWEEK 2009 LEGO MINDSTORMS Tutorial
- Olimex is a good place for PCBs and NXTGCC is listed there
Programming
- Free (and printed) book on GCC
- Website for C programming
- Wikipedia on C
- Assembler
Other Firmware Development Kits (FDK)
- None at the moment (there is one around that I can't remember from David?)
- Not sure if it is an FDK, but it is smart.
NXT (Host-based) Communication Kits
- You can look in the GDB debugger that comes with the NXTGCC project: It uses C programming to interface to NXT with USB and the Fantom.DLL
- There is libnxt
Roadmap to Fun
- Here is an ever changing list of ideas that I am playing around with.
About
- The NXTGCC project is maintained by Rasmus Ulslev Pedersen.
Notes
1You may also want to try the IAR compiler (the one that Lego uses): a free version is http://www.iar.com/mindstorms available, but this project focuses on GCC. The IAR linker reference is useful when you start comparing GCC and IAR compiler output (map files).
