Compatible software for humans and processors.

Japanese
eSOLEmbedded,Engineering and Enabling Solution

Home > Embedded Systems Solution > RTOS Suite > eT-Kernel/Extended

Embedded Products Solution Contact us

RTOS supporting memory protection/process model

eT-Kernel/Extended
T-Engine T-Engine Appliance

Overview

eT-Kernel/Extended is a real-time OS supporting memory protection and a process model, a distinction from µITRON. It is optimal for a large scale systems. It is based on the "T-Kernel/Standard Extension" standardized by the T-Engine forum, many more extensions are included than with eT-Kernel/Compact and eT-Kernel/Standard. eT-Kernel/Extended fully supports memory protection with a MMU (memory management unit) and a process model.

Memory protection

eT-Kernel/Extended offers memory protection with a MMU. This feature detects and prevents an executing process from accidentally destroying another process's memory area or kernel resource. Even if a program malfunctions during system operation, damage can be minimized. A loadable driver or subsystem can be added without worry.

Process model

eT-Kernel/Extended offers a UNIX-like process management function using virtual addressing. Development and debugging by process is perfect for a large team working on a large system. Each component can be divided into a distinct process independent of others.

Basic functions of eT-Kernel/Extended

eT-Kernel/Extended has the following basic functions.

Memory management Management of local memory, shared memory, and system memory
Process/task management Various functions necessary for a single-user/multi-process system
Messaging between processes Send and receive messages between any given processes
Global data Functions to generate data shared by processes with a given name, and the ability to reference data by a generated name
Synchronization/communication between tasks Mechanisms to synchronize and communicate between tasks (semaphore, mutex, event flag, mailbox, message buffer, rendezvous)
POSIX file system POSIX-compliant file input/output
Event management Functions to handle and manage incident notifications from various devices as events
Device management Functions to operate a registered device by T-Kernel's device management function
Timer management Functions to get/set system time and to convert system time to a calendar date/time
System management Function to get version information and to load/unload a system program
Shared library Functions to manage a program or library that can be shared by multiple processes

Types of programs developed by eT-Kernel/Extended

eT-Kernel/Extended offers a process for building upper layer applications and a system program for building kernel applications, including loadable drivers and middleware. This combination is best for a large team developing a large system because the entire system can be designed and developed in parts.

Also, a mixture of shared libraries and DLLs can be used from a process, making system configuration flexible while saving memory space.


Process

eT-Kernel/Extended offers a process scheme suitable for building applications. There are two types of processes:

  • User process
    The CPU operates in user mode in a special address space assigned to the process. The kernel memory and I/O area are not accessible.
  • System process
    The CPU operated in system mode in a special address space assigned to the process. The kernel memory and I/O area are accessible.
What is a process?

A process is a complete and solitary unit of program execution that does not interfere directly with other processes. A process has its own resources allocated, such as unique address space, memory and execution time.

A process consists of one or more tasks. A task is an execution unit within a process, and is sometimes called a thread. Tasks can share resources within the process freely. For example, multiple tasks can access the same variable in the process. A task cannot access a resource that belongs to a different process.


System program

A system program is a kernel application that operates in the same address space as T-Kernel. System programs include a device driver, subsystem, and other kernel applications. A system program can be either linked to T-Kernel statically or loaded dynamically by the system as a separate link. Dynamic loading can make updating a driver or system library easy and improve development efficiency.


Shared library

A shared library is used by multiple processes. A regular library is statically linked to each process image that references the library when the program is built. When using a shared library, multiple processes share one library image. All shared libraries used by processes are loaded to local memory in the process before an application is executed, but are not stored in the image.


DLL (Dynamic Link Library)

A DLL is a library that can be loaded during process execution. Unlike a shared library, a DLL is not loaded before application execution. It is loaded when a process calls an API to load the DLL. A DLL is best for a plug-in module.


eT-Kernel/Extended configuration

Reusing software built on eT-Kernel/Compact

You can reuse a device driver or middleware that is built on eT-Kernel/Compact or eT-Kernel/Standard, as long as it has the same model as µITRON on eT-Kernel/Extended as a kernel application without any modification.

Debugging with eBinder

A user process/system process, system program, shared library, and DLL may all be developed using eBinder. eBinder assists in debugging a process, tasks within a process or even device drivers. It is only necessary to learn eBinder once, even when using using more than one target environment, including PrKERNELv4, eT-Kernel/Compact, eT-Kernel/Standard, and eT-Kernel/Extended.

Back to top

Unique functions of eT-Kernel/Extended

In addition to all functions available from the T-Kernel Standard Extension, eT-Kernel/Extended offers the following unique functions.

Exception manager

This function detects a CPU exception and notifies the user application. It gathers important system information (the CPU's internal information, such as the CPU register set, MMU, and coprocessor, and the kernel's internal information, such as the task name and task ID that triggered the CPU exception,) when a CPU exception occurs and outputs the information on the serial console. This system information can also be acquired using APIs in C. Using the exception manager, a user can embed a processing program for reviewing CPU exceptions immediately, or can log them for defect analysis.

Add extension commands to the target shell

The target shell is a command library for an embedded system similar to a UNIX shell. It offers various commands equivalent to the OS's system calls. A user can add new commands to the target shell. The target shell can be embedded in the final system to provide maintenance access and a point of inspection. Scripts (a series of commands) may be used to run multiple commands.

A user can call the command library from outside of the system via a communication port as well as from an application. Not only a serial port but also eBinder's debug port can be used as the communication port. When using eBinder's debug port, VTTY is available as the console. Using VTTY via eBinder's debug port is very useful when the console driver for a target system is not ready or available.

High speed boot function

This function makes booting fast when booting the system for the second time or more. Booting can be more than ten times faster than normal depending on the system configuration. This feature is available if the RAM contents are nonvolatile when the system is reset. eT-Kernel/Extended has a table in its memory to manage a variety of information such as addresses of previously loaded programs (process, system program, DLL, etc.) and configuration files loaded at startup. eT-Kernel/Extended searches for files on the memory from this table and reads these cached files from the memory in order to skip loading from the storage media.

POSIX file system APIs

eT-Kernel/Extended has a logical file system that supports POSIX file system APIs. The APIs are pre-integrated into the thread-safe C library. APIs may be called from a process or kernel application, including system programs.

Compared to T-Kernel/SE, which also has POSIX file service APIs, eT-Kernel/Extended expands the POSIX file system, further integrating with the thread-safe standard C library to cover most of the POSIX file services. A FAT file system PrFILE2 is integrated as the standard file system available via the POSIX interface.

Stay tuned: in the future, the pthread library will be supported for POSIX in addition to file system APIs.

POSIX file mapping

eT-Kernel/Extended supports file memory mapping using mmap(). Memory mapping can be used for two or more processes' shared memory.

Data section protection for task stack and system program

eT-Kernel/Extended has a feature to prevent pointer overrun/underrun and protect the .data/.bss section in a task stack or system program. If overflow/underflow occurs in a stack or data section, the protection function triggers a CPU exception to prevent other memory areas from destruction.

Back to top

Operation environment

Item Summary
CPU eT-Kernel/Extended operates on the following CPUs:
  • MIPS architecture
  • ARM and SH will be supported soon.

Back to top

Success stories

Car navigation system
Denso Corporation Next generation car navigation system

Back to top

Contact us

Back to top

Contact us