BeeOS - A small multitasking RTOS for the HC12.

Browse the doxygen documentation here.

2004/04/10:
Pre-emptive Real Time scheduler. Data structures are bloated, working on reducing the scheduler. Working on a Dragon12 EVB (kinda).


Progress as of 2004/03/06:

These are very early days. Please go away.

Library stuff - in general, no attempt has been made to make these compatible with traditional POSIXish libc functions. In fact, all the functions listed below are actually pre-pended with the letter 'b' (eg. bprintf()) to emphasize this point.

Below is some output from the elf binary profiling tool "bytewise". It is nothing more than a perl script front-end for gdb. Check out the files section at http://sourceforge.net/projects/beeos for the download.
Current project status (all features enabled):

main.c, 0x4000..0x4277 = 631 bytes.
    Address    Length    Symbol
    0x4000    298    _start
    0x412a    106    lbdrv_chg
    0x4194    210    btnscan_chk
    0x4266    17    misc
    Total:    631 bytes.

vectors.s, 0x4277..0x4278 = 1 bytes.
    Address    Length    Symbol
    Total:    0 bytes, 1 bytes unaccounted for (1 bytes actual).

bctype.c, 0x4278..0x42ee = 118 bytes.
    Address    Length    Symbol
    0x4278    32    bisnum
    0x4298    50    bishex
    0x42ca    36    bisalpha
    Total:    118 bytes.

bbit.c, 0x42ee..0x439c = 174 bytes.
    Address    Length    Symbol
    0x42ee    59    bitnclr
    0x4329    56    bitnset
    0x4361    59    bitncheck
    Total:    174 bytes.

bstring.c, 0x439c..0x4468 = 204 bytes.
    Address    Length    Symbol
    0x439c    37    bstrlen
    0x43c1    74    bstrncpy
    0x440b    38    bmemset
    0x4431    55    bmemcpy
    Total:    204 bytes.

bprintf.c, 0x4468..0x496d = 1285 bytes.
    Address    Length    Symbol
    0x4468    32    putchar
    0x4488    42    bputs
    0x44b2    635    int2stringpadded
    0x472d    495    bvsnprintf
    0x491c    33    bsnprintf
    0x493d    48    bprintf
    Total:    1285 bytes.

exec.c, 0x496d..0x51eb = 2174 bytes.
    Address    Length    Symbol
    0x496d    220    task_dumpinfo
    0x4a49    240    create_task
    0x4b39    87    unlink_time
    0x4b90    87    unlink_prior
    0x4be7    57    find_priority_lte
    0x4c20    91    find_nextrun_lte
    0x4c7b    102    insert_task_prior
    0x4ce1    102    insert_task_time
    0x4d47    101    addtask
    0x4dac    108    bsleep
    0x4e18    22    context_save2
    0x4e2e    22    context_restore2
    0x4e44    113    now_cmp
    0x4eb5    79    find_imperative_task
    0x4f04    113    find_urgent_task
    0x4f75    234    task_select
    0x505f    78    isr_exec_stuff
    0x50ad    214    isr_exec
    0x5183    60    execprep
    0x51bf    44    exec_idle
    Total:    2174 bytes.

bmalloc.c, 0x51eb..0x5512 = 807 bytes.
    Address    Length    Symbol
    0x51eb    53    bmallocinit
    0x5220    91    bfree
    0x527b    509    bmalloc
    0x5478    154    bremalloc
    Total:    807 bytes.

sort.c, 0x5512..0x55b6 = 164 bytes.
    Address    Length    Symbol
    0x5512    164    bubblesort
    Total:    164 bytes.

sci.c, 0x55b6..0x566d = 183 bytes.
    Address    Length    Symbol
    0x55b6    131    sci0_init
    0x5639    28    sci_tx
    0x5655    24    sci_rx
    Total:    183 bytes.

ect.c, 0x566d..0x5693 = 38 bytes.
    Address    Length    Symbol
    0x566d    38    ect_init
    Total:    38 bytes.

crg.c, 0x5693..0x56a9 = 22 bytes.
    Address    Length    Symbol
    0x5693    22    rti_init
    Total:    22 bytes.

TOTAL: 5800 bytes, 1 bytes unaccounted for (5801 bytes actual).