1
Jan 21, 2016
1
2
Contents
I. VISION
II. dooroos.realtime
III. USE dooroos.realtime
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
device serverdevice server
LIBRARY
MIDDLEWARE
dooroos .realtime KERNEL
APPLICATIONS Third party
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
2011 ~
• 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 history
7
app1app appapp
NANOKERNEL
TIMESERVER
SYSTEMSERVER
SYNCSERVER
DEVICESERVER
FILESYSTEMSERVER
WINDOWSERVER
NETWORKSERVER
NANO-KERNEL
MICRO-KERNEL
MACRO-KERNEL
dooroos.RealTime Structure
DRV DRV
DRV
DRV DRVDLL
DLL DLL DLL
apps apps appsapps
8
dooroos.realtime
I. About dooroos.realtime
II. NANO - KERNELIII. MICRO - KERNELIV. MACRO - KERNEL
9
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
10
• 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 memory2. Reliable and Robust system services
• User1. Easy to use2. Low latency
dooroos.realtime Design Principles
11
• Bus emulation (Message-Bus)• Communication between
servers• Modularity• Independency• Scalability
SERVER1SERVER1
nano-kernel ( Message-Bus)nano-kernel ( Message-Bus)
SERVER2SERVER2 SERVERnSERVERn…
dooroos.realtime Backplane
12
app1
app appapp
NANOKERNEL
TIMESERVER
SYSTEMSERVER
SYNCSERVER
DEVICESERVER
FILESYSTEMSERVER
WINDOWSERVER
NETWORKSERVER
NANO-KERNEL
MICRO-KERNEL
MACRO-KERNEL
dooroos.realtime Structure
LOADERSERVER
13
1.Modularity
Applications by userapplications
Consisted of the necessary library, device driver and HAL
Expanded RTOS servers. (loader, device server, filesystem server, window server, network server)
Principal RTOS servers, 3 server ( system server, time server, sync 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-kernel size is 16KB.
Efficient relocation
Small memory requirement
Advantages
14
HARDWAREHARDWARE
HALHAL
TRAPTRAPMEMORY MANAGEMENTMEMORY MANAGEMENT Task/Thread ManagementTask/Thread Management
TIME SERVERTIME SERVER
MESSAGE BUSMESSAGE BUS
ApplicationApplication
DEVICE SERVERDEVICE SERVER
SYSTEM SERVERSYSTEM SERVER SYNC. SERVERSYNC. SERVER
FILESYSTEM SERVERFILESYSTEM SERVERWINDOW SERVERWINDOW SERVERNETWORK SERVERNETWORK SERVER
DEV
ICE
DR
IVER
DEV
ICE
DR
IVER
ApplicationApplication ApplicationApplication
NANOKERNEL
MICROKERNEL
MACROKERNEL
DEV
ICE
DR
IVER
DEV
ICE
DR
IVER
dooroos.realtime Structure
LOADER SERVERLOADER SERVER
15
ROM/DISK
SYNC. SERVERSYNC. SERVER
SYSTEM SERVERSYSTEM SERVERTIME SERVERTIME SERVER
NANO-KERNELNANO-KERNEL
NETWORK SERVERNETWORK SERVER
ApplicationApplication
dooroosdooroos.realtime.realtime
(DLL, DRV)(DLL, DRV)
FAT library DLLFAT library DLL
System System ConfigurationConfiguration
Hardware DLLHardware DLL
JBOOTJBOOT
WindowWindow(Widget)(Widget)
Task(threads)Task(threads)
Widget Draw DLLWidget Draw DLL
PLATFORMPLATFORM
RAMRAM
ROM IMAGE LAYOUT
FilesystemFilesystem
(DLL, DRV)(DLL, DRV) GL library DLLGL library DLL
HALHAL
WINDOW SERVERWINDOW SERVER
FILESYSTEM SERVERFILESYSTEM SERVER
DEVICE SERVERDEVICE SERVER
LOADER SERVERLOADER SERVERDrivers DRVDrivers DRV
16
Boot sequence
17
18
dooroos.realtime
I. About dooroos.realtime
II. NANO - KERNEL
III. MICRO - KERNELIV. MACRO - KERNEL
19
HARDWARE
HAL
TRAPMEMORY MANAGEMENT Task/Thread Management
MESSAGE BUSNANO-KERNEL
library
NANO-KERNEL Structure
20
Port / Channel
21
ConvertKey to port
Port
Message Req/Resp
Port
Server Client
Port Port
Channel Key
1 23
4
23
1
4
22
Message Structure
#define JB_MESSAGE_CONTENTS \ UINT32 Type; \ UINT32 Param; \
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;
typedef struct _JB_MESSAGE {
JB_MESSAGE_CONTENTS } JB_MESSAGE, *JB_PMESSAGE;
23
Server Model
Server
Port & Channel Setting
Message Receive
Message Service…
Message Reply
Message Service…
Message Service…
24
Device Driver Model
Device Driver
Port & Channel SettingDriver Registration
Message Receive
Message Service…
Message Reply
Message Service…
Message Service…
25
• 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
26
• 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
27
Thread IDThread ID
StackStack
CPU Register CPU Register ValuesValues
Priority LevelPriority Level
MessageMessageQueueQueue
Other ThreadOther ThreadOptionsOptions
Other resourcesOther resources
Primary ThreadPrimary Thread
ThreadsThreads
Task IDTask ID
HEAPHEAP
Task/Thread Model
28
• 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
Memory Model
29
dooroos.realtime
I. About dooroos.realtime
II. NANO - KERNEL
III. MICRO - KERNEL
IV. MACRO - KERNEL
30
TIMETIMESERVERSERVER
SYSTEMSYSTEMSERVERSERVER
SYNC.SYNC.SERVERSERVER
MICRO-KERNEL Structure
31
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
32
SYNCHRONIZATION SERVER
• Semaphore
• Mutex
• CriticalSection
• ConditionalVariable
• Event
• Message Queue
services all the synchronizations and communications between Task/Threads
33
SYSTEM SERVER
• Creation/Destroy of Task/Thread
• Message-Bus Port management
• Message-Bus Channel management
• Memory management
• Power management
services all the system resource management
34
Partition
RAM
User allocation /User responsibility
Memory Pool
Partition
User responsibility
Memory Model
User responsibility
35
dooroos.realtime
I. About dooroos.realtime
II. NANO - KERNELIII. MICRO - KERNEL
IV. MACRO - KERNEL
36
DEVICESERVER(Device
Management)
37
Device Device DriversDrivers(DRV)(DRV)
Window Window ServerServer
Disp
lay
Disp
lay
Touch
PTouch
PK
eyB
dK
eyB
dI/O I/O
ServerServerKernelKernel
PlatformPlatform
ApplicationApplication
FileFileServerServer
Device Driver Model
NetworkNetworkServerServer
NIC
38
• 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
39
Kernel ComponentsKernel Components
Device Driver Device Driver ServerServer
InterruptInterruptService RoutineService Routine
HALHALRoutinesRoutines
ExceptionExceptionHandlerHandler
HardwareHardware
InterruptInterruptMessage HandlerMessage Handler
ThreadISR
INT
Virtual
INT
INTsignal
Interrupt Model
40
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
42
interrupt
read
Time signal
Message Receive
Message Bus
Keyboard Driver
write
I/O control
read adc/gpioSend keyinput
toWindow server
Driver thread(loop)
43
Message BusMessage Bus
USB M/S Driver Example
JFTLJFTL
FLASHFLASH
Flash driver thread
USB DEVICEUSB DEVICE
USB M/S driver thread
PCPCUSB cable
44
H/W
HAL
USB
M/S
LCD
KB
D
Synchronization server
Time server
System server
Nano-kernel
DEV
ICE
SE
RV
ER
FILES
YSTEM
SE
RV
ER
WIN
DO
W
SE
RV
ER
GR
APH
ICLIB
RA
RY
(DLL)
FAT
12
/16
/32
RO
MR
AM
libra
ry(D
LL)
APPLICATION
Logical device driver structure
JFTL (DRV)
FLASH
Sound
NETW
OR
KSE
RV
ER
NETW
OR
KPR
OTO
CO
LN
etD
rvs
LOA
DE
R S
ER
VER
UA
RT
Mix
er T
OU
CH
cpu core
45
FILESYSTEMSERVER
46
FILES
YS
TEM
SER
VER
FILESYSTEM SERVER
BLOCK DEVICEBLOCK DEVICE
Tasks (threads)Tasks (threads)
1
2
Block Driver (DRV)Block Driver (DRV)
APPLICATIONAPPLICATIONFILESYSTEM SERVERFILESYSTEM SERVER
RAMFS DLLRAMFS DLL
ROMFS DLLROMFS DLL
FATFS DLLFATFS DLL3
47
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
FATFS DLLFATFS DLL
48
NETWORKSERVER
49
NETWORK SERVER
NICnNICnNIC1NIC1 NIC2NIC2
TCPTCP
Tasks (threads)Tasks (threads)
IPIP
UDPUDP
ICMPICMP
ARPARPRARPRARP
ApplicationsApplications
NETWORK SERVERNETWORK SERVER
DEVICE DRIVERSDEVICE DRIVERS
SOCKET INTERFACESOCKET INTERFACE
NICnNICnNIC1NIC1 NIC2NIC2
IPIPARPARPRARPRARP
ApplicationsApplications
NETWORK SERVERNETWORK SERVER
DEVICE DRIVERSDEVICE DRIVERS
50
WINDOWSERVER
51
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
52
Widget
WINDOW
All drawing unit is called widgetAll drawing unit is called widget
Example of Widget & Window
53
Difference of dooroos.realtime
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
54
Win
dow
Serv
er
WINDOW SERVER
LCDLCDKBDKBD TCHTCH
Wid
get
Wid
get
pro
ced
ure
pro
ced
ure
(DLL)
(DLL)
WindowsWindows(Widgets)(Widgets)
GL library DLLGL library DLL
Tasks (threads)Tasks (threads)
Widget Draw DLLWidget Draw DLL
1 2
3
APPLICATIONAPPLICATIONWINDOW SERVERWINDOW SERVER
MouseMouse
5555
widget1
Task(T
hre
ad
)
window1
Window_n
widget2
Widget_n
WINDOW Iooks like
56
MESSAGE MODEL
Message LoopMessage Loop
Thread1
WinProcWinProc
APPLICATIONAPPLICATION
WINDOW SERVERWINDOW SERVER
WinProcWinProc
Message LoopMessage Loop
WinProcWinProc
WinProcWinProc
Thread2
Message QueueMessage Queue
. . .. . .
57
APPLICATIONEXAMPLE
58
RSSIwidget
Batterywidget
Image widget
Menu button widget
Child Window 1
List box widget
Play
Progress bar widget
ESC Stop
Main Window
Window
59
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
6060
COMPARISON
61
H/W
HAL
USB
M/S
LCD
KB
D
Synchronization server
Time server
System server
Nano-kernel
DEV
ICE
SE
RV
ER
FILES
YSTEM
SE
RV
ER
WIN
DO
W
SE
RV
ER
GR
APH
ICLIB
RA
RY
(DLL)
FAT
12
/16
/32
RO
MR
AM
libra
ry(D
LL)
APPLICATION
JFTL (DRV)
FLASH
Sound
NETW
OR
KSE
RV
ER
NETW
OR
KPR
OTO
CO
LN
etD
rvs
LOA
DE
R S
ER
VER
UA
RT
Mix
er T
OU
CH
cpu core
DLL DLLDLL DLL DLL DLL
DLL
62
V.S
V.S
63
OS Comparison
dooroos.realtime Linux Windows CE UCOSII
structure module monolithic mixed monolithic
filesystem supported supported supported
IO system supported supported Supported
windowing supported supportedsupported
networking supported supported supported
library Not enough enough enough
apps Not enough enoughenough
Memory 500KB 8MB ~ 16MB ~
royalty ~ 2,000 won Free 16$
64
실 습
65