1 / 60

dooroos.embedded

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

euclid
Download Presentation

dooroos.embedded

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. dooroos.embedded

  2. Contents • I. VISION • dooroos.embedded • USE dooroos.embedded

  3. VISION

  4. 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

  5. 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

  6. dooroos

  7. dooroos.embedded • About dooroos.embedded • NANO - KERNEL • MICRO - KERNEL • MACRO - KERNEL

  8. 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

  9. 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

  10. dooroos.embedded Backplane • Bus emulation (Message-Bus) • Communication between servers • Modularity • Independency • Scalability SERVER1 SERVER2 SERVERn … nano-kernel ( Message-Bus)

  11. 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.

  12. 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

  13. 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

  14. 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

  15. 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

  16. 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

  17. 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

  18. 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

  19. Directory View dooroos/embedded Application BIN OS GCC IAR include PLATFORM common Public Workspace

  20. 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”

  21. dooroos.embedded • About dooroos.embedded • NANO - KERNEL • MICRO - KERNEL • MACRO - KERNEL

  22. NANO-KERNEL Structure NANO-KERNEL library MESSAGE BUS Thread Management TRAP HAL HARDWARE

  23. 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

  24. 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

  25. Port / Channel

  26. Thread Model Thread ID Priority Level Stack Message Queue CPU Register Values Other Thread Options

  27. dooroos.embedded • About dooroos.embedded • NANO - KERNEL • MICRO - KERNEL • MACRO - KERNEL

  28. MICRO-KERNEL Structure TIME SERVER SYNC. SERVER DEVICE SERVER

  29. 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

  30. SYNCHRONIZATION SERVER • services all the synchronizations and communications between Threads • Semaphore • Mutex • CriticalSection • ConditionalVariable • Event • Message Queue • FUTEX

  31. DEVICE SERVER (Device Management)

  32. Device Driver Model Application Device Server File Server Window Server Network Server Kernel Device Drivers (DRV) TouchP KeyBd Display NIC Platform

  33. 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

  34. 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

  35. 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

  36. SystemCall Model Kernel Components dooroos .realtime SYSTEM CALL OPENED INTTERUPT INTTERUPT BLOCKED Others

  37. 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

  38. USB M/S Driver Example Message Bus Flash driver thread USB M/S driver thread JFTL USB cable PC FLASH USB DEVICE

  39. 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

  40. dooroos.embedded • About dooroos.embedded • NANO - KERNEL • MICRO - KERNEL • MACRO - KERNEL

  41. FILESYSTEM SERVER

  42. FILESYSTEM SERVER APPLICATION FILESYSTEM SERVER Tasks (threads) 1 FILESYSTEM SERVER RAMFS 2 ROMFS FATFS 3 Block Driver BLOCK DEVICE

  43. Logical FILESYSTEM Structure Tasks (threads) ROOT (BD1) FILESYSTEM SERVER wav romdoc FATFS MMC (BD2) BLOCK DEVICE_1 (ROOT) BLOCK DEVICE_2 (MMC) wav romdoc

  44. NETWORK SERVER

  45. 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

  46. WINDOW SERVER

  47. 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

  48. Example of Widget & Window All drawing unit is called  widget WINDOW Widget

  49. 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

  50. WINDOW SERVER WINDOW SERVER APPLICATION Tasks (threads) 2 1 Windows (Widgets) Window Server Widget procedure 3 Widget Draw GL library KBD Mouse TCH LCD

More Related