TS05 taught me how easy it is to get all the various programming tools out of step with each other. I’d often end up running around looking for bugs that were caused by inconsistent definitions of the same object, but expressed in different languages. So it would be cool to find an easy way to share that information in common definition files.
As the code got more complicated I also found it was easy to make an update that broke something, and I didn’t know it was broken until weeks later when eventually I tripped over it and managed to track it down. I want to try and use a dev. system that has facilities to write test code and have it run every time the code is changed to make sure that the old stuff hasn’t stopped working.
Lastly I’d like to find some way to print out debug statements without clogging the uC with USB drivers, and two tons of print statements that fill up the memory.
These are now all standard techniques in the industry, but it all passed me by, and yet it would be good to try and drag myself into at least the 20th century.
I’m trying to figure out how to set up a general purpose development environment using Eclipse, that has at least some of these twiddles in it. It makes sense to get them in place early, rather than after the fact. It is really, really complicated to figure out what all the component sub-systems are, and how they fit together, but it is very cool. If I can get it to work then I can imaging making a small change to a header file and having all the firmware, Java PC code, Ruby web server code, and Python hardware test code (and maybe the hardware definition too) automatically recompile so it’s all consistent. Well it’s a goal 🙂
Today I managed to compile, run and debug a C program for the STM32F4. In the same tool I can have elements written in C, Java, Ruby, and Python for the PC, and cross-compile C for an ARM. Now I have to figure out how to cross-compile for the Nordic. I might try to cross-compile for the Atmel too, just so we can get all our old and smelly eggs into the one basket!