safertos iar임베디드솔루션세미나 · 2019-03-13 · safertos...

30
SafeRTOS IAR 임베디드 솔루션 세미나 (주)디오이즈 성원호 대표 2019년 3월 12일

Upload: others

Post on 11-Apr-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: SafeRTOS IAR임베디드솔루션세미나 · 2019-03-13 · SafeRTOS IAR임베디드솔루션세미나 (주)디오이즈 성원호대표 2019년3월12일

SafeRTOS�IAR�임베디드�솔루션�세미나

(주)디오이즈성원호�대표

2019년�3월�12일

Page 2: SafeRTOS IAR임베디드솔루션세미나 · 2019-03-13 · SafeRTOS IAR임베디드솔루션세미나 (주)디오이즈 성원호대표 2019년3월12일

다룰�내용

전형적인�RTOS�도입�배경

전형적인�전경/배경�시스템

전경/배경�시스템의�응답성�문제

RTOS를�사용한�해결방법

SafeRTOS�개요�및�소개

Page 3: SafeRTOS IAR임베디드솔루션세미나 · 2019-03-13 · SafeRTOS IAR임베디드솔루션세미나 (주)디오이즈 성원호대표 2019년3월12일

전형적인�RTOS�도입�배경

❏ 단일�무한�루프�처리에�의한�프로그램�복잡성�증가

전체�프로그램의�크기가�커지면서�복잡성은�급격히�증가

❏ 인터럽트에�의한�실시간성�이벤트�처리의�한계

비동기�이벤트�처리를�ISR�내에서�전부�수행할�수�없음

❏ 안정적인�기반�소프트웨어�필요

고급�GUI,�FAT호환�파일시스템,�TCP/IP,�USB�호스트�스택�등..

Page 4: SafeRTOS IAR임베디드솔루션세미나 · 2019-03-13 · SafeRTOS IAR임베디드솔루션세미나 (주)디오이즈 성원호대표 2019년3월12일

전경/배경�시스템의�응답성�문제/*�배경�*/�void�main�(void){��초기화;��while(1){����아날로그�입력을�읽는다;����디지털�입력을�읽는다;����모니터링�기능�수행;����제어�기능�수행;����아날로그�출력�갱신;����디지털�출력�갱신;����키보드�스캔;����사용자�인터페이스�처리;����표시장치�갱신;����통신�요구�처리;����기타...��}}

/*�전경�*/ISR1�(void){����비동기�이벤트�처리;}

ISR2�(void){����비동기�이벤트�처리;}......

ISRn�(void){����비동기�이벤트�처리;}

Page 5: SafeRTOS IAR임베디드솔루션세미나 · 2019-03-13 · SafeRTOS IAR임베디드솔루션세미나 (주)디오이즈 성원호대표 2019년3월12일

전경/배경�시스템의�응답성�문제

Task 1

ISR 1

Task 2 Task 3

ISR 1

ISR 2

배경

전경�1

전경�2

무한�루프

Page 6: SafeRTOS IAR임베디드솔루션세미나 · 2019-03-13 · SafeRTOS IAR임베디드솔루션세미나 (주)디오이즈 성원호대표 2019년3월12일

전경/배경�시스템의�응답성�문제

전경/배경�시스템의�인터럽트�처리과정

Background Background

Interrupt Service Routine

CPU registers are restored from the stack memory

CPU registers are restored from the stack memory

Page 7: SafeRTOS IAR임베디드솔루션세미나 · 2019-03-13 · SafeRTOS IAR임베디드솔루션세미나 (주)디오이즈 성원호대표 2019년3월12일

#pragma interrupt ISR1(void){ 외부�인터럽트1�처리; flag1++;}

#pragma interrupt ISR2(void){ 외부�인터럽트2�처리; flag2++;}

#pragma interrupt ISR3(void){ 외부�인터럽트3�처리; flag3++;} #pragma interrupt ISR4(void){ 외부�인터럽트4�처리; flag4++;}

전경/배경�시스템의�응답성�문제unsigned char flag1, flag2, flag3, flag4;void main(void){ 시스템�초기화�및�인터럽트�활성화; flag1 = flag2 = flag3 = flag4 = 0; while(1) { if(flag1) { flag1--; Task1(); } if(flag2) { flag2--; Task2(); } if(flag3) { flag3--; Task3(); } if(flag4) { flag4--; Task4(); } }}

