Developing Software

Using a language that can be compiled for a PC and the target is very useful since the source code can be written, compiled and up to a point run on the development PC. This is very useful when developing algorithms and menus. Inputs and outputs connected to specialised hardware can be substituted with screen and keyboard of file i/o. Beginning work on a PC means that development can start before the target hardware is available. It will also prove instructive in how to write platform independent code. Be aware that the code will run much faster on a PC even with floating point math in the code and that size storage set aside for various number types may be different to the that on the target.

As the software is developed and built up there will me many iterations to go through some with minor changes to the source, some with major changes. Once upon a time this was managed by taking a snapshot of each iteration and backing it up onto a floppy disk. Keeping track of the issues and bugs was an equally manual process requiring the developer to create a document listing all the bugs that had been fixed and the new issues raised.

Today's developer would use a version control tool such as subversion which maintains a repository of all the files that need to be versioned, is able to show the which files have changed and the changes made between versions, all on the click of a mouse. The developer would may also use bug tracking software such as TRAC.

The cross-compiler will often arrive with other software such as an IDE (integrated development environment) which links together the editor, compiler and linker so that they can be operated from within the IDE. There may be provision to download the executable to the target and for debugging - depending on the hardware available. The Eclipse project provides a very useful IDE which, after a little setting up, will compile and link using whatever is available on the PC.