View Now - dooroos is
Download
Report
Transcript View Now - dooroos is
0
Contents
I.
VISION
II. dooroos.embedded
III. USE dooroos.embedded
1
VISION
2
VISION
APPLICATIONS
various embedded
system
third party
application field
Third party
game engine
LIBRARY
multimedia
graphic
network server
MIDDLEWARE
windows server
filesystem server
dooroos
.embedded
KERNEL
TOP
applied
RTOS
Device manager
kernel function
modularity
all platform porting
3
LOADMAP
2002~2005
• Nano kernel for
ARM
• Micro kernel
2006
2007~2008
•Porting/Testing
to various
hardware
•IDE Tools is
serviced
2012 ~
2009 ~ 2011
•PC Emulator
•
•Visual IDE Tools
• dooroos.embedded
dooroos.realtime
• Device Server
• Filesystem server
• Window server
•Add useful
Graphic Library
• Network server
• Add multimedia
library
• Sample Apps is
provided
• OS function
is expaned
• Add standard
Device Driver
• Many useful
Middleware is
added
JBOSN RTOS
• New OS function
• Loader Server is added
is added
• Useful Device
Driver is added
• Useful network
protocol is added
• All library is converted
to DLL files
• Graphic Library
is expanded
• Support
the various tools
• All device driver is converted
to Driver DLL (DRV file)
1st Generation
4
dooroos
5
dooroos.embedded
I.
About dooroos.embedded
II. NANO - KERNEL
III. MICRO - KERNEL
IV. MACRO - KERNEL
6
GENERAL OS Functions &
structures
APPLICATIONS
WINDOW
DEVICE MANAGER
FIELSYSTEM
TIME
FAT
ROM
Display
IPC
RAM
Device drivers
NetDrvs
NETWORK
RESOURCE MANAGE
TASK/THREAD MANAGE
HAL
Input
H/W
7
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
1.
2.
Constant device management and efficient I/O system
Driver module
• Resource Management
1.
2.
Cost efficient use of memory, small memory requirement
Reliable and Robust system services
• User
1.
2.
Easy to use
Low latency
8
dooroos.embedded Backplane
•
•
•
•
•
SERVER1
Bus emulation (Message-Bus)
Communication between servers
Modularity
Independency
Scalability
SERVER2
…
SERVERn
nano-kernel ( Message-Bus)
9
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
Server concept
Main function is designed by server concept and added to dooroos.realtime. So, User-required
server can be developed by 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.
10
dooroos.embedded
Structure
NETWORK
SERVER
apps
apps
WINDOW
SERVER
apps
app
app1
FILESYSTEM
SERVER
MACRO-KERNEL
DEVICE
SERVER
MICRO-KERNEL
TIME
SERVER
SYNC
SERVER
NANO-KERNEL
NANO
KERNEL
11
dooroos.embedded Structure
Application
WINDOW SERVER
Device SERVER
NETWORK SERVER
TIME SERVER
FILESYSTEM SERVER
MACRO
KERNEL
SYNC. SERVER
MICRO
KERNEL
DEVICE DRIVER
DEVICE DRIVER
MESSAGE BUS
Thread Management
TRAP
NANO
KERNEL
HAL
HARDWARE
12
ROM IMAGE
LAYOUT
RAM
Window
(Widget)
Application
Task(threads)
ROM/DISK
Filesystem
dooroos
.embedded
Widget Draw
NETWORK
SERVER
WINDOW
SERVER
FILESYSTEM SERVER
DEVICE
SYNC.
TIME
SERVER
SERVER
SERVER
GL library
System
Configuration
FAT library
NANO-KERNEL
Drivers
PLATFORM
HAL
13
LAYOUT Example1
(OS and Application are united)
Text
Data
ROM/Flas
h
RAM
Application
Application
NETWORK
SERVER
WINDOW
SERVER
FILESYSTEM SERVER
NETWORK
SERVER
WINDOW
SERVER
FILESYSTEM SERVER
O
DEVICE
TIME
SYNC.
SERVER
SERVER
SERVER
NANO-KERNEL
PLATFORM/Driver
O
DEVICE
TIME
SYNC.
SERVER
SERVER
SERVER
NANO-KERNEL
PLATFORM/Driver
14
LAYOUT Example2
(OS and Application are separated)
Text
Data
ROM/Flash
RAM
Application
Application
NETWORK
SERVER
WINDOW
SERVER
FILESYSTEM SERVER
NETWORK
SERVER
WINDOW
SERVER
FILESYSTEM SERVER
O
DEVICE
TIME
SYNC.
SERVER
SERVER
SERVER
NANO-KERNEL
PLATFORM/Driver
O
DEVICE
TIME
SYNC.
SERVER
SERVER
SERVER
NANO-KERNEL
PLATFORM/Driver
15
LAYOUT Example3
(OS, Driver and Application are separated)
Text
Data
ROM/Flash
RAM
Application
Driver
Application
Driver
NETWORK
SERVER
WINDOW
SERVER
FILESYSTEM SERVER
NETWORK
SERVER
WINDOW
SERVER
FILESYSTEM SERVER
O
DEVICE
TIME
SYNC.
SERVER
SERVER
SERVER
NANO-KERNEL
PLATFORM/Driver
O
DEVICE
TIME
SYNC.
SERVER
SERVER
SERVER
NANO-KERNEL
PLATFORM/Driver
16
LAYOUT Example4
(OS, Driver and Application are separated)
Text
Data
ROM/Flash
RAM
Application
Application
Driver
Driver
NETWORK
SERVER
WINDOW
SERVER
FILESYSTEM SERVER
NETWORK
SERVER
WINDOW
SERVER
FILESYSTEM SERVER
O
DEVICE
TIME
SYNC.
SERVER
SERVER
SERVER
NANO-KERNEL
PLATFORM/Driver
O
DEVICE
TIME
SYNC.
SERVER
SERVER
SERVER
NANO-KERNEL
PLATFORM/Driver
17
Directory View
dooroos/embedded
Application
BIN
OS
GCC
IAR
include
PLATFORM
common
Public
Workspace
18
PLATFORM
1.
Exception table initialization
2.
Set the temporary stack
3.
Set up the memory map
4.
Jump to nano-kernel(ref. hal_locore.s)
BOOT
STEP
NANO-KERNEL
1. Register interrupt functions (ref. NKERNEL_BOOT)
2. Allocation for the channel memory of message
3. Set the stack
4. Create the “idle thread”
Initialize the hardware
5. Call the function “HAL_Init”
6. Call the function “HAL_ClockInit”
Initialize the clock
7. Create the micro-kernel servers
8. Interrupt ON
9. Call the function “HAL_main”
Initialize the user dependent code
10. Call the function“AppMain”
11. Go to the “Idle thread”
Create user thread and return immediatly
1. Sleep for a while
2. Call the function “Hal_Loader”
19
dooroos.embedded
I.
About dooroos.embedded
II. NANO
- KERNEL
III. MICRO - KERNEL
IV. MACRO - KERNEL
20
NANO-KERNEL
Structure
NANO-KERNEL
library
MESSAGE BUS
Thread Management
TRAP
HAL
HARDWARE
21
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
22
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
23
Port / Channel
24
Thread Model
Thread ID
Priority Level
Message
Stack
Queue
CPU Register
Values
Other Thread
Options
25
dooroos.embedded
I. About dooroos.embedded
II. NANO - KERNEL
III. MICRO - KERNEL
IV. MACRO - KERNEL
26
MICRO-KERNEL
Structure
TIME
SERVER
SYNC.
SERVER
DEVICE
SERVER
27
TIME SERVER
services all the time related function
•
•
•
•
•
•
•
•
RTC time management
System time management
Driver Timer management
Application Timer management
Alarm Timer management
Thread Quantum management
Watch-Dog management
Sleep
28
SYNCHRONIZATION
SERVER
services all the synchronizations and communications
between Threads
• Semaphore
• Mutex
• CriticalSection
• ConditionalVariable
• Event
• Message Queue
• FUTEX
29
DEVICE
SERVER
(Device Management)
30
Device Driver Model
Application
Kernel
Window
Server
Network
Server
NIC
Device
Drivers
(DRV)
Display
KeyBd
TouchP
Platform
Device
Server
File
Server
31
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
32
Interrupt Model
ISR
Thread
Kernel Components
Exception
Handler
Interrupt
Message Handler
Virtua
l
INT
IN
T
Interrupt
Service Routine
INT
signal
Device Driver
Server
HAL
Routines
Hardware
33
Interrupt Model
dooroos
INT_A
INT_A
INT_B
INT_B
INT_A
Nesting
INT_B
INT_A
No Nesting
INT_A
Driver Layer
Kernel Layer
INT_A
INT_B
INT_B
INT_A
34
SystemCall Model
Kernel Components
Others
OPENED
SYSTEM CALL
dooroos
.realtime
INTTERUP
T
BLOCKED
INTTERUP
T
Keyboard Driver
Message Bus
Message Receive
interrupt
Time signal
Driver thread
(loop)
Send keyinput
to
read adc/gpio
Window server
read
write
I/O control
36
USB M/S Driver Example
Message Bus
Flash driver thread
USB M/S driver thread
JFTL
USB cable
PC
FLASH
USB DEVICE
37
Logical device driver structure
Expansion pack
APPLICATION
FAT12/16/32
ROM
RAM
library
Mixer
FILESYSTEM
SERVER
GRAPHIC
LIBRARY
UART
WINDOW
SERVER
NETWORK
PROTOCOL
Synchronization server
Time server
Nano-kernel
KBD
TOUCH
LCD
NetDrv
Sound
USB M/S
NETWORK
SERVER
JFTL
Device server
HAL
FLASH
H/W
cpu core
38
dooroos.embedded
I. About dooroos.embedded
II. NANO - KERNEL
III. MICRO - KERNEL
IV. MACRO - KERNEL
39
FILESYSTEM
SERVER
40
FILESYSTEM
SERVER
APPLICATION
FILESYSTEM SERVER
Tasks (threads)
1
FILESYSTEM
SERVER
2
RAMFS
ROMFS
FATFS
3
Block Driver
BLOCK DEVICE
41
Logical FILESYSTEM Structure
Tasks (threads)
FILESYSTEM
SERVER
ROOT
(BD1)
wav
romdoc
FATFS
MMC
BLOCK
BLOCK
DEVICE
DEVICE_2
(BD2)
wav
romdoc
_1
(MMC)
(ROOT)
42
NETWORK
SERVER
43
NETWORK SERVER
Tasks (threads)
Applications
SOCKET INTERFACE
TCP
UDP
ICMP
NETWORK SERVER
IP
RARP
NIC1
NIC
ARP
DEVICE DRIVERS
44
WINDOW
SERVER
45
Widget & Window Definition
WINDO
W
is the collection of widgets
WIDGE
T
is the atomic unit of window and operations
Widget0
WINDOW
Widget1
Widget2
Widget2
Widget0
Widget1
46
Example of Widget & Window
All drawing unit is called
widget
WINDOW
Widget
47
Difference of dooroos.embedded
1
2
3
SIZE
- The child window should not be larger than it’s parent.
- The child window should be inside of parent area.
- The clipping between overlapped windows is not
CLIPPIN
- The higher z-order window is only updated.
G
FOCUS
supported.
- 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.
48
WINDOW
SERVER
APPLICATION
WINDOW SERVER
Window Server
Tasks (threads)
Mouse
Widget
procedure
KBD
2
1
TCH
Windows
(Widgets)
3
Widget Draw
GL library
LCD
49
WINDOW Iooks like
widget1
Task(Thread)
window1
Window_n
widget2
Widget_n
50
50
MESSAGE
MODEL
APPLICATION
Thread1
WinProc
WINDOW SERVER
Message Loop
WinProc
Message Queue
...
Thread2
WinProc
Message Loop
WinProc
51
APPLICATION
EXAMPLE
52
Window
RSSI
widget
Battery
widget
List box
widget
Image
widget
Progress bar widget
Menu button widget
Main Window
Play
ESC
Stop
Child Window 1
53
Application
Wave player thread
“ESC” button
widget
Stop button
widget
Play button
widget
Progress bar
widget
List box
widget
Menu button
widget
Image
widget
Battery
widget
RSSI
widget
DEBUG THREAD
dooroos.realtime
Child Window1
Main Window
Main window management thread
54
COMPARISON
55
55
V.S
56
OS Comparison
dooroos.embedded
Nucleus
FreeRTOS
UCOSII
structure
module
monolithic
monolithic
monolithic
filesystem
supported
supported
Not supported
Not supported
IO system
supported
supported
Not supported
Not supported
windowing
supported
supported
Not supported
Not supported
networking
supported
supported
Not supported
Not supported
library
Not enough
Not enough
apps
Not enough
Not enough
Memory
12KB ~
100KB ~
royalty
free
57
실
습
58
59