60
1

dooroos.embedded

  • Upload
    euclid

  • View
    35

  • Download
    1

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

Page 1: dooroos.embedded

1

Page 2: dooroos.embedded

2

Contents

I. VISION

II. dooroos.embedded

III. USE dooroos.embedded

Page 3: dooroos.embedded

3

VISION

Page 4: dooroos.embedded

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

Page 5: dooroos.embedded

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

Page 6: dooroos.embedded

6

dooroos

Page 7: dooroos.embedded

7

dooroos.embedded

I. About dooroos.embedded

II. NANO - KERNELIII. MICRO - KERNELIV. MACRO - KERNEL

Page 8: dooroos.embedded

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

Page 9: dooroos.embedded

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

Page 10: dooroos.embedded

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

Page 11: dooroos.embedded

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

Page 12: dooroos.embedded

12

app1

app

NANOKERNEL

TIMESERVER

DEVICESERVER

SYNCSERVER

FILESYSTEMSERVER

WINDOWSERVER

NETWORKSERVER

NANO-KERNEL

MICRO-KERNEL

MACRO-KERNEL

dooroos.embedded Structure

apps apps

apps

Page 13: dooroos.embedded

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

Page 14: dooroos.embedded

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

Page 15: dooroos.embedded

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

Page 16: dooroos.embedded

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

Page 17: dooroos.embedded

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

Page 18: dooroos.embedded

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

Page 19: dooroos.embedded

19

OSOS

ApplicationApplication

dooroos/embeddeddooroos/embedded

PLATFORMPLATFORM

Directory View

BINBIN

WorkspaceWorkspace

PublicPublic

GCCGCC

IARIAR

includeinclude

commoncommon

Page 20: dooroos.embedded

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”

Page 21: dooroos.embedded

21

dooroos.embedded

I. About dooroos.embedded

II. NANO - KERNEL

III. MICRO - KERNELIV. MACRO - KERNEL

Page 22: dooroos.embedded

22

HARDWARE

HAL

TRAPThread Management

MESSAGE BUSNANO-KERNEL

library

NANO-KERNEL Structure

Page 23: dooroos.embedded

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

Page 24: dooroos.embedded

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

Page 25: dooroos.embedded

25

Port / Channel

Page 26: dooroos.embedded

26

Thread IDThread ID

StackStack

CPU Register CPU Register ValuesValues

Priority LevelPriority Level

MessageMessageQueueQueue

Other ThreadOther ThreadOptionsOptions

Thread Model

Page 27: dooroos.embedded

27

dooroos.embedded

I. About dooroos.embedded

II. NANO - KERNEL

III. MICRO - KERNEL

IV. MACRO - KERNEL

Page 28: dooroos.embedded

28

TIMETIMESERVERSERVER

DEVICEDEVICESERVERSERVER

SYNC.SYNC.SERVERSERVER

MICRO-KERNEL Structure

Page 29: dooroos.embedded

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

Page 30: dooroos.embedded

30

SYNCHRONIZATION SERVER

• Semaphore

• Mutex

• CriticalSection

• ConditionalVariable

• Event

• Message Queue

• FUTEX

services all the synchronizations and communications between Threads

Page 31: dooroos.embedded

31

DEVICESERVER(Device

Management)

Page 32: dooroos.embedded

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

Page 33: dooroos.embedded

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

Page 34: dooroos.embedded

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

Page 35: dooroos.embedded

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

Page 36: dooroos.embedded

Kernel ComponentsKernel Components

BLOCKEDBLOCKED

OPENEDOPENED

SYSTEM

CA

LL

INTTERUPT

SystemCall Model

Others

dooroos.realtime

INTTERUPT

Page 37: dooroos.embedded

37

interrupt

read

Time signal

Message Receive

Message Bus

Keyboard Driver

write

I/O control

read adc/gpioSend keyinput

toWindow server

Driver thread(loop)

Page 38: dooroos.embedded

38

Message BusMessage Bus

USB M/S Driver Example

JFTLJFTL

FLASHFLASH

Flash driver thread

USB DEVICEUSB DEVICE

USB M/S driver thread

PCPCUSB cable

Page 39: dooroos.embedded

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

Page 40: dooroos.embedded

40

dooroos.embedded

I. About dooroos.embedded

II. NANO - KERNELIII. MICRO - KERNEL

IV. MACRO - KERNEL

Page 41: dooroos.embedded

41

FILESYSTEMSERVER

Page 42: dooroos.embedded

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

Page 43: dooroos.embedded

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

Page 44: dooroos.embedded

44

NETWORKSERVER

Page 45: dooroos.embedded

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

Page 46: dooroos.embedded

46

WINDOWSERVER

Page 47: dooroos.embedded

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

Page 48: dooroos.embedded

48

Widget

WINDOW

All drawing unit is called widgetAll drawing unit is called widget

Example of Widget & Window

Page 49: dooroos.embedded

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

Page 50: dooroos.embedded

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

Page 51: dooroos.embedded

5151

widget1

Task(T

hre

ad

)

window1

Window_n

widget2

Widget_n

WINDOW Iooks like

Page 52: dooroos.embedded

52

MESSAGE MODEL

Message LoopMessage Loop

Thread1

WinProcWinProc

APPLICATIONAPPLICATION

WINDOW SERVERWINDOW SERVER

WinProcWinProc

Message LoopMessage Loop

WinProcWinProc

WinProcWinProc

Thread2

Message QueueMessage Queue

. . .. . .

Page 53: dooroos.embedded

53

APPLICATIONEXAMPLE

Page 54: dooroos.embedded

54

RSSIwidget

Batterywidget

Image widget

Menu button widget

Child Window 1

List box widget

Play

Progress bar widget

ESC Stop

Main Window

Window

Page 55: dooroos.embedded

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

Page 56: dooroos.embedded

5656

COMPARISON

Page 57: dooroos.embedded

57

V.S

V.S

Page 58: dooroos.embedded

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

Page 59: dooroos.embedded

59

실 습

Page 60: dooroos.embedded

60