Embed
Email

Lab08 REAL TIME OS-1

Document Sample

Shared by: huanghengdong
Categories
Tags
Stats
views:
0
posted:
2/9/2012
language:
pages:
23
Lab 8 Real-time OS - 1



Speaker: Yung-Chih Chen

Advisor: Prof. Chun-Yao Wang

November 17, 2003





Department of Computer Science

National Tsing Hua University







SoC Design Laboratory SOC Consortium Course Material

Outline

Introduction to Real-time Operation System (RTOS)

Introduction to μC/OS-II

– Features

– Task & task scheduling

Real-time OS









– Start μC/OS-II

– Port application









SoC Design Laboratory SOC Consortium Course Material 1

Real-time OS



 Real-time OS (RTOS) is an intermediate layer between

hardware devices and software programming

 “Real-time” means keeping deadlines, not speed

Real-time OS









 Advantages of RTOS in SoC design

• Shorter development time

• Less porting efforts

• Better reusability



 Disadvantages

• More system resources needed

• Future development confined to the chosen RTOS





SoC Design Laboratory SOC Consortium Course Material 2

Soft and Hard Real Time



 Soft real-time

• Tasks are performed by the system as fast as possible, but

tasks don’t have to finish by specific times

• Priority scheduling

Real-time OS









• Multimedia streaming



 Hard real-time

• Tasks have to be performed correctly and on time

• Deadline scheduling

• Aircraft controller, Nuclear reactor controller









SoC Design Laboratory SOC Consortium Course Material 3

Outline

Introduction to RTOS

Introduction to μC/OS-II

– Features

– Task & task scheduling

Real-time OS









– Start μC/OS-II

– Port application









SoC Design Laboratory SOC Consortium Course Material 4

μC/OS-II



 Written by Jean J. Labrosse in ANSI C

 A portable, ROMable, scalable, preemptive, real-time,

multitasking kernel

Real-time OS









 Used in hundreds of products since its introduction in 1992

 Certified by the FAA for use in commercial aircraft

 Available in ARM Firmware Suite (AFS)

 Over 90 ports for free download

 http://www.ucos-ii.com







SoC Design Laboratory SOC Consortium Course Material 5

μC/OS-II Features





 Portable runs on architectures ranging from 8-

bit to 64-bit

 ROMable small memory footprint

Real-time OS









 Scalable select features at compile time

 Multitasking preemptive scheduling, up to 64 tasks









SoC Design Laboratory SOC Consortium Course Material 6

μC/OS-II vs. μHAL

 uHAL (pronounced Micro-HAL) is the ARM Hardware

Abstraction Layer that is the basis of the ARM Firmware Suite

 uHAL is a basic library that enables simple application to run

on a variety of ARM-based development systems

 uC/OS-II use uHAL to access ARM-based hardware

Real-time OS









uC/OS-II & User application AFS Utilities



C, C++ libraries



AFS support

uHAL routines

routines



Development board





SoC Design Laboratory SOC Consortium Course Material 7

Task



 Task is an instance of program

 Task thinks that it has the CPU all to itself

 Task is assigned a unique priority

Real-time OS









 Task has its own set of stack

 Task has its own set of CPU registers (backup in its stack)

 Task is the basic unit for scheduling

 Task status are stored in Task Control Block (TCB)









SoC Design Laboratory SOC Consortium Course Material 8

Task Structure



Task structure:

 An infinite loop

 An self-delete function

Real-time OS









Task with infinite loop structure Task that delete itself

void ExampleTask(void *pdata) void ExampleTask(void *pdata)

{ {

for(;;) { /* User Code */

/* User Code */ OSTaskDel(PRIO_SELF);

/* System Call */ }

/* User Code */

}

}

SoC Design Laboratory SOC Consortium Course Material 9

Task States







Waiting

Real-time OS









Task Delete Task Gets Event Task Pending Events









Task Create Highest Priority Task Interrupt

Dormant Ready Running ISR

Task Delete Task is Preempted Int. Exit







Task Delete





SoC Design Laboratory SOC Consortium Course Material 10

Task Priority







 Unique priority (also used as task identifiers)

 64 priorities max (8 reserved)

