DOWNLOAD

CHANGES

SCREENSHOTS

DOCUMENTATION



Porting

An application typically performs the following tasks:

  1. Initialize hardware: set up peripherals, timers, interrupts, etc.
  2. Call whatos when events occur.

WhatOS is not really concerned with the hardware in order to keep the code portable. Therefore you must perform the first step yourself, typically starting with example applications or the boot-loader source code for your board and development tool-chain.

The target-dependent configuration which is needed to compile the source code generated by whatos consists of defining basic integer types.

The following sections present working configurations for various processors/tool-chains. Only Atmel AVR is included as a python module. The rest are included in the documentation directory. In addition to the integer type definitions these files contain utility objects which automate code compilation, board programming, and so on. These utilities are highly specific to my particular setup and preferences which is the reason they are included as documentation.

Atmel AVR with GNU tools

Most of the development was done using this 8-bit micro-controller.

class avr_gcc(target):
    'Atmel AVR micro-controller with avr-gcc compiler target.'
    header = '#include <inttypes.h>'
    wint8 = 'int8_t'
    wuint8 = 'uint8_t'
    wint16 = 'int16_t'
    wuint16 = 'uint16_t'
    wint32 = 'int32_t'
    wuint32 ='uint32_t'
    endianess = 'little'

Freescale HC08 with Code Warrior

Another 8-bit micro-controller used for several projects.

class hc08_cosmic(target):
    'Freescale HC08 with Cosmic binary tools.'
    wint8 = 'char'
    wuint8 = 'unsigned char'
    wint16 = 'int'
    wuint16 = 'unsigned int'
    wint32 = 'long'
    wuint32 ='unsigned long'
    endianess = 'big'

Freescale ColdFire with GNU tools

This powerful 32-bit embedded microprocessor can handle a much more powerful OS. See for example uClinux. I use WhatOS mostly for quick hardware verification and driver development.

class m68k_gcc(target):
    'Freescale coldfire micro-with m68k-elf-gcc compiler target.'
    header = '#include <stdint.h>'
    wint8 = 'int8_t'
    wuint8 = 'uint8_t'
    wint16 = 'int16_t'
    wuint16 = 'uint16_t'
    wint32 = 'int32_t'
    wuint32 ='uint32_t'
    endianess = 'big'

Analog Devices Blackfin DSP with GNU tools

This powerful DSP can handle a much more powerful OS. See for example uClinux. I use WhatOS mostly for quick hardware verification and driver development.

class bfin_gcc(target):
    'Analog devices blackfin dsp with bfin-gcc compiler target.'
    header = '#include <stdint.h>'
    wint8 = 'int8_t'
    wuint8 = 'uint8_t'
    wint16 = 'int16_t'
    wuint16 = 'uint16_t'
    wint32 = 'int32_t'
    wuint32 ='uint32_t'
    endianess = 'little'

Note: All company/brand names are trademarks of their respective owners.

© Mircea Hossu () WhatOS 2.0.3  (2006 Feb 26)