650 likes | 804 Views
dooroos.realtime. Contents. I. VISION dooroos.realtime USE dooroos.realtime. VISION. VISION. various embedded system third party application field. APPLICATIONS Third party. TOP applied RTOS. game engine multimedia graphic. LIBRARY. network server windows server
E N D
Contents • I. VISION • dooroos.realtime • USE dooroos.realtime
VISION • various embedded system • third party • application field • APPLICATIONS • Third party TOP applied RTOS • game engine • multimedia • graphic • LIBRARY • network server • windows server • filesystem server • device server • MIDDLEWARE • kernel function • modularity • all platform porting • dooroos • .realtime KERNEL
LOADMAP 2002~2005 2011 ~ 2006 2007~2008 2009 ~ 2011 • Nano kernel for ARM • Micro kernel • Device Server • Filesystem server • Window server • Network server • Porting/Testing to various hardware • PC Emulator • dooroos.realtime • IDE Tools is serviced • Visual IDE Tools • dooroos.embedded • New OS function • is added • Useful Device • Driver is added • OS function • is expaned • Add standard • Device Driver • Loader Server is added • Add useful Graphic Library • Useful network • protocol is added • Add multimedia • library • Sample Apps is • provided • All library is converted • to DLL files • All device driver is converted • to Driver DLL (DRV file) • Many useful Middleware is • added • Graphic Library • is expanded • Support • the various tools JBOSN RTOS 1st Generation
app app app app1 dooroos.RealTime Structure NETWORK SERVER WINDOW SERVER apps apps apps apps FILESYSTEM SERVER MACRO-KERNEL DEVICE SERVER DLL DLL DLL MICRO-KERNEL SYNC SERVER SYSTEM SERVER DRV TIME SERVER NANO-KERNEL DLL DRV DRV DRV DRV NANO KERNEL
dooroos.realtime • About dooroos.realtime • NANO - KERNEL • MICRO - KERNEL • MACRO - KERNEL
GENERAL OS Functions & structures WINDOW APPLICATIONS DEVICE MANAGER NETWORK IPC FIELSYSTEM TIME RESOURCE MANAGE RAM FAT ROM TASK/THREAD MANAGE Device drivers HAL NetDrvs Display Input H/W
dooroos.realtime Design Principles • Kernel • 1. Multi-Layer kernel structure: • modularity, portability, scalability • 2. Multi-Tasking/Thread and flexible IPC • 3. Precise timer and Priority based real time scheduler • 4. Scalable hard-real-time • 5. No interrupt blocking • I/O manager • Constant device management and efficient I/O system • Driver module • Resource Management • Cost efficient use of memory • Reliable and Robust system services • User • Easy to use • Low latency
dooroos.realtime Backplane • Bus emulation (Message-Bus) • Communication between servers • Modularity • Independency • Scalability SERVER1 SERVER2 SERVERn … nano-kernel ( Message-Bus)
app app app app1 dooroos.realtime Structure NETWORK SERVER WINDOW SERVER FILESYSTEM SERVER MACRO-KERNEL DEVICE SERVER MICRO-KERNEL SYNC SERVER SYSTEM SERVER TIME SERVER LOADER SERVER NANO-KERNEL NANO KERNEL
Advantages 1.Modularity Nano-kernel Minimum real-time operating system and library (16KB) Micro-kernel Principal RTOS servers, 3 server ( system server, time server, sync server) Macro-kernel Expanded RTOS servers. (loader, device server, filesystem server, window server, network server) library/Driver/HAL Consisted of the necessary library, device driver and HAL applications Applications by user 2.Scalability Main function is designed by server concept and added to dooroos.realtime. So, User-required server can be developed by server concept. Server concept User developed library The in-house library can be added and applied to server-development. Mutual exclusion The resources is mutually exclusive between servers, then the expansion of required function is very easy. 3.Stability Independency The independency between modules increase the stability and make easy to debug. modular The modules are separated in physical area. Error propagation The problem of one module can not propagate to the others. 4.Memory Small memory requirement The memory requirement of modules are very small. For example Nano-kernel size is 16KB. Efficient relocation All modules can be generated by separated binary images. The relocation is very easy and efficient.
dooroos.realtime Structure Application Application Application DEVICE SERVER WINDOW SERVER NETWORK SERVER FILESYSTEM SERVER LOADER SERVER MACRO KERNEL SYSTEM SERVER TIME SERVER SYNC. SERVER MICRO KERNEL MESSAGE BUS NANO KERNEL MEMORY MANAGEMENT Task/Thread Management TRAP DEVICE DRIVER DEVICE DRIVER HAL HARDWARE
ROM IMAGE LAYOUT Window (Widget) ROM/DISK RAM Filesystem (DLL, DRV) Application Task(threads) NETWORK SERVER WINDOW SERVER GL library DLL FILESYSTEM SERVER Widget Draw DLL DEVICE SERVER FAT library DLL LOADER SERVER Drivers DRV dooroos .realtime (DLL, DRV) SYNC. SERVER Hardware DLL TIME SERVER SYSTEM SERVER System Configuration NANO-KERNEL HAL PLATFORM JBOOT
dooroos.realtime • About dooroos.realtime • NANO - KERNEL • MICRO - KERNEL • MACRO - KERNEL
NANO-KERNEL Structure NANO-KERNEL library MESSAGE BUS MEMORY MANAGEMENT Task/Thread Management TRAP HAL HARDWARE
Message Req/Resp Channel Key Convert Key to port 3 1 Port Port 2 Server Client 4 4 2 1 3 Port Port
Message Structure #define JB_MESSAGE_CONTENTS \ UINT32 Type; \ UINT32 Param; \ typedefstruct _JB_MESSAGE { JB_MESSAGE_CONTENTS } JB_MESSAGE, *JB_PMESSAGE; typedef struct _JB_RECVMESSAGE { JB_MESSAGE_CONTENTS HANDLE hSender; HANDLE Handle; // NOT FOR USER: only for device handle on io_subsystem } JB_RECVMESSAGE, *JB_PRECVMESSAGE;
Server Model Server Port & Channel Setting Message Receive Message Service… Message Service… Message Service… Message Reply
Device Driver Model Device Driver Port & Channel Setting Driver Registration Message Receive Message Service… Message Service… Message Service… Message Reply
KERNEL DESIGN • Portable across microprocessors • : No exposed API for porting • Supports RAM/ROM execution • : Other modules support RAM/ROM execution • Supports Nano-Kernel architecture • : Server concept
Task/Thread Model • Unlimited tasks, unlimited threads • Full synchronization primitives • Multitasking, preemptive, priority based scheduler • : 256 priority levels, reserved for server • Low ISR and thread latency • Easy implementation of driver with ISR
Task/Thread Model Task ID Other resources Thread ID Priority Level HEAP Stack Message Queue CPU Register Values Primary Thread Other Thread Options Threads
Memory Model • User selection of MMU use • Special low memory handling mechanisms • User modified slab mechanism • : Partition concept • : page concept • Fast IPC, sharing • Shared memory, Local heaps • Common system wide low memory handler
dooroos.realtime • About dooroos.realtime • NANO - KERNEL • MICRO - KERNEL • MACRO - KERNEL
MICRO-KERNEL Structure SYSTEM SERVER TIME SERVER SYNC. SERVER
TIME SERVER • services all the time related function • RTC time management • System time management • DriverTimer management • Application Timer management • Alarm Timer management • Thread Quantum management • Watch-Dogmanagement • Sleep
SYNCHRONIZATION SERVER • services all the synchronizations and communications between Task/Threads • Semaphore • Mutex • CriticalSection • ConditionalVariable • Event • Message Queue
SYSTEM SERVER • services all the system resource management • Creation/Destroy of Task/Thread • Message-Bus Port management • Message-Bus Channel management • Memory management • Power management
Memory Model RAM User responsibility Partition User responsibility Partition Memory Pool User allocation / User responsibility
dooroos.realtime • About dooroos.realtime • NANO - KERNEL • MICRO - KERNEL • MACRO - KERNEL
DEVICE SERVER (Device Management)
Device Driver Model Application I/O Server File Server Window Server Network Server Kernel Device Drivers (DRV) TouchP KeyBd Display NIC Platform
Interrupt Model • All work encouraged to be done in driver servers • OS provides easy connecting to driver server • No nesting interrupt • Yields more deterministic latencies
Interrupt Model ISR Thread Device Driver Server Kernel Components INT signal Exception Handler Interrupt Message Handler Virtual INT Interrupt Service Routine HAL Routines INT Hardware
Interrupt Model INT_A INT_A INT_B Driver Layer dooroos INT_A INT_B Kernel Layer Nesting INT_A INT_B INT_A No Nesting INT_A INT_B INT_A INT_B
SystemCall Model Kernel Components dooroos .realtime SYSTEM CALL OPENED INTTERUPT INTTERUPT BLOCKED Others
Keyboard Driver Message Bus Driver thread (loop) Message Receive interrupt Send keyinput to Window server read adc/gpio Time signal read write I/O control
USB M/S Driver Example Message Bus Flash driver thread USB M/S driver thread JFTL USB cable PC FLASH USB DEVICE
Logical device driver structure APPLICATION FILESYSTEM SERVER WINDOW SERVER Synchronization server NETWORK SERVER Time server DEVICE SERVER LOADER SERVER FAT12/16/32 ROM RAM library (DLL) GRAPHIC LIBRARY (DLL) System server NETWORK PROTOCOL Nano-kernel Mixer JFTL (DRV) HAL NetDrvs USB M/S UART LCD TOUCH KBD Sound FLASH H/W cpu core
FILESYSTEM SERVER
FILESYSTEM SERVER APPLICATION FILESYSTEM SERVER Tasks (threads) 1 FILESYSTEM SERVER RAMFS DLL 2 ROMFS DLL FATFS DLL 3 Block Driver (DRV) BLOCK DEVICE
Logical FILESYSTEM Structure Tasks (threads) ROOT (BD1) FILESYSTEM SERVER wav romdoc FATFS DLL MMC (BD2) BLOCK DEVICE_1 (ROOT) BLOCK DEVICE_2 (MMC) wav romdoc
NETWORK SERVER
NETWORKSERVER Tasks (threads) Applications Applications SOCKET INTERFACE TCP UDP NETWORK SERVER NETWORK SERVER IP ICMP IP RARP RARP ARP ARP NIC1 NIC1 NIC2 NIC2 NICn NICn DEVICE DRIVERS DEVICE DRIVERS
WINDOW SERVER