Real-time OS









 Always run the highest priority task that is READY

 Allow dynamically change priority









SoC Design Laboratory SOC Consortium Course Material 11

Task Control Block



uC/OS-II use TCB to keep record of each task



States

Real-time OS









Stack Pointer



Priority



Misc …



Link Pointer







SoC Design Laboratory SOC Consortium Course Material 12

Task Control Block(cont.)

Real-time OS









SoC Design Laboratory SOC Consortium Course Material 13

Exchanging CPU Control



uC/OS-II Kernel API

Control returns from task to OS OSMboxPend();

when Kernel API is called

OSQPend();



void ExampleTask(void *pdata) OSSemPend();

Real-time OS









{ OSTaskSuspend();



for(;;) { OSTimeDly();



/* User Code */ OSTimeDlyHMSM();



/*System Call */ More…



/* User Code */

}

}



SoC Design Laboratory SOC Consortium Course Material 14

Exchanging CPU Control





Only one of OS, Task, Interrupt Handler gets CPU control at a time





Interrupt Handler

Real-time OS









OS









Task A B B C A







Time





Scheduling Interrupt



System Call Interrupt Exit







SoC Design Laboratory SOC Consortium Course Material 15

Task Scheduling





 Non-preemptive

Low-priority Task

Real-time OS









ISR









ISR makes the

high-priority task ready





High-priority Task







low-priority task

Relinquishes the CPU

Time



SoC Design Laboratory SOC Consortium Course Material 16

Task Scheduling



 Preemptive

Low-priority Task



ISR

Real-time OS









High-priority Task





ISR makes the

high-priority task ready









high-priority task

Relinquishes the CPU



Time



uC/OS-II adopts preemptive scheduling

SoC Design Laboratory SOC Consortium Course Material 17

Starting C/OS-II



Initialize hardware & uC/OS-II

ARMTargetInit(), OSInit()

Real-time OS









Allocate resources

OSMemCreate(), OSMboxCreate(), …etc









Create at least one task

OSTaskCreate()









Start Scheduler

OSStart()



SoC Design Laboratory SOC Consortium Course Material 18

Porting Application



Necessary coding changes

 variables

• use local variables for preemption

Real-time OS









• use semaphore to protect global variables

(resources)

 data transfer

• arguments => mailbox/queue

 memory allocation

• malloc() => OSMemCreate()

OSMemGet()

SoC Design Laboratory SOC Consortium Course Material 19

Porting Application



assign task priorities

 unique priority level in uC/OS-II



Real-time OS









only 56 levels available

• priority can be change dynamically

 call OSTimeDly() in infinite loop task

• ensure lower priority task get a chance to run

MUST: if lower priority task is pending data

from higher priority task





SoC Design Laboratory SOC Consortium Course Material 20

Lab 8:Real-time OS - 1

 Goal  Steps

– A guide to use RTOS and – Building C/OS-II

port programs to it – Porting Program to C/OS-II

 Principles – Building Program with

C/OS-II

– Basic concepts and

 Requirements and

Real-time OS









capabilities of RTOS

Exercises

• Task, task scheduling

– Write an embedded software

– Coding guideline for a for ID checking engine

program running on the (single task)

embedded RTOS

 Discussion

– Setting up the ARMulator – What are the advantages and

 Guidance disadvantages of using

RTOS in SOC design?







SoC Design Laboratory SOC Consortium Course Material 21

References

[1] AFS_Reference_Guide.pdf

Real-time OS









SoC Design Laboratory SOC Consortium Course Material 22



Related docs
Other docs by huanghengdong
EOL Share the Care PowerPoint
Views: 1  |  Downloads: 0
Quotes
Views: 0  |  Downloads: 0
IntentionsDatabase-Live
Views: 0  |  Downloads: 0
Team CYC
Views: 5  |  Downloads: 0
CommitteeCharter_1_
Views: 2  |  Downloads: 0
Mak ke a one o off donat tion
Views: 0  |  Downloads: 0
GBCMA_AR_2007_Page36_RCT_Increase_cover
Views: 0  |  Downloads: 0
By registering with docstoc.com you agree to our
privacy policy

You are almost ready to download!

You are almost ready to download!