ST7, COSMIC

embOS for ST7 was developed for and with COSMIC's CXST7 compiler and supports the long stacked memory model offered by this compiler. It comes with easy to use start projects for COSMIC's IdeaST7 embedded workbench. Software development with debugger or ZAP simulator is supported.

Resources and performance data

Memory usage
Kernel size (ROM) approx. 2000 bytes
Kernel RAM usage 27 bytes
RAM usage per task control block 17 bytes
RAM usage per resource semaphore 4 bytes
RAM usage per counting semaphore 2 bytes
RAM usage per mailbox 11 bytes
RAM usage per software timer 9 bytes
RAM usage event 0 bytes
Min. stack-size per task (RAM) 45 bytes
Timing
Context switch time 208 µs
Interrupt latency time 49.5 µs
Kernel CPU usage/TICK less than 1% of total calculation time at 1000 Interrupts/second (1ms TICK)
Basic time unit (TICK) typ. 1 ms, min. 100 µs (10 kHz interrupt frequency)
Features
Max. no. of tasks Unlimited (by available RAM only)
Max. no. of mailboxes unlimited (by available RAM only)
Max. no. of semaphores (resource/binary/counting) unlimited (by available RAM only)
Max. no. of software timers unlimited (by available RAM only)
Max. no. of priorities 255
Stack size idle task (RAM) 0(no memory needed)
Nested interrupts not supported
Task switches from within ISR possible

Absolute timings given above were measured with embOS release build on an ST72F521 CPU running at 8MHz.
Note that task switch time depends on stack usage of a task.

embOSView offers system analysis during runtime

embOSView with ST72F521 CPU


Release notes

Updated: 2004-12-27 [AW] V3.24b

  1. Tool chain used for build
  2. Performance
  3. New features
  4. Improvements
  5. Program corrections
  6. Known problems/limitations
  7. Release history
  8. Miscellaneous

Tool chain used for build

The following tools have been used:


Compiler: Cosmic CxST7
Assembler: Cosmic Cast7
Librarian: Cosmic Clib
Workbench: Cosmic Idea V2.9

Performance

  1. Task switch time (long stack model, Release build)
    ST72F521: 208 us
  2. Interrupt latency (long stack model, Release build)
    ST72F521: 49.5 us

Absolute timings are based on 8 MHz internal CPU clock
Task switch time depends on actual stack usage

New features

Version 3.22a

  1. OS_PutMailFront() / OS_PutMailFront1
    New mailbox functions to enable LIFO behavior of mailboxes.
  2. OS_PutMailFrontCond() / OS_PutMailFrontCond1()
    New conditional mailbox functions to enable LIFO behavior of mailboxes.

Version 3.20

  1. OS_Suspend() / OS_Resume() implemented
    New functions to suspend and resume tasks unconditionally.
  2. Fixed size memory blocks implemeted
    New functions to allocate fixed size memory blocks from embOS.

Version 3.10k

  1. OS_GetMailTimed()
    New mailbox retrieving function with timeout.

Version 3.10d

  1. OS_GetpCurrentTimer()
    New info routine. May be used in timer callback routines to examine which timer expired.
  2. OS_GetpCurrentTask()
    New info routine. May be used to examine current running task.

Version 3.10

  1. Data format for communication with embOSView modified
    For terminal I/O in embOSView, the data farmat was changed. Therefore embOSView V3.10 or later is required.
  2. OS_WaitSingleEvent()
    Unmasked events remain unchanged when function returns.
  3. OS_WaitSingleEventTimed()
    Unmasked events remain unchanged when function returns. Timeout for waiting can be specified.

Version 3.08

  1. Message Queues
    Message queues enable intertask communication with messages of various size.

Improvements

NONE

Program corrections

Version 3.24b

  1. OS_GetTime() function corrected
    OS_GetTime() implementation for ST7 CPU enabled interrupts.
    This could cause malfunction of embOS software timers as a side-effect. Software timers might have been blocked even though they were retriggered.
    This problem exists in all previous embOS versions for ST7 and is fixed with version 3.24b.

Version 3.10p

  1. GetMail functions corrected
    Internal functions for retrieving mail from a mailbox did not disable interrupts. This could cause message losses, when mail was written into mailboxes from within interrupt handlers.
    This problem exists in all previous embOS versions and is fixed with version 3.10p.

Known problems / limitations

Version 3.10d

  1. Only long stack memory model supported

  2. Nested interrupts not supported by embOS

Release history

Version Release date Short explanation
V3.24b 27. Dec 2004 New embOS sources 3.24b, embOS timer problem fixed
V3.10d 05. Aug 2002 First release
V3.08 27. Mar 2002 First trial release

Miscellaneous

This document was first released with version 3.10d of the software.
Software released earlier is documented internally.
This information is available at request.