Page 8: SafeRTOS IAR임베디드솔루션세미나 · 2019-03-13 · SafeRTOS IAR임베디드솔루션세미나 (주)디오이즈 성원호대표 2019년3월12일

전경/배경�시스템의�응답성�문제

Page 9: SafeRTOS IAR임베디드솔루션세미나 · 2019-03-13 · SafeRTOS IAR임베디드솔루션세미나 (주)디오이즈 성원호대표 2019년3월12일

전경/배경�시스템의�응답성�문제void main(void){ ... ... for(;;) { if(flag1) { Task1(); flag1--; } else if(flag2) { Task2(); flag2--; } else if(flag3) { Task3(); flag3--; } else if(flag4) { Task4(); flag4--; } }}

void Task2(void){ ... ... if(flag1) {Task1();flag1--;} ... ... if(flag1) {Task1();flag1--;} ... ... ...}

void Task3(void){ ... ... if(flag1) {Task1();flag1--;} if(flag2) {Task2();flag2--;} ... ... if(flag1) {Task1();flag1--;} if(flag2) {Task2();flag2--;} ... ...}

#pragma interrupt ISR1(void){ Task1();}

#pragma interrupt ISR2(void){ Task2();}

#pragma interrupt ISR3(void){ Task3();}#pragma interrupt ISR4(void){ Task4();}

Page 10: SafeRTOS IAR임베디드솔루션세미나 · 2019-03-13 · SafeRTOS IAR임베디드솔루션세미나 (주)디오이즈 성원호대표 2019년3월12일

RTOS를�사용한�해결방법void�main(void){����시스템�초기화;��������커널�초기화;�����동기화�오브젝트�생성;����태스크�생성;����커널�기동;�}

void�Task1(void){����...����...����while(1)����{������이벤트1�대기;������이벤트1�처리;����}}

...

...

void�Task4(void){����...����...����while(1)����{�������이벤트4�대기;�������이벤트4�처리;����}�}

ISR1(void){����이벤트1이�발생한�사실을�알림;}

ISR2(void){����이벤트2가�발생한�사실을�알림;}

ISR1(void){����이벤트3이�발생한�사실을�알림;}�ISR4(void){����이벤트4가�발생한�사실을�알림;}

Page 11: SafeRTOS IAR임베디드솔루션세미나 · 2019-03-13 · SafeRTOS IAR임베디드솔루션세미나 (주)디오이즈 성원호대표 2019년3월12일

RTOS를�사용한�해결방법

Sem1 Task1ISR1xSemaphoreGiveFromISR(Sem1,..�); xSemaphoreTake(Sem1,�..);

Sem2 Task2ISR2xSemaphoreGiveFromISR(Sem2,..�); xSemaphoreTake(Sem2,�..);

Sem3 Task3ISR3xSemaphoreGiveFromISR(Sem3,..�); xSemaphoreTake(Sem3,�..);

Sem4 Task4ISR4xSemaphoreGiveFromISR(Sem4,..�); xSemaphoreTake(Sem4,�..);

Page 12: SafeRTOS IAR임베디드솔루션세미나 · 2019-03-13 · SafeRTOS IAR임베디드솔루션세미나 (주)디오이즈 성원호대표 2019년3월12일

RTOS를�사용한�해결방법

Page 13: SafeRTOS IAR임베디드솔루션세미나 · 2019-03-13 · SafeRTOS IAR임베디드솔루션세미나 (주)디오이즈 성원호대표 2019년3월12일

Overview�of�SafeRTOS

❏ Developed�by�WHIS,�a�safety�systems�company

❏ Based�on�the�FreeRTOS�functional�model

❏ Supports�a�wide�range�of�international�development�standards

❏ Pre-certified�to�IEC�61508-3�SIL�3�by�TÜV�SÜD

❏ Pre-certified�to�ISO�26262�ASIL�D�by�TÜV�SÜD

❏ Part�of�the�WITTENSTEIN�group,�established�in�1948

Page 14: SafeRTOS IAR임베디드솔루션세미나 · 2019-03-13 · SafeRTOS IAR임베디드솔루션세미나 (주)디오이즈 성원호대표 2019년3월12일

Certification�and�Standards

SAFERTOS�was�initially�certified�in�2007�by�TÜV�SÜD�to�IEC�61508-3�SIL�3,�the�

highest�level�possible�for�a�software�only�component.�

Today�SAFERTOS�has�grown�to�be�a�leading�safety�critical�RTOS�solution�

supporting�a�wide�range�of�international�safety�design�standards,�including:

