600 likes | 794 Vues
dooroos.embedded. Contents. I. VISION dooroos.embedded USE dooroos.embedded. 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.embedded • USE dooroos.embedded
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 • MIDDLEWARE • Device manager • kernel function • modularity • all platform porting • dooroos • .embedded • KERNEL
LOADMAP 2002~2005 2012 ~ 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
dooroos.embedded • About dooroos.embedded • 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.embedded 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, small memory requirement • Reliable and Robust system services • User • Easy to use • Low latency
dooroos.embedded Backplane • Bus emulation (Message-Bus) • Communication between servers • Modularity • Independency • Scalability SERVER1 SERVER2 SERVERn … nano-kernel ( Message-Bus)
Advantages 1.Modularity Nano-kernel Minimum real-time operating system and library (16KB) Micro-kernel Principal servers, 3 server (time server, sync server, device server) Macro-kernel Expanded servers. (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/Micro-kernel size is 12KB. Efficient relocation All modules can be generated by separated binary images. The relocation is very easy and efficient.
app app1 dooroos.embedded Structure NETWORK SERVER apps WINDOW SERVER apps apps FILESYSTEM SERVER MACRO-KERNEL MICRO-KERNEL DEVICE SERVER SYNC SERVER TIME SERVER NANO-KERNEL NANO KERNEL
dooroos.embedded Structure Application WINDOW SERVER NETWORK SERVER FILESYSTEM SERVER MACRO KERNEL Device SERVER TIME SERVER SYNC. SERVER MICRO KERNEL MESSAGE BUS NANO KERNEL Thread Management TRAP DEVICE DRIVER DEVICE DRIVER HAL HARDWARE
ROM IMAGE LAYOUT Window (Widget) ROM/DISK RAM Filesystem Application Task(threads) Widget Draw NETWORK SERVER GL library WINDOW SERVER FILESYSTEM SERVER DEVICE SERVER System Configuration dooroos .embedded SYNC. SERVER TIME SERVER FAT library NANO-KERNEL Drivers HAL PLATFORM
LAYOUT Example1 (OS and Application are united) Text ROM/Flash Data RAM Application NETWORK SERVER WINDOW SERVER FILESYSTEM SERVER DEVICE SERVER TIME SERVER SYNC. SERVER NANO-KERNEL PLATFORM/Driver Application NETWORK SERVER WINDOW SERVER FILESYSTEM SERVER DEVICE SERVER TIME SERVER SYNC. SERVER NANO-KERNEL PLATFORM/Driver OS OS
LAYOUT Example2 (OS and Application are separated) Text ROM/Flash RAM Data Application Application OS OS NETWORK SERVER WINDOW SERVER FILESYSTEM SERVER DEVICE SERVER TIME SERVER SYNC. SERVER NANO-KERNEL PLATFORM/Driver NETWORK SERVER WINDOW SERVER FILESYSTEM SERVER DEVICE SERVER TIME SERVER SYNC. SERVER NANO-KERNEL PLATFORM/Driver
LAYOUT Example3 (OS, Driver and Application are separated) Text ROM/Flash RAM Data Application Driver Application Driver OS OS NETWORK SERVER WINDOW SERVER FILESYSTEM SERVER DEVICE SERVER TIME SERVER SYNC. SERVER NANO-KERNEL PLATFORM/Driver NETWORK SERVER WINDOW SERVER FILESYSTEM SERVER DEVICE SERVER TIME SERVER SYNC. SERVER NANO-KERNEL PLATFORM/Driver
LAYOUT Example4 (OS, Driver and Application are separated) Text ROM/Flash RAM Data Application Application Driver Driver OS OS NETWORK SERVER WINDOW SERVER FILESYSTEM SERVER DEVICE SERVER TIME SERVER SYNC. SERVER NANO-KERNEL PLATFORM/Driver NETWORK SERVER WINDOW SERVER FILESYSTEM SERVER DEVICE SERVER TIME SERVER SYNC. SERVER NANO-KERNEL PLATFORM/Driver
Directory View dooroos/embedded Application BIN OS GCC IAR include PLATFORM common Public Workspace
BOOT STEP PLATFORM • Exception table initialization • Set the temporary stack • Set up the memory map • Jump to nano-kernel(ref. hal_locore.s) NANO-KERNEL • Register interrupt functions (ref. NKERNEL_BOOT) • Allocation for the channel memory of message • Set the stack • Create the “idle thread” • Call the function “HAL_Init” • Call the function “HAL_ClockInit” • Create the micro-kernel servers • Interrupt ON • Call the function “HAL_main” • Call the function“AppMain” • Go to the “Idle thread” Initialize the hardware Initialize the clock Initialize the user dependent code Create user thread and return immediatly • Sleep for a while • Call the function “Hal_Loader”
dooroos.embedded • About dooroos.embedded • NANO - KERNEL • MICRO - KERNEL • MACRO - KERNEL
NANO-KERNEL Structure NANO-KERNEL library MESSAGE BUS Thread Management TRAP HAL HARDWARE
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
Thread Model • Unlimited threads • Full synchronization primitives • Multithreading, preemptive, priority based scheduler • : 256 priority levels, reserved for server • Low ISR and thread latency • Easy implementation of driver with ISR
Thread Model Thread ID Priority Level Stack Message Queue CPU Register Values Other Thread Options
dooroos.embedded • About dooroos.embedded • NANO - KERNEL • MICRO - KERNEL • MACRO - KERNEL
MICRO-KERNEL Structure TIME SERVER SYNC. SERVER DEVICE 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 Threads • Semaphore • Mutex • CriticalSection • ConditionalVariable • Event • Message Queue • FUTEX
DEVICE SERVER (Device Management)
Device Driver Model Application Device 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 Expansion pack APPLICATION FILESYSTEM SERVER WINDOW SERVER Device server NETWORK SERVER Synchronization server FAT12/16/32 ROM RAM library Mixer GRAPHIC LIBRARY Time server NETWORK PROTOCOL USB M/S UART Nano-kernel JFTL HAL Sound NetDrv LCD TOUCH KBD FLASH H/W cpu core
dooroos.embedded • About dooroos.embedded • NANO - KERNEL • MICRO - KERNEL • MACRO - KERNEL
FILESYSTEM SERVER
FILESYSTEM SERVER APPLICATION FILESYSTEM SERVER Tasks (threads) 1 FILESYSTEM SERVER RAMFS 2 ROMFS FATFS 3 Block Driver BLOCK DEVICE
Logical FILESYSTEM Structure Tasks (threads) ROOT (BD1) FILESYSTEM SERVER wav romdoc FATFS 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 IP ICMP RARP RARP ARP ARP NIC NIC1 DEVICE DRIVERS DEVICE DRIVERS
WINDOW SERVER
Widget & Window Definition WINDOW is the collection of widgets WIDGET is the atomic unit of window and operations Widget0 WINDOW Widget1 Widget2 Widget2 Widget0 Widget1
Example of Widget & Window All drawing unit is called widget WINDOW Widget
Difference of dooroos.embedded - The child window should not be larger than it’s parent. - The child window should be inside of parent area. 1 SIZE - The clipping between overlapped windows is not supported. - The higher z-order window is only updated. 2 CLIPPING - The key-input is not delivered to the focused window. • The key-input is delivered to the top parent window • of the focused window. • The key-input delivery is responsibility to • the top parent window. 3 FOCUS
WINDOW SERVER WINDOW SERVER APPLICATION Tasks (threads) 2 1 Windows (Widgets) Window Server Widget procedure 3 Widget Draw GL library KBD Mouse TCH LCD