MicroC/OS-II 1. Miscellaneous

Slides:



Advertisements
Similar presentations
경영학과 이은지 경영학과 윤혜리 경영학과 이지은 경영학과 유승연 경영 성공사례 분석.
Advertisements

J-Stream part1 (Software streaming service) ▪ 팀명 : Jukdori ▪ 팀원 : 16 th 윤병호 (PL) 15 th 송인규 16 th 김영진.
2012학년도 교내과학탐구대회 4월 16일(월요일, 5~6교시). 5 교시 활 동 실험.조립활동 - 별자리열쇠고리만들기 (5교시) 각 학급에 과학동아리학생들이 2인 1조로 들어가서 실험키트조립활동을 안내함 임장 지도교사가 컴퓨터로 탐구대회 PPT안을 띄워주고 동아리원들이.
2016학년도 2학기 일반대학원 모집 공과대학 스마트섬유융합전공
사과가 어느 상태일 때 갈변 현상이 늦게 나타날까?
마이크로 컨트롤러 Microcontroller.
(사단법인)이주노동희망센터·보리샬 꼴르노커띠 학교설립추진위원회
신장,심장,간 장애 정영화 윤병란 이달해 최지희.
目 次 I. 총칙 II. 특허 요건 III. 특허 출원 IV. 심사 절차 V. 특허 등록 및 특허권 VI. 특허권자 보호
Chapter 1. 운영체제의 개요 이태호.
Mar OSEK/VDK Woo Dong Kyun.
컴퓨터란?.
소프트웨어와 운영체제.
임베디드 SW 시스템 소개 - 임베디드 운영체제 - 임베디드 리눅스 - 임베디드 인터넷
One Step Closer - AVR ATMEGA128 -
발표일자 : 조 원 : 김한나, 이순형, 이은길 차현태, 최윤희, 허지혜
정보통신실습 및 특강(5)
But, 성공하려면 과정이 필요합니다. 목표달성을 위해 정해진 기간이 필요~! 어떤 노력을 기울여야 할가요~?
2016년도 625바로 알리기 교육 평가 보고 대한민국6∙25참전유공자회
11ㅡㅡ 공모 1. 대단위 미술마을 조성 (행복프로젝트) 작성 방법 및 제출 서류 2016마을미술프로젝트
프로젝트 1 프로젝트 공지: 1-1학기부터 4-1학기까지 프로젝트 수업 3개 이상 수강해야 졸업작품 제출할 수 있음
102 베기 학번: 이름: 박지훈.
아두이노 프로그래밍 1일차 – Part2 아두이노 사양 강사: 김영준 목원대학교 겸임교수.
제 11 장 임베디드 시스템 11.1 개요 임베디드 시스템 임베디드 시스템의 구성
임베디드 시스템.
임베디드 하드웨어 Lecture #6.
Uniprocessor Scheduling
5.1.1 CPU-I/O 버스트 주기(CPU-I/O Burst Cycle)
FUSING.
운영체제 (Operating Systems)
프로세스 관리.
6장 단일 프로세서 스케줄링.
컴퓨터 과학 개론 √ 원리를 알면 IT가 맛있다 컴퓨터 과학도를 위한 첫 전공서 ehanbit.net.
임베디드 운영체제 (리눅스 중심) Lecture #2.
Linux를 이용한 Embedded 장비 개발
임베디드시스템 2013년도 가을학기.
2.2 CPU 스케줄링의 목적과 유형 스케줄링의 목적
MicroC/OS-II Lab. 경희대학교 컴퓨터공학과 조 진 성.
CPU스케줄링(CPU Scheduling) ~
Chapter 10. Interrupt.
Multiprocessor and Real-time Scheduling
Micro C/OS-II 2. Task Management
DK-128 실습 타이머카운터 사용법 아이티즌 기술연구소 김태성 연구원
제3,4,5장 프로세스, 스레드 관리 CPU 스케줄링.
5.1.1 CPU-I/O 버스트 주기(CPU-I/O Burst Cycle)
성탄절을 향한 길에서.
반 학생들의 컴퓨터 사용시간 ppt제작담당 : 최민수 박지호.
제5장 CPU스케줄링(CPU Scheduling)
홈 네트워크 시뮬레이션 정 찬 번 석 성 환.
경기도 화성시 봉담 동화 역말길 33번지(동화 휴먼시아 5단지 앞)
DK-128 실습 타이머카운터 사용법 아이티즌 기술연구소
오피스텔 디자인 사용자 정하기! 설정1.영화, 드라마, 소설 속 캐릭(주인공) 1명을 사용자로
MicroC/OS-II Concept of Real Time System
5. Semaphores ㈜아이티즌 기술연구소
4. Time Management 아이티즌 기술연구소
기업회생 절차.
2. 윤리학의 원리와 적용 가. 상대주의와 절대주의.
제4장 CPU 스케줄링 이나현.
기술 진화와 진보.
地方自治團體의 財政 < 地方自治團體의 財政 > 1. 意義
코딩체험교실 아두이노 로봇 코딩 4차산업기술 체험 (SW코딩/자율주행기술).
교육기부 진로체험기관 인증제와 지역 센터 운영 방안 한국직업능력개발원 김승보.
임베디드 시스템 개요 Lecture #1.
김진승 한국물리학회 교육위원장, 전북대학교 물리학과
임베디드 하드웨어 Lecture #6.
Eclipse를 이용한 Embedded Linux 응용 프로그램 개발
제3장 선교 구역.반장학교 제1단계.
DK-128 실습 내부 EEPROM 제어 아이티즌 기술연구소 김태성 연구원
Presentation transcript:

