safertos iar임베디드솔루션세미나 · 2019-03-13 · safertos...
TRANSCRIPT
SafeRTOS�IAR�임베디드�솔루션�세미나
(주)디오이즈성원호�대표
2019년�3월�12일
다룰�내용
전형적인�RTOS�도입�배경
전형적인�전경/배경�시스템
전경/배경�시스템의�응답성�문제
RTOS를�사용한�해결방법
SafeRTOS�개요�및�소개
전형적인�RTOS�도입�배경
❏ 단일�무한�루프�처리에�의한�프로그램�복잡성�증가
전체�프로그램의�크기가�커지면서�복잡성은�급격히�증가
❏ 인터럽트에�의한�실시간성�이벤트�처리의�한계
비동기�이벤트�처리를�ISR�내에서�전부�수행할�수�없음
❏ 안정적인�기반�소프트웨어�필요
고급�GUI,�FAT호환�파일시스템,�TCP/IP,�USB�호스트�스택�등..
전경/배경�시스템의�응답성�문제/*�배경�*/�void�main�(void){��초기화;��while(1){����아날로그�입력을�읽는다;����디지털�입력을�읽는다;����모니터링�기능�수행;����제어�기능�수행;����아날로그�출력�갱신;����디지털�출력�갱신;����키보드�스캔;����사용자�인터페이스�처리;����표시장치�갱신;����통신�요구�처리;����기타...��}}
/*�전경�*/ISR1�(void){����비동기�이벤트�처리;}
ISR2�(void){����비동기�이벤트�처리;}......
ISRn�(void){����비동기�이벤트�처리;}
전경/배경�시스템의�응답성�문제
Task 1
ISR 1
Task 2 Task 3
ISR 1
ISR 2
배경
전경�1
전경�2
무한�루프
전경/배경�시스템의�응답성�문제
전경/배경�시스템의�인터럽트�처리과정
Background Background
Interrupt Service Routine
CPU registers are restored from the stack memory
CPU registers are restored from the stack memory
#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(); } }}
전경/배경�시스템의�응답성�문제
전경/배경�시스템의�응답성�문제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();}
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가�발생한�사실을�알림;}
RTOS를�사용한�해결방법
Sem1 Task1ISR1xSemaphoreGiveFromISR(Sem1,..�); xSemaphoreTake(Sem1,�..);
Sem2 Task2ISR2xSemaphoreGiveFromISR(Sem2,..�); xSemaphoreTake(Sem2,�..);
Sem3 Task3ISR3xSemaphoreGiveFromISR(Sem3,..�); xSemaphoreTake(Sem3,�..);
Sem4 Task4ISR4xSemaphoreGiveFromISR(Sem4,..�); xSemaphoreTake(Sem4,�..);
RTOS를�사용한�해결방법
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
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
Supported�platforms
Altera Atmel Infineon�
Microchip Microsemi�(Formerly�Actel)
Nordic�Semiconductor NXP�(Formerly�Freescale)
Renesas Silicon�Labs ST�Microelectronics
Synopsys Texas�Instruments Xilinx
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.
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
SafeRTOS�Footprint
● Typical�ROM�Requirements�6-15kB.
● Typical�RAM�Requirements�500�bytes.
● Typical�Stack�Requirements�400�bytes/task.
Differences�between�SafeRTOS�and�others
● SafeRTOS
● SafeRTOS�CORE
● OpenRTOS
and
● FreeRTOS
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
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
SafeRTOS�DAP(Design�Assurance�Pack)
● Planning
Software�Development�Plan
Software�Configuration�Management�Plan
Software�Test�Plan
Software�Safety�Management�Plan
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
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
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
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
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.
Tracealyzer�for�SafeRTOS�&�FreeRTOS
Embedded�Wizard
Links�for�further�information
● https://www.highintegritysystems.com
● https://www.embedded-wizard.de
● https://www.percepio.com
추가�문의는�아래�이메일�또는�전화로�연락�바랍니다.
(주)디오이즈�대표�성원호
[email protected],�02-785-5709