임베디드시스템설계 (Embedded System Design)

(2022년 1학기 개설)

본 과목은 강의와 실습이 함께 진행되는 과목으로 임베디드 소프트웨어를 개발하는 방법을 교육한다. 먼저 Embedded Operating System(Linux)의 개요와 이를 이용한 응용 프로그램의 개발 방법, 그리고 디바이스 드라이버를 이용한 응용 프로그램 개발 방법을 교육한다. 다음으로 모델 중심(Model-Driven) 개발 기법을 이용하여 임베디드 시스템 소프트웨어를 개발하는 방법을 교육한다. 모델 중심 개발 언어인 UML에 관한 기본 적인 내용과 함께, UML 도구인 IBM Rhapsody를 사용한 임베디드 소프트웨어의 개발 방법을 실습을 통하여 교육한다. 또한 최근 마이크로콘트롤러의 시장 경향에 맞추어서 ARM Cortex-M 프로세서를 위한 소프트웨어 설계에 대한 방법을 교육한다. ARM Cortex-M 프로세서에 대해서는 CAN, I2C통신과 Machine Learning (Deep Learning, Artificial Neural Network)을 이용한 Artificial Intelligence (AI) 소프트웨어를 마이크로콘트롤러에 적용하는 방법을 실습을 통하여 배운다.

이 과목은 3학점의 과목으로, 기본적으로 1주일에 강의 2시간 실험 2시간의 형태로 교육이 이루어짐. 강의는 배정된 강의실에서, 실험은 4공학관 515호 IC-PBL 실험실에서 실시됨.

평가: IC-PBL 발표 평가 및 보고서 30%, 기말 시험 40%, 실습 보고서 20%, 출석 10%

선수과목 : C 언어 프로그래밍(필수), 마이크로프로세서 응용(필수 선수 과목은 아니지만, 마이크로프로세서 응용을 수강하지 않은 학생은 어려움이 있을 수 있음)

참고문헌: Embedded Linux System Design and Development, P. Raghavan • Amol Lad • Sriram Neelakandan, Auerbach Publications
stm32f407 reference manual

실습 보고서 양식:report_form_Kor.docx

보고서는 보고서 제출이 명시된 실습에 대해서만 제출하며, 실습이 완료된 후 1주일 이내에 한양대학교 LMS로 제출하십시오.
보고서는 MS Word 파일로 제출하고, 파일명은 Lab번호_이름.docx로 하십시오. Appendix에는 소스 코드를 첨부합니다. 사진 등을 많이 첨부해서 용량이 클 경우 용량을 줄여서 가급적 5M 이내의 크기로 보내십시오. 위의 규칙을 지키지 않을 경우 제출하지 않은 것으로 간주될 수 있습니다.


주별 강의 및 실습계획

Week

강의 및 실습 내용

자료

보고서

1

IC-PBL Orientation, Introduction to Embedded Linux
LAB1: Embedded Linux Applications Development Environment
실습실에 오기 전에 홈페이지에 게시된 실습 자료를 다운로드 받아서 USB메모리에 저장하여 가져오기 바랍니다.

Orientation.pdf
Introduction.pdf
Lab1.pdf
Linux Fundamentals
Makefile Tutorial

없음

2

Real-Time Kernel Concepts
LAB2: Multi Threads, Semaphore, Mutex

RTOS.pdf
Lab2.pdf
pc_example.tar

제출

3

Device Drivers
Lab3: Linux Device Drivers

DeviceDriver.pdf
Lab3.pdf
Toggle예제.docx
workRPi4.tar

제출

4

Linux Architcture and Kernel
LAB4: Button Interrupt Signal Driver and Stopwatch

LinuxArchitecture.pdf
Lab4.pdf

제출

5

Concepts of Model-Driven Design
Lab5: Building Linux Kernel

Building.pdf
Lab5.docx
UML2short.pdf

없음

6

Embedded Software Design Based on Model-Driven Method
LAB6: Rhapsody in C++ Basic

RealTimeLinux.pdf
PriorityInversion.pdf
RiCpp_Basic.pdf
RiCpp_RPi.pdf
ButtonProject.tar.gz

없음

7

Introduction to Arm Cortex-Microcontrollers
LAB7: Rhapsody in C++ on Raspberry Pi

Cortex-M.pdf

제출

8

IC-PBL 문제 시나리오 소개 및 설명
Lab8: Arm Cortex-M Microcontroller -Serial Wifi

LabCortexWIFI.pdf
LabCortexOLED.pdf
stm32f407_ref.pdf
stm32f4_HAL.pdf
일기예보 프로그램의 리눅스 버전: weather.c
Ubidots 프로그램의 리눅스 버전: ubidots_client.c
Socket.pdf
LabCortexSource.zip

없음

9

Programming Arm Cortex-M Microcontrollers
팀별 제안서 준비

없음

10

IC-PBL 팀별 제안서 발표
LAB9: Arm Cortex-M Microcontroller - IoT, OLED Display

11

IC-PBL 문제 해결을 위한 연구 활동 수행
LAB10: Rhapsody in C for programming Arm Cortex-M Microcontrollers

없음

12

IC-PBL 과제 수행
CAN Communication
LAB11: CAN Communication

RPi_CAN.pdf
LabCortexCAN.pdf
Elevator.pdf

없음

13

IC-PBL 과제 수행
Artificial Intelligence (AI) using Microcontroller (Embedded AI)
LAB12: [Cortex-M4] Machine Learning (Deep Learning, Artificial Neural Network)

LabCortexAI.pdf
LabCortexAI.zip

제출

14

IC-PBL 과제 수행

N/A

없음

15

IC-PBL 과제 발표 평가

보고서제출 마감:2021년 6월 TBA 일

제출

16

기말 시험
2021년6월

TBA

없음