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

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
- Tool chain used for build
- New features
- Improvements
- Program corrections
- Known problems
- Release history
- 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
- 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. - 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. - New event function
OS_WaitEventTimed() implemented to handle timeout conditions during waiting for events. - New info function
OS_IsTask() implemented to check, whether task actually exists.
Version 3.04h
- 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
- 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. - Profiling
New profiling builds allow measurement of task execution times. - Improved support for nested interrupt
OS_EnterNestableInterrupt(), OS_LeaveNestableInterrupt() defined. - 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. - 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. - Modified functions
OS_ClearEvent() now returns the actual state of events before clearing.
Improvements
Version 3.06e
- Context switching time improved for V850 E core
Context switching time has been reduced to 6 us
(tiny model, V850EMS1 @33MHz) - Context switching time improved for V850 SA1
Context switching time has been reduced to 9.5 us
(tiny model, V850SA1 @20MHz) - Interrupt latency time improved for V850 SA1
Interrupt latency time has been reduced below 7.8 us
(tiny model, V850SA1 @20MHz)
Version 3.04r
- Context switching time improved
Context switching time has been reduced to 9 us (288 cycles)
(tiny model, V850E @33MHz) - Interrupt latency time reduced
Interrupt latency times have been reduced to better than 2 us
(tiny model, V850E @33MHz)
Program corrections
Version 3.04
- 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
- Tool chain used for build
- New features
- Improvements
- Program corrections
- Known problems
- Release history
- 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
- 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. - 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) - New event function
OS_WaitEvent_Timed() implemented to handle timeout conditions during waiting for events.
Version 3.04h
- 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
- 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. - Profiling
New profiling builds allow measurement of task execution times. - Improved support for nested interrupt
OS_EnterNestableInterrupt(), OS_LeaveNestableInterrupt() defined. - 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. - 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. - Modified functions
OS_ClearEvent() now returns the actual state of events before clearing.
Improvements
Version 3.06e
- Context switching time improved for V850E
Context switching reduced to 5.5 us
(V850E @33MHz) - Context switching time improved for V850/SA1
Context switching reduced to 9.8 us
(V850/SA1 @20MHz) - Interrupt latency improved for V850/SA1
Interrupt latency time has been reduced below 7.8 us
(V850/SA1 @20MHz)
Version 3.06
- Context switching time improved
Context switching time has been reduced to 8 us (264 cycles)
(V850E @33MHz) - Interrupt latency time reduced
Interrupt latency times have been reduced to better than 1 us
(V850E @33MHz) - Context switching time specified for V850/SA1
Context switching time has been measured: 12.5 us
(V850/SA1 @20MHz) - Interrupt latency time specified for V850/SA1
Interrupt latency time has been measured better than 12.5 us
(V850/SA1 @20MHz)
Version 3.04r
- Context switching time improved
Context switching time has been reduced to 9 us (288 cycles)
(tiny model, V850E @33MHz) - Interrupt latency time reduced
Interrupt latency times have been reduced to better than 2 us
(tiny model, V850E @33MHz)
Program corrections
Version 3.04
- 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.
V850/E/ES, Green Hills
