slide1 n.
Download
Skip this Video
Download Presentation
dooroos.embedded

Loading in 2 Seconds...

play fullscreen
1 / 60

dooroos.embedded - PowerPoint PPT Presentation


  • 116 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'dooroos.embedded' - euclid


Download Now 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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide2

Contents

  • I. VISION
  • dooroos.embedded
  • USE dooroos.embedded
slide4

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
slide5

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

slide7

dooroos.embedded

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

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

slide9

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
slide10

dooroos.embedded Backplane

  • Bus emulation (Message-Bus)
  • Communication between servers
  • Modularity
  • Independency
  • Scalability

SERVER1

SERVER2

SERVERn

nano-kernel ( Message-Bus)

slide11

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.

slide12

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

slide13

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

slide14

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

slide15

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

slide16

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

slide17

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

slide18

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

slide19

Directory View

dooroos/embedded

Application

BIN

OS

GCC

IAR

include

PLATFORM

common

Public

Workspace

slide20

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”
slide21

dooroos.embedded

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

NANO-KERNEL Structure

NANO-KERNEL

library

MESSAGE BUS

Thread Management

TRAP

HAL

HARDWARE

slide23

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
slide24

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
slide26

Thread Model

Thread ID

Priority Level

Stack

Message

Queue

CPU Register

Values

Other Thread

Options

slide27

dooroos.embedded

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

MICRO-KERNEL Structure

TIME

SERVER

SYNC.

SERVER

DEVICE

SERVER

slide29

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
slide30

SYNCHRONIZATION SERVER

  • services all the synchronizations and communications

between Threads

  • Semaphore
  • Mutex
  • CriticalSection
  • ConditionalVariable
  • Event
  • Message Queue
  • FUTEX
slide31

DEVICE

SERVER

(Device Management)

slide32

Device Driver Model

Application

Device

Server

File

Server

Window

Server

Network

Server

Kernel

Device

Drivers

(DRV)

TouchP

KeyBd

Display

NIC

Platform

slide33

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
slide34

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

slide35

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

slide36

SystemCall Model

Kernel Components

dooroos

.realtime

SYSTEM CALL

OPENED

INTTERUPT

INTTERUPT

BLOCKED

Others

slide37

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

slide38

USB M/S Driver Example

Message Bus

Flash driver thread

USB M/S driver thread

JFTL

USB cable

PC

FLASH

USB DEVICE

slide39

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

slide40

dooroos.embedded

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

FILESYSTEM SERVER

APPLICATION

FILESYSTEM SERVER

Tasks (threads)

1

FILESYSTEM

SERVER

RAMFS

2

ROMFS

FATFS

3

Block Driver

BLOCK DEVICE

slide43

Logical FILESYSTEM Structure

Tasks (threads)

ROOT (BD1)

FILESYSTEM

SERVER

wav

romdoc

FATFS

MMC (BD2)

BLOCK

DEVICE_1

(ROOT)

BLOCK

DEVICE_2

(MMC)

wav

romdoc

slide44

NETWORK

SERVER

slide45

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

slide46

WINDOW

SERVER

slide47

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

slide48

Example of Widget & Window

All drawing unit is called  widget

WINDOW

Widget

slide49

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

slide50

WINDOW SERVER

WINDOW SERVER

APPLICATION

Tasks (threads)

2

1

Windows

(Widgets)

Window Server

Widget

procedure

3

Widget Draw

GL library

KBD

Mouse

TCH

LCD

slide51

WINDOW Iooks like

widget1

window1

widget2

Task(Thread)

Window_n

Widget_n

slide52

Message Queue

MESSAGE MODEL

APPLICATION

Thread1

WINDOW SERVER

Message Loop

WinProc

WinProc

. . .

Thread2

Message Loop

WinProc

WinProc

slide54

Window

RSSI

widget

Battery

widget

Image

widget

List box

widget

Progress bar widget

Menu button widget

Play

ESC

Stop

Main Window

Child Window 1

slide55

Application

Menu button

widget

RSSI

widget

Battery

widget

Image

widget

“ESC” button

widget

Stop button

widget

Progress bar

widget

Play button

widget

List box

widget

Wave player thread

Main Window

Child Window1

Main window management thread

dooroos.realtime

DEBUG THREAD

slide57

V.S

V.S