MicroC/OS-II 1. Miscellaneous 아이티즌 기술연구소 ITISN Technical Lab

실시간 시스템의 이해 실시간 시스템(Real Time System) 구조에 따른 3가지 분류 제한시간 내 논리적으로 완벽하게 동작해야 하는 시스템 제한시간 내 동작하지 않을 경우 심각한 결과 발생 종류 설명 HARD Real Time System 반드시 정해진 시간 내에 정확히 마쳐야 함 SOFT Real Time System 가능한 한 빠르게 임무를 수행 반드시 정해진 시간 내에 마칠 필요 없음 구조에 따른 3가지 분류 전경/배경(Foreground/Background) 시스템 비선점형 커널 (Non-preemptive Kernel) 시스템 선점형 커널 (Preemptive Kernel) 시스템 ITISN Technical Lab

실시간 시스템의 구조(1/2) 전경/배경 시스템 수퍼-루프(super-loop)라고도 부름 소형이며 단순한 구조 전경 프로세스(인터럽트 레벨) ISR을 통해 비동기적으로 발생하는 중요한 이벤트 처리 (ISR: Interrupt Service Routine) 배경 프로세스(태스크 레벨) 특정한 모듈이나 함수를 호출하는 무한루프 Back ground process Fore ground process module 1 module 2 ISR module 3 무한루프 ISR ISR ISR module 4 module 5 ITISN Technical Lab

실시간 시스템의 구조(2/2) 비선점형(Non-preemptive) 커널 시스템 : 느린 응답 시간 비선점형 커널 vs 선점형 커널 LOW LOW 인터럽트 발생 인터럽트 발생 ISR ISR 하던 일로 복귀 높은 우선순위 처리 LOW HIGH 생성 생성 하던 일로 복귀 LOW 높은 우선순위 처리 HIGH 시 간 시 간 ITISN Technical Lab

RTOS의 이해 Real Time Operating System 개요 (제한된시간안에 완료 해야함) RTOS의 특징 신뢰성과 정확성을 요하는 제어분야(핵발전소, 미사일,엔진) 실시간 응답성 보장 microC/OS-II는 상용 RTOS 중 하나 RTOS의 특징 Multitasking(멀티태스킹) Preemptive(선점) Deterministic(예측가능성) Portable(이식성) ROMable(내장성) ITISN Technical Lab

microC/OS-II의 개요 높은 안정성 높은 호환성 ROM 내장 가능 다양한 커널 크기 선점형 실시간 멀티태스킹 커널 1992년 발표 이후 수백여 상용 제품 적용 높은 호환성 8비트, 16비트, 32비트, 64비트 시스템 동작 ROM 내장 가능 임베디드 시스템 개발을 목적으로 개발 됨 다양한 커널 크기 응용에 따라 다양하게 조절 가능 선점형 실시간 멀티태스킹 커널 항상 실행 가능한 최고 우선순위의 태스크를 실행 멀티태스킹(Multitasking) 여러 태스크가 번갈아 CPU를 사용할 수 있도록 순번을 정함 64개의 태스크 지원(이미 그 중 8개는 예약, 56개 사용가능) ITISN Technical Lab

선점형 커널(Preemptive Kernel) 태스크들 간 통신 관리 태스크 문맥전환 관리 커널 서비스 지원: 세마포어, 메시지 박스, 큐, 시간지연 등 커널의 스케줄러(Scheduler) 기능 태스크 실행 순서 결정 디스패처(dispatcher)라고 부르기도 함. 중요도에 따른 작업의 우선순위 배정 수행 선점형 커널 CPU 제어권 : 실행준비가 된 최상위 우선순위 태스크가 획득 태스크 레벨의 응답시간은 최소화 ITISN Technical Lab

