CodeSpriteEmbedded software consultancy
specializing in
ARM Powered systems
HomeSite MapClientsContact
Search this site 
powered by FreeFind

Firmware Design

System Start-up Code

For 8-bit systems there may be very little start-up code; the system may be simple enough to allow the C compiler's start-up library code to perform all the system initialisation required. In more complex systems however, there may be a lot of set-up to do even before the C start-up library code can be run. This is a very specialised area and requires a detailed understanding of the processor architecture.

In cached ARM systems, one of the most complex structures to set up is the memory management virtual to physical mapping table, which will be at least 16K bytes and may exceed 20K bytes in size. Errors in this table will cause the system to behave unpredictably, and may even stop the system dead as soon as the Memory Management Unit is switched on. Since CodeSprite works on many ARM systems incorporating an MMU, we have developed a utility that creates an MMU table from a text description of the memory map, saving many hours debugging hand-written MMU tables.

CodeSprite's MMU table generator can be found in ARM's ADS software development toolkit, or it can be downloaded from the MMUGen page of this website.