❏ Industrial IEC�61508

❏ Transportation/�Rail CENELEC�EN�50128,�IEC�61508

❏ Medical FDA�510(k),�IEC�62304,�IEC�60601,�ISO�14971

❏ Process IEC�61511

❏ Automotive ISO�26262,�IEC�61508

❏ Aerospace DO178C

Page 15: SafeRTOS IAR임베디드솔루션세미나 · 2019-03-13 · SafeRTOS IAR임베디드솔루션세미나 (주)디오이즈 성원호대표 2019년3월12일

Supported�platforms

Altera Atmel Infineon�

Microchip Microsemi�(Formerly�Actel)

Nordic�Semiconductor NXP�(Formerly�Freescale)

Renesas Silicon�Labs ST�Microelectronics

Synopsys Texas�Instruments Xilinx

Page 16: SafeRTOS IAR임베디드솔루션세미나 · 2019-03-13 · SafeRTOS IAR임베디드솔루션세미나 (주)디오이즈 성원호대표 2019년3월12일

SafeRTOS�Features

● Any�number�of�tasks�can�be�created�­�system�RAM�constraints�are�the�

limiting�factor.

● Each�task�is�assigned�a�priority�­�any�number�of�priorities�can�be�used.

● Any�number�of�tasks�can�share�the�same�priority�­�allowing�for�maximum�

application�design�flexibility.

● The�highest�priority�task�that�is�able�to�execute�(i.e.�that�is�not�blocked�or�

suspended)�will�be�the�task�selected�by�the�scheduler�to�execute.

● Supports�time�sliced�round�robin�scheduling�for�tasks�of�equal�priority.

● Queues�can�be�used�to�send�data�between�tasks,�and�to�send�data�

between�tasks�and�interrupt�service�routines.

● Binary�semaphores�and�counting�semaphores�make�use�of�the�queue�

primitive�­�ensuring�code�size�is�kept�to�a�minimum.

Page 17: SafeRTOS IAR임베디드솔루션세미나 · 2019-03-13 · SafeRTOS IAR임베디드솔루션세미나 (주)디오이즈 성원호대표 2019년3월12일

SafeRTOS�Features

● Tasks�can�block�for�a�fixed�period.

● Tasks�can�block�to�wait�for�a�specified�time.

● Tasks�can�block�with�a�specified�timeout�period�to�wait�for�events.

● Task�Notification�Feature

● FPU�support.

● Definition�and�manipulation�of�MPU/MMU�regions�on�a�per�task�basis.

● Run�time�statistics.�Software�Timers

● Ultra-Low�Power�Mode�Option

● MISRA�C�Compliant

● 100%�MC/DC�verification�coverage

Page 18: SafeRTOS IAR임베디드솔루션세미나 · 2019-03-13 · SafeRTOS IAR임베디드솔루션세미나 (주)디오이즈 성원호대표 2019년3월12일

SafeRTOS�Footprint

● Typical�ROM�Requirements�6-15kB.

● Typical�RAM�Requirements�500�bytes.

● Typical�Stack�Requirements�400�bytes/task.

Page 19: SafeRTOS IAR임베디드솔루션세미나 · 2019-03-13 · SafeRTOS IAR임베디드솔루션세미나 (주)디오이즈 성원호대표 2019년3월12일

Differences�between�SafeRTOS�and�others

● SafeRTOS

● SafeRTOS�CORE

● OpenRTOS

and

● FreeRTOS

Page 20: SafeRTOS IAR임베디드솔루션세미나 · 2019-03-13 · SafeRTOS IAR임베디드솔루션세미나 (주)디오이즈 성원호대표 2019년3월12일

SafeRTOS�DAP(Design�Assurance�Pack)

The�SAFERTOS�DAP/DHF�contains�all�the�information�required�to�

independently�complete�final�product�certification.

● Getting�Started

SafeRTOS�User�Manual

SafeRTOS�Safety�Manual

Upgrading�from�the�FreeRTOS�Kernel�to�SafeRTOS

Using�the�SafeRTOS�Demo

Page 21: SafeRTOS IAR임베디드솔루션세미나 · 2019-03-13 · SafeRTOS IAR임베디드솔루션세미나 (주)디오이즈 성원호대표 2019년3월12일

SafeRTOS�DAP(Design�Assurance�Pack)

The�SAFERTOS�DAP/DHF�contains�all�the�information�required�to�

independently�complete�final�product�certification.

● Getting�Started

