Head office Germany
US office
                   


V850/E/ES, Green Hills

embOS for NEC V850 was developed for and with Green Hills compiler and supports all memory models offered by this compiler. It comes in two versions with an easy to use start project for Green Hills Multi 1.8.9 and Multi 2000 embedded workbench. Software development with debugger and simulator is supported.

Resources and performance data

Memory usage
Kernel size (ROM) 1708 bytes
Kernel RAM usage 41 bytes
RAM usage per task control block 32 bytes
RAM usage per resource semaphore 8 bytes
RAM usage per counting semaphore 8 bytes
RAM usage per mailbox 20 bytes
RAM usage per software timer 20 bytes
RAM usage event 0 bytes
Min. stack-size per task (RAM) 256 bytes
Timing
Context switch time max. 192 clock cycles (6 µs), independent of number of tasks
Interrupt latency time max. 64 clock cycles (2 µs)
Kernel CPU usage/TICK less than .15% of total calculation time at 1000 Interrupts/second (1ms TICK)
Basic time unit (TICK) typ. 1 ms, min. 10 µs (100 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 256
Stack size idle task (RAM) 0(no memory needed)
Nested interrupts permitted
Task switches from within ISR possible

Absolute timings given above were measured with embOS release build on an V850EMS1 CPU running at 32MHz.

embOSView offers system analysis during runtime

embOSView with NEC V850EMS1

Available Emulators

  • NEC

Additional information

Green Hills Web site for additional compiler info / support


Release Notes embOS V850 for GHS Multi 1.8.9 compiler
Release Notes embOS V850 for GHS Multi 2000 compiler


Release notes embOS V850 for GHS Multi 1.8.9 compiler

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

Tool chain used for build

The following tools have been used:


Compiler: GHS CCV850/CCV850e r23
Assembler: GHS Asm850 r23
Librarian: GHS AX r23
Workbench: GHS Multi V1.8.9 r23

New features

Version 3.06

  1. Serial interface for embOSView shared with application
    The serial interface used for communication with embOSView is now available for the application.
    embOSView can serve as a terminal for the target application in parallel with trace and profiling over the same serial interface.
    The user application can call the new function OS_SendString() to send data to the terminal, OS_SetRxCallback() to set a callback function for received characters.
  2. Trace build added
    embOS can be traced during runtime with embOS Viewer version 3.06.
    This allows monitoring of the API functions and their parameters called by the application.
    Task- and API-specific filters can be defined via embOSView or directly by the application program via new API calls.
    This functionality requires the trace build libraries.
  3. New event function
    OS_WaitEventTimed() implemented to handle timeout conditions during waiting for events.
  4. New info function
    OS_IsTask() implemented to check, whether task actually exists.

Version 3.04h

  1. Dynamic profiling
    Profiling code is now executed only if turned on at run time. This means that the profiling builds now have almost the same performance as the non-profiling builds if the kernel is not communicating with the viewer.

Version 3.04

  1. Support for embOSView
    embOS Viewer can communicate with embOS via UART if the MCU is properly initialized and the required interrupt routines are present. (Default for V850E is UART 1, 38400 baud). This can be easily changed in RTOSInit.c
    embOSView is now shipped with the software.
  2. Profiling
    New profiling builds allow measurement of task execution times.
  3. Improved support for nested interrupt
    OS_EnterNestableInterrupt(), OS_LeaveNestableInterrupt() defined.
  4. New timer functions introduced
    OS_SetTimerPeriod(),OS_GetTimerPeriod() introduced, to modify / check reload value of timer.
    OS_GetTimerStatus() introduced to check whether timer is active.
    OS_GetTimerValue() introduced to check remaining time of timer.
  5. Additional functions
    OS_SetTimeSlice() added to modify the timeslice of a task during runtime.
    OS_CreateCSema() modified; now an initial value of sema can be set.
  6. Modified functions
    OS_ClearEvent() now returns the actual state of events before clearing.

Improvements

Version 3.06e

  1. Context switching time improved for V850 E core
    Context switching time has been reduced to 6 us
    (tiny model, V850EMS1 @33MHz)
  2. Context switching time improved for V850 SA1
    Context switching time has been reduced to 9.5 us
    (tiny model, V850SA1 @20MHz)
  3. Interrupt latency time improved for V850 SA1
    Interrupt latency time has been reduced below 7.8 us
    (tiny model, V850SA1 @20MHz)

Version 3.04r

  1. Context switching time improved
    Context switching time has been reduced to 9 us (288 cycles)
    (tiny model, V850E @33MHz)
  2. Interrupt latency time reduced
    Interrupt latency times have been reduced to better than 2 us
    (tiny model, V850E @33MHz)

Program corrections

Version 3.04

  1. Modified functions
    OS_StartTimer() changed to match doc exactly.
    OS_GetMailCond() had assertions which did not permit usage in interrupt or software timers (debug build only). Fixed.

Known problems

None

Release history

Version Release date Short explanation
V3.06e 20.Sep.2001 Scheduler and interrupt handler improved
V3.06 30.Jul.2001 First version with trace functions
V3.04r 16.Mar.2001 First version with release history

Miscellaneous

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


 


Release notes embOS V850 for GHS Multi 2000 compiler

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

Updated:
2001-09-20 [AW]

Tool chain used for build

The following tools have been used:


Compiler: GHS CCV850/CCV850e MULTI 2000, V800 v3.3
Assembler: GHS As850(e) MULTI 2000, V800 v3.3
Librarian: GHS AX MULTI 2000, V800 v3.3
Workbench: GHS Multi 2000 v3.3

New features

Version 3.06

  1. Serial interface for embOSView shared with application
    The serial interface used for communication with embOSView is now available for the application.
    embOSView can serve as a terminal for the target application in parallel with trace and profiling over the same serial interface.
    The user application can call the new function OS_SendString() to send data to the terminal, OS_SetRxCallback() to set a callback function for received characters.
  2. Trace build added
    embOS can be traced during runtime with embOS Viewer version 3.06.
    This allows monitoring of the API functions and their parameters called by the application.
    Task- and API-specific filters can be defined via embOSView or directly by the application program via new API calls.
    This functionality requires the trace build (DT or EDT libraries)
  3. New event function
    OS_WaitEvent_Timed() implemented to handle timeout conditions during waiting for events.

Version 3.04h

  1. Dynamic profiling
    Profiling code is now executed only if turned on at run time. This means that the profiling builds now have almost the same performance as the non-profiling builds if the kernel is not communicating with the viewer.

Version 3.04

  1. Support for embOSView
    embOS Viewer can communicate with embOS via UART if the MCU is properly initialized and the required interrupt routines are present. (Default for V850E is UART 1, 38400 baud). This can be easily changed in RTOSInit.c
    embOSView is now shipped with the software.
  2. Profiling
    New profiling builds allow measurement of task execution times.
  3. Improved support for nested interrupt
    OS_EnterNestableInterrupt(), OS_LeaveNestableInterrupt() defined.
  4. New timer functions introduced
    OS_SetTimerPeriod(),OS_GetTimerPeriod() introduced, to modify / check reload value of timer.
    OS_GetTimerStatus() introduced to check whether timer is active.
    OS_GetTimerValue() introduced to check remaining time of timer.
  5. Additional functions
    OS_SetTimeSlice() added to modify the timeslice of a task during runtime.
    OS_CreateCSema() modified; now an initial value of sema can be set.
  6. Modified functions
    OS_ClearEvent() now returns the actual state of events before clearing.

Improvements

Version 3.06e

  1. Context switching time improved for V850E
    Context switching reduced to 5.5 us
    (V850E @33MHz)
  2. Context switching time improved for V850/SA1
    Context switching reduced to 9.8 us
    (V850/SA1 @20MHz)
  3. Interrupt latency improved for V850/SA1
    Interrupt latency time has been reduced below 7.8 us
    (V850/SA1 @20MHz)

Version 3.06

  1. Context switching time improved
    Context switching time has been reduced to 8 us (264 cycles)
    (V850E @33MHz)
  2. Interrupt latency time reduced
    Interrupt latency times have been reduced to better than 1 us
    (V850E @33MHz)
  3. Context switching time specified for V850/SA1
    Context switching time has been measured: 12.5 us
    (V850/SA1 @20MHz)
  4. Interrupt latency time specified for V850/SA1
    Interrupt latency time has been measured better than 12.5 us
    (V850/SA1 @20MHz)

Version 3.04r

  1. Context switching time improved
    Context switching time has been reduced to 9 us (288 cycles)
    (tiny model, V850E @33MHz)
  2. Interrupt latency time reduced
    Interrupt latency times have been reduced to better than 2 us
    (tiny model, V850E @33MHz)

Program corrections

Version 3.04

  1. Modified functions
    OS_StartTimer() changed to match doc exactly.
    OS_GetMailCond() had assertions which did not permit usage in interrupt or software timers (debug build only). Fixed.

Known problems

None

Release history

Version Release date Short explanation
V3.06e 20.Sep.2001 Scheduler improved
V3.06 07.Jun.2001 New version with trace functions
V3.04r 16.Mar.2001 First version with release history

Miscellaneous

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