Upload
euclid
View
35
Download
1
Tags:
Embed Size (px)
DESCRIPTION
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 - PowerPoint PPT Presentation
Citation preview
1
2
Contents
I. VISION
II. dooroos.embedded
III. USE dooroos.embedded
3
VISION
4
TOPappliedRTOS
various various embedded systemembedded system
third party third party
application fieldapplication field
network servernetwork server
windows serverwindows server
filesystem serverfilesystem server
LIBRARY
MIDDLEWARE
dooroos .embedded KERNEL
APPLICATIONS Third party
Device managerDevice manager
kernel functionkernel function
modularitymodularity
all platform all platform portingporting
game enginegame engine
multimediamultimedia
graphicgraphic
VISION
5
LOADMAP
JBOSN RTOS
• Nano kernel for ARM
• Micro kernel
• Device Server
• Filesystem server
• Window server
• Network server
• Graphic Library is expanded • Support the various tools
2002~2005
•Add useful Graphic Library
• Add multimedia library
• Sample Apps is provided
•IDE Tools is serviced
•Porting/Testing to various hardware
2009 ~ 20112006 2007~2008
• OS function is expaned• Add standard Device Driver
• Many useful Middleware is added
•Visual IDE Tools
• New OS function is added• Useful Device Driver is added• Useful network protocol is added
•PC Emulator
1st Generation
2012 ~
• Loader Server is added
• All library is converted to DLL files
• All device driver is converted to Driver DLL (DRV file)
• dooroos.realtime
• dooroos.embedded
6
dooroos
7
dooroos.embedded
I. About dooroos.embedded
II. NANO - KERNELIII. MICRO - KERNELIV. MACRO - KERNEL
8
H/WH/W
HALHAL
Device driversDevice drivers
DisplayDisplay InputInput
IPCIPC
TIMETIME
RESOURCE MANAGERESOURCE MANAGE
TASK/THREAD MANAGETASK/THREAD MANAGE
APPLICATIONSAPPLICATIONS
DEVICE MANAGERDEVICE MANAGER FIELSYSTEMFIELSYSTEM
WINDOWWINDOW
FA
TFA
T
RA
MR
AM
RO
MR
OM
NETWORKNETWORK
NetDrvsNetDrvs
GENERAL OS Functions & structures
9
• Kernel 1. Multi-Layer kernel structure:
modularity, portability, scalability2. Multi-Tasking/Thread and flexible IPC3. Precise timer and Priority based real time scheduler4. Scalable hard-real-time5. No interrupt blocking
• I/O manager1. Constant device management and efficient I/O system2. Driver module
• Resource Management1. Cost efficient use of memory, small memory requirement2. Reliable and Robust system services
• User1. Easy to use2. Low latency
dooroos.embedded Design Principles
10
• Bus emulation (Message-Bus)• Communication between
servers• Modularity• Independency• Scalability
SERVER1SERVER1
nano-kernel ( Message-Bus)nano-kernel ( Message-Bus)
SERVER2SERVER2 SERVERnSERVERn…
dooroos.embedded Backplane
11
1.Modularity
Applications by userapplications
Consisted of the necessary library, device driver and HAL
Expanded servers. (filesystem server, window server, network server)
Principal servers, 3 server (time server, sync server, device server)
Minimum real-time operating system and library (16KB)
library/Driver/HAL
Macro-kernel
Micro-kernel
Nano-kernel
The resources is mutually exclusive between servers, then the expansion of required function is very easy.
The in-house library can be added and applied to server-development.
Main function is designed by server concept and added to dooroos.realtime. So, User-required server can be developed by server concept.
Mutual exclusion
User developed library
Server concept
The problem of one module can not propagate to the others.
The modules are separated in physical area.
The independency between modules increase the stability and make easy to debug.
Error propagation
modular
Independency
2.Scalability
3.Stability
4.Memory
All modules can be generated by separated binary images. The relocation is very easy and efficient.
The memory requirement of modules are very small. For example Nano/Micro-kernel size is 12KB.
Efficient relocation
Small memory requirement
Advantages
12
app1
app
NANOKERNEL
TIMESERVER
DEVICESERVER
SYNCSERVER
FILESYSTEMSERVER
WINDOWSERVER
NETWORKSERVER
NANO-KERNEL
MICRO-KERNEL
MACRO-KERNEL
dooroos.embedded Structure
apps apps
apps
13
HARDWAREHARDWARE
HALHAL
TRAPTRAPThread ManagementThread Management
TIME SERVERTIME SERVER
MESSAGE BUSMESSAGE BUS
ApplicationApplication
Device SERVERDevice SERVER SYNC. SERVERSYNC. SERVER
FILESYSTEM SERVERFILESYSTEM SERVERWINDOW SERVERWINDOW SERVER NETWORK SERVERNETWORK SERVER
DEV
ICE
DR
IVER
DEV
ICE
DR
IVER
NANOKERNEL
MICROKERNEL
MACROKERNEL
DEV
ICE
DR
IVER
DEV
ICE
DR
IVER
dooroos.embedded Structure
14
ROM/DISK
SYNC. SERVERSYNC. SERVERDEVICE SERVERDEVICE SERVER
TIME SERVERTIME SERVER
NANO-KERNELNANO-KERNEL
NETWORK SERVERNETWORK SERVER
ApplicationApplication
dooroosdooroos.embedded.embedded
System System ConfigurationConfiguration
WindowWindow(Widget)(Widget)
Task(threads)Task(threads)
Widget DrawWidget Draw
PLATFORMPLATFORM
RAMRAM
ROM IMAGE LAYOUT
FilesystemFilesystemGL libraryGL library
HALHAL
WINDOW SERVERWINDOW SERVER
FILESYSTEM SERVERFILESYSTEM SERVER
DriversDrivers
FAT libraryFAT library
15
RAMRAM
LAYOUT Example1(OS and Application are united)
ApplicationApplication
NETWORK SERVERNETWORK SERVERWINDOW SERVERWINDOW SERVERFILESYSTEM SERVERFILESYSTEM SERVER
DEVICE SERVERDEVICE SERVERTIME SERVERTIME SERVERSYNC. SERVERSYNC. SERVER
NANO-KERNELNANO-KERNEL
PLATFORM/DriverPLATFORM/Driver
ApplicationApplication
NETWORK SERVERNETWORK SERVERWINDOW SERVERWINDOW SERVERFILESYSTEM SERVERFILESYSTEM SERVER
DEVICE SERVERDEVICE SERVERTIME SERVERTIME SERVERSYNC. SERVERSYNC. SERVER
NANO-KERNELNANO-KERNEL
PLATFORM/DriverPLATFORM/Driver
ROM/ROM/FlashFlash
TextText DataData
OOSS
OOSS
16
RAMRAM
LAYOUT Example2 (OS and Application are separated)
NETWORK SERVERNETWORK SERVERWINDOW SERVERWINDOW SERVERFILESYSTEM SERVERFILESYSTEM SERVER
DEVICE SERVERDEVICE SERVERTIME SERVERTIME SERVERSYNC. SERVERSYNC. SERVER
NANO-KERNELNANO-KERNEL
PLATFORM/DriverPLATFORM/Driver
NETWORK SERVERNETWORK SERVERWINDOW SERVERWINDOW SERVERFILESYSTEM SERVERFILESYSTEM SERVER
DEVICE SERVERDEVICE SERVERTIME SERVERTIME SERVERSYNC. SERVERSYNC. SERVER
NANO-KERNELNANO-KERNEL
PLATFORM/DriverPLATFORM/Driver
ROM/FlashROM/FlashTextText DataData
ApplicationApplication ApplicationApplication
OOSS
OOSS
17
RAMRAM
LAYOUT Example3 (OS, Driver and Application are separated)
NETWORK SERVERNETWORK SERVERWINDOW SERVERWINDOW SERVERFILESYSTEM SERVERFILESYSTEM SERVER
DEVICE SERVERDEVICE SERVERTIME SERVERTIME SERVERSYNC. SERVERSYNC. SERVER
NANO-KERNELNANO-KERNEL
PLATFORM/DriverPLATFORM/Driver
NETWORK SERVERNETWORK SERVERWINDOW SERVERWINDOW SERVERFILESYSTEM SERVERFILESYSTEM SERVER
DEVICE SERVERDEVICE SERVERTIME SERVERTIME SERVERSYNC. SERVERSYNC. SERVER
NANO-KERNELNANO-KERNEL
PLATFORM/DriverPLATFORM/Driver
TextText DataData
ApplicationApplicationDriverDriver
ApplicationApplicationDriverDriver
OOSS
OOSS
ROM/FlashROM/Flash
18
RAMRAM
LAYOUT Example4 (OS, Driver and Application are separated)
NETWORK SERVERNETWORK SERVERWINDOW SERVERWINDOW SERVERFILESYSTEM SERVERFILESYSTEM SERVER
DEVICE SERVERDEVICE SERVERTIME SERVERTIME SERVERSYNC. SERVERSYNC. SERVER
NANO-KERNELNANO-KERNEL
PLATFORM/DriverPLATFORM/Driver
NETWORK SERVERNETWORK SERVERWINDOW SERVERWINDOW SERVERFILESYSTEM SERVERFILESYSTEM SERVER
DEVICE SERVERDEVICE SERVERTIME SERVERTIME SERVERSYNC. SERVERSYNC. SERVER
NANO-KERNELNANO-KERNEL
PLATFORM/DriverPLATFORM/Driver
TextText DataData
ApplicationApplication ApplicationApplication
OOSS
OOSS
DriverDriver DriverDriver
ROM/FlashROM/Flash
19
OSOS
ApplicationApplication
dooroos/embeddeddooroos/embedded
PLATFORMPLATFORM
Directory View
BINBIN
WorkspaceWorkspace
PublicPublic
GCCGCC
IARIAR
includeinclude
commoncommon
20
BOOT STEP
NANO-KERNEL
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)
1. Register interrupt functions (ref. NKERNEL_BOOT)
2. Allocation for the channel memory of message
3. Set the stack
4. Create the “idle thread”
5. Call the function “HAL_Init”
6. Call the function “HAL_ClockInit”
7. Create the micro-kernel servers
8. Interrupt ON
9. Call the function “HAL_main”
10.Call the function“AppMain”
11.Go to the “Idle thread”
Initialize the clock
Initialize the user dependent code
Initialize the hardware
Create user thread and return immediatly
1. Sleep for a while
2. Call the function “Hal_Loader”
21
dooroos.embedded
I. About dooroos.embedded
II. NANO - KERNEL
III. MICRO - KERNELIV. MACRO - KERNEL
22
HARDWARE
HAL
TRAPThread Management
MESSAGE BUSNANO-KERNEL
library
NANO-KERNEL Structure
23
• Portable across microprocessors
: No exposed API for porting
• Supports RAM/ROM execution
: Other modules support RAM/ROM execution
• Supports Nano-Kernel architecture
: Server concept
KERNEL DESIGN
24
• 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
25
Port / Channel
26
Thread IDThread ID
StackStack
CPU Register CPU Register ValuesValues
Priority LevelPriority Level
MessageMessageQueueQueue
Other ThreadOther ThreadOptionsOptions
Thread Model
27
dooroos.embedded
I. About dooroos.embedded
II. NANO - KERNEL
III. MICRO - KERNEL
IV. MACRO - KERNEL
28
TIMETIMESERVERSERVER
DEVICEDEVICESERVERSERVER
SYNC.SYNC.SERVERSERVER
MICRO-KERNEL Structure
29
TIME SERVER
• RTC time management• System time management• Driver Timer management• Application Timer management• Alarm Timer management• Thread Quantum management• Watch-Dog management• Sleep
services all the time related function
30
SYNCHRONIZATION SERVER
• Semaphore
• Mutex
• CriticalSection
• ConditionalVariable
• Event
• Message Queue
• FUTEX
services all the synchronizations and communications between Threads
31
DEVICESERVER(Device
Management)
32
Device Device DriversDrivers(DRV)(DRV)
Window Window ServerServer
Disp
lay
Disp
lay
Touch
PTouch
PK
eyB
dK
eyB
dDevice Device ServerServerKernelKernel
PlatformPlatform
ApplicationApplication
FileFileServerServer
Device Driver Model
NetworkNetworkServerServer
NIC
33
• 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
34
Kernel ComponentsKernel Components
Device Driver Device Driver ServerServer
InterruptInterruptService RoutineService Routine
HALHALRoutinesRoutines
ExceptionExceptionHandlerHandler
HardwareHardware
InterruptInterruptMessage HandlerMessage Handler
ThreadISR
INT
Virtual
INT
INTsignal
Interrupt Model
35
INT_AINT_A INT_BINT_B
Interrupt Model
INT_AINT_A INT_BINT_B
INT_A
INT_B
INT_AINT_A
INT_AINT_A INT_BINT_B
INT_AINT_A INT_BINT_B INT_AINT_A
Nesting
No Nesting
dooroosKernel LayerKernel Layer
Driver LayerDriver Layer
Kernel ComponentsKernel Components
BLOCKEDBLOCKED
OPENEDOPENED
SYSTEM
CA
LL
INTTERUPT
SystemCall Model
Others
dooroos.realtime
INTTERUPT
37
interrupt
read
Time signal
Message Receive
Message Bus
Keyboard Driver
write
I/O control
read adc/gpioSend keyinput
toWindow server
Driver thread(loop)
38
Message BusMessage Bus
USB M/S Driver Example
JFTLJFTL
FLASHFLASH
Flash driver thread
USB DEVICEUSB DEVICE
USB M/S driver thread
PCPCUSB cable
39
H/W
HAL
USB
M/S
LCD
KB
D
Synchronization server
Time server
Device server
Nano-kernel
FILES
YSTEM
SE
RV
ER
WIN
DO
W
SE
RV
ER
GR
APH
ICLIB
RA
RY
FAT
12
/16
/32
RO
MR
AM
libra
ry
APPLICATION
Logical device driver structure
JFTL
FLASH
Sound
NETW
OR
KSE
RV
ER
NETW
OR
KPR
OTO
CO
LN
etD
rv
UA
RT
Mix
er
TO
UC
H
cpu core
Expansion packExpansion pack
40
dooroos.embedded
I. About dooroos.embedded
II. NANO - KERNELIII. MICRO - KERNEL
IV. MACRO - KERNEL
41
FILESYSTEMSERVER
42
FILES
YS
TEM
SER
VER
FILESYSTEM SERVER
BLOCK DEVICEBLOCK DEVICE
Tasks (threads)Tasks (threads)
1
2
Block DriverBlock Driver
APPLICATIONAPPLICATIONFILESYSTEM SERVERFILESYSTEM SERVER
RAMFSRAMFS
ROMFSROMFS
FATFSFATFS3
43
ROOT (BD1)FILESYSTEM
SERVER
BLOCK
DEVICE
_1
(ROOT)
BLOCK
DEVICE_2
(MMC)
Logical FILESYSTEM Structure
Tasks (threads)Tasks (threads)
MMC (BD2)
wav
romdoc
wav
romdoc
FATFSFATFS
44
NETWORKSERVER
45
NETWORK SERVER
NIC1NIC1
TCPTCP
Tasks (threads)Tasks (threads)
IPIP
UDPUDP
ICMPICMP
ARPARPRARPRARP
ApplicationsApplications
NETWORK SERVERNETWORK SERVER
DEVICE DRIVERSDEVICE DRIVERS
SOCKET INTERFACESOCKET INTERFACE
NICNIC
IPIPARPARPRARPRARP
ApplicationsApplications
NETWORK SERVERNETWORK SERVER
DEVICE DRIVERSDEVICE DRIVERS
46
WINDOWSERVER
47
Widget1
Widget2
Widget2
Widget1
Widget & Window Definition
Widget0
Widget0
WINDOW
is the collection of widgetsis the collection of widgetsWINDOW
WINDOW
is the atomic unit of window and operationsis the atomic unit of window and operationsWIDGETWIDGET
48
Widget
WINDOW
All drawing unit is called widgetAll drawing unit is called widget
Example of Widget & Window
49
Difference of dooroos.embedded
1 - The child window should not be larger than it’s parent.- The child window should be inside of parent area.- The child window should not be larger than it’s parent.- The child window should be inside of parent area.SIZESIZE
2- The clipping between overlapped windows is not supported.- The higher z-order window is only updated.
- The clipping between overlapped windows is not supported.- The higher z-order window is only updated.
CLIPPINGCLIPPING
3- 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.
- 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.
FOCUSFOCUS
50
Win
dow
Serv
er
WINDOW SERVER
LCDLCDKBDKBD TCHTCHW
idg
et
Wid
get
pro
ced
ure
pro
ced
ure
WindowsWindows(Widgets)(Widgets)
GL libraryGL library
Tasks (threads)Tasks (threads)
Widget DrawWidget Draw
1 2
3
APPLICATIONAPPLICATIONWINDOW SERVERWINDOW SERVER
MouseMouse
5151
widget1
Task(T
hre
ad
)
window1
Window_n
widget2
Widget_n
WINDOW Iooks like
52
MESSAGE MODEL
Message LoopMessage Loop
Thread1
WinProcWinProc
APPLICATIONAPPLICATION
WINDOW SERVERWINDOW SERVER
WinProcWinProc
Message LoopMessage Loop
WinProcWinProc
WinProcWinProc
Thread2
Message QueueMessage Queue
. . .. . .
53
APPLICATIONEXAMPLE
54
RSSIwidget
Batterywidget
Image widget
Menu button widget
Child Window 1
List box widget
Play
Progress bar widget
ESC Stop
Main Window
Window
55
dooroos.realtime
Main Window
Main window management thread
Wave p
layer th
read
RS
SI
wid
get
DEBUG THREAD
Batte
ryw
idg
et
Imag
e w
idg
et
Men
u b
utto
nw
idg
et
Child Window1
Lis
t box
wid
get
Pro
gre
ss b
ar
wid
get
Pla
y b
utto
n w
idg
et
Sto
p b
utto
nw
idg
et
“ES
C” b
utto
nw
idg
et
Application
5656
COMPARISON
57
V.S
V.S
58
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
59
실 습
60