SafeRTOS�User�Manual

SafeRTOS�Safety�Manual

Upgrading�from�the�FreeRTOS�Kernel�to�SafeRTOS

Using�the�SafeRTOS�Demo

● Configuration

Software�Version�Description

Page 22: SafeRTOS IAR임베디드솔루션세미나 · 2019-03-13 · SafeRTOS IAR임베디드솔루션세미나 (주)디오이즈 성원호대표 2019년3월12일

SafeRTOS�DAP(Design�Assurance�Pack)

● Planning

Software�Development�Plan

Software�Configuration�Management�Plan

Software�Test�Plan

Software�Safety�Management�Plan

Page 23: SafeRTOS IAR임베디드솔루션세미나 · 2019-03-13 · SafeRTOS IAR임베디드솔루션세미나 (주)디오이즈 성원호대표 2019년3월12일

SafeRTOS�DAP(Design�Assurance�Pack)

● Requirements

Customer�Requirements�Specification

MPU�Customer�Requirements�Specification

FPU�Customer�Requirements�Specification

Software�Requirements�Specification

MPU�Software�Requirements�Specification

FPU�Software�Requirements�Specification

Page 24: SafeRTOS IAR임베디드솔루션세미나 · 2019-03-13 · SafeRTOS IAR임베디드솔루션세미나 (주)디오이즈 성원호대표 2019년3월12일

SafeRTOS�DAP(Design�Assurance�Pack)

● Design

Architectural�Software�Design�Description

Architectural�Software�Design�Description�for�MPU

Architectural�Software�Design�Description�for�FPU

Detailed�Software�Design�Description

Product�Specific�Software�Design�Description

Page 25: SafeRTOS IAR임베디드솔루션세미나 · 2019-03-13 · SafeRTOS IAR임베디드솔루션세미나 (주)디오이즈 성원호대표 2019년3월12일

SafeRTOS�DAP(Design�Assurance�Pack)

● Safety

HAZOPS�Report

HAZOPS�Report�for�MPU�Requirements

Investigations�arising�from�HAZOPS

API�Usage�Safety�Review

MPU�API�Usage�Safety�Review

Evidence�Supporting�IEC61508-3�SIL3�Claim

Page 26: SafeRTOS IAR임베디드솔루션세미나 · 2019-03-13 · SafeRTOS IAR임베디드솔루션세미나 (주)디오이즈 성원호대표 2019년3월12일

SafeRTOS�DAP(Design�Assurance�Pack)

● Test�Procedures

Software�Code�Verification�Test�Description

Software�Integration�Verification�Test�Description

Software�System�Verification�Test�Description

Validation�Test�Description

Product�Variant�Software�Code�Verification�Test�Description

Product�Variant�Software�Integration�Verification�Test�Description

System�Verification�Test�Description

Test�Harness�Build�Procedure

SAFERTOS�Test�Harness�for�your�toolchain�and�compiler

● Test�Results

Software�Test�Report

Page 27: SafeRTOS IAR임베디드솔루션세미나 · 2019-03-13 · SafeRTOS IAR임베디드솔루션세미나 (주)디오이즈 성원호대표 2019년3월12일

Start�your�development�using�FreeRTOS

As�the�FreeRTOS�kernel�and�SAFERTOS�share�the�same�functional�model,�

upgrading�is�easy.�

Many�of�our�customers�prototype�using�the�FreeRTOS�kernel,�and�convert�to�

SAFERTOS�at�the�start�of�their�formal�development�phase.

Page 28: SafeRTOS IAR임베디드솔루션세미나 · 2019-03-13 · SafeRTOS IAR임베디드솔루션세미나 (주)디오이즈 성원호대표 2019년3월12일

Tracealyzer�for�SafeRTOS�&�FreeRTOS

Page 29: SafeRTOS IAR임베디드솔루션세미나 · 2019-03-13 · SafeRTOS IAR임베디드솔루션세미나 (주)디오이즈 성원호대표 2019년3월12일

Embedded�Wizard

Page 30: SafeRTOS IAR임베디드솔루션세미나 · 2019-03-13 · SafeRTOS IAR임베디드솔루션세미나 (주)디오이즈 성원호대표 2019년3월12일

Links�for�further�information

● https://www.highintegritysystems.com

● https://www.embedded-wizard.de

● https://www.percepio.com

추가�문의는�아래�이메일�또는�전화로�연락�바랍니다.

(주)디오이즈�대표�성원호

[email protected],�02-785-5709