우선순위 관리 기능 1/3 주객전도!! 태스크 우선순위(Task Priority) 중요한 태스크일수록 높은 우선순위를 부여 정적 우선순위(Static Priorities) 실행하는 동안 우선순위를 바꾸지 않음 동적 우선순위(Dynamic Priorities) 실행하는 동안 우선순위를 바꾸는 경우 리얼타임 커널의 우선순위 전도 문제를 해결하는 방법 microC/OS-II지원 주객전도!! “중요한 일이 뒷전이고, 덜 중요한 일을 먼저하고 있다.” ITISN Technical Lab

우선순위 관리 기능 2/3 우선순위 전도(Priority Inversions) 문제 리얼타임 커널(RTOS)에서 주로 발생 태스크3 정지 태스크1 태스크1 (H) 태스크2 (M) 태스크3 (L) “어부지리” 우선순위 전도 발생 시간 공유메모리 중요 사용시작 사용불가 사용완료 세마포어 획득 세마포어 반환 ITISN Technical Lab

우선순위 관리 기능 3/3 우선순위 전도 문제 해결 우선순위 상속: 태스크의 우선순위를 자동으로 변경 태스크1 (H) 태스크2 (M) 태스크3 (L) 시간 공유메모리 중요 사용시작 정지 사용불가 사용완료 (H) 변경 우선순위 상속 ITISN Technical Lab ITISN Technical Lab 10

microC/OS-II 개발 환경 설정 AvrEdit 3.6 설치 C:\AvrEdit\ Avr-gcc 컴파일러 3.3.1 포함 환경변수 path 추가 C:\AvrEdit\WinAvr\utils\bin C:\AvrEdit\WinAvr\bin PonyProg2000 2.06f 설치 펌웨어 쓰기 목적 microC/OS-II 2.52에 있는 SOFTWARE 폴더를 C 드라이브에 포함 C:\SOFTWARE\ 실시간 운영체제 라이브러리 DK128 Port 설치 at-avr-jlu-210703.tgz MicroC/OS-II에 추가할 DK128 하드웨어 정보 Micrium\Software\uCOS-II  C:\SOFTWARE\uCOS-II에 복사 ITISN Technical Lab

Port 수정 STK500 보드와 DK128은 매우 유사함 C:\SOFTWARE\uCOS-II\Ports\AVR\Atmega128\GNU\jlu\STK500 STK500 폴더를 복사하여 DK128로 이름 변경 삭제: includes.h, makefile 변경: includes.h.252includes.h, makefile.252makefile 변경: os_cfg.h 내용 #define CPU_CLOCK_HZ 3686400  16000000 #define OS_TICKS_PER_SEC 50  125 변경: makefile 내용 UCOSDIR = c:/SOFTWARE/uCOS-II/Source PORTDIR = c:/SOFTWARE/uCOS- II/Ports/AVR/ATmega128/GNU/jlu DIRAVR = C:/AvrEdit/WinAvr CC = C:/AvrEdit/WinAvr/bin/avr-gcc OBJCOPY = $(DIRAVRBIN)/avr-objcopy ITISN Technical Lab

테스트 프로그램 작성 test.c 소스코드(ppt 16쪽)를 DK128 결선 상태에 맡게 포트 수정 test.c 파일을 DK128 폴더로 덮어 쓸 것 ITISN Technical Lab

테스트 프로그램 컴파일 DK128 폴더 밑에서 make 입력 C:\SOFTWARE\uCOS-II\Ports\AVR\ATmega128\GNU\jlu\DK128 다음과 같이 에러가 없으면 성공이다. ITISN Technical Lab

Miscellaneous 함수 목록 void OSInit(void); // uC/OS-II 초기화 void OSIntEnter(void); // 커널에 ISR 시작 통 보 void OSIntExit(void); // 커널에 ISR 종료 통보 void OSSchedLock(void); // 스케줄러 잠그기 void OSSchedUnlock(void); // 스케줄러 풀기 void OSStart(void); // 멀티태스킹 시작 void OSStatInit(void); // 통계 태스크 초기화 INT16U OSVersion(void); // 현재 버전 알아내기 ITISN Technical Lab

테스트 프로그램 분석 1/5 ITISN Technical Lab

테스트 프로그램 분석 2/5 메인 함수 ITISN Technical Lab

테스트 프로그램 분석 3/5 ITISN Technical Lab

테스트 프로그램 분석 4/5 LED 제어 태스크용 함수 ITISN Technical Lab

테스트 프로그램 분석 5/5 FND 제어 태스크용 함수 ITISN Technical Lab

실습 과제 1. OS Version 정보를 LED에 2진수로 표시하는 프로그램을 구현하 시오. ITISN Technical Lab