This section provides guidance for choosing a development environment and workstation configuration that is familiar to the developer while also supporting various tools to facilitate the building, testing and deployment of embedded operating systems and user space applications.
Choosing a Development Model
One the first decisions a developer needs to make is also fundamental to the workflow and equipment needed. Two options, known as ON-Device and OFF-Device, are outlined below.
As the compute module is a fully functional device, it is possible to perform most all programming and testing activities directly on the platform. This is done by connecting input and display devices to the platform and using the platform to obtain the needed files and information from external sources like mass storage and internet locations.
The method can be quick and efficient for fundamental exploration, concept validation and run-time modifications. ON-Device development also reduces the need for a standalone workstation and accessories.
The primary constraints to this model are a possible limited set of tools that will run upon the operating system installed on the platform, on device development tools consuming platform resources and the inability to perform parallel tasks while the platform is fully utilized (compiling, building, rebooting or installing new images).
Under this model, the developer maintains a fully featured, desktop-style workstation, that is used to communicate with the platform. Code updates and updated user space application builds are pushed to the platform by the workstation. Developer tasks can continue on the workstation while the platform is performing local functions such as running scripted application tests, installing firmware or rebooting.