Enroll Course: https://www.coursera.org/learn/embedded-software-hardware

최근에 Coursera에서 제공하는 ‘임베디드 소프트웨어 및 하드웨어 아키텍처’ 코스를 수강했습니다. 이 과정은 임베디드 시스템 아키텍처를 이해하고 하드웨어를 조작하는 데 필요한 소프트웨어를 작성하는 데 초점을 맞추고 있습니다. 코스는 저수준 펌웨어를 작성하고 하드웨어와 직접 인터페이스하는 경험을 통해 아주 효율적이고 가독성이 높은 코드 작성을 배우는 기회를 제공합니다.

### 과정 개요
이 과정은 여러 모듈로 구성되어 있으며, 각 모듈은 임베디드 시스템의 핵심 개념을 심도 있게 다루고 있습니다.

#### 모듈 1: ARM 코어 마이크로컨트롤러와의 C 프로그램 인터페이싱
첫 번째 모듈에서는 임베디드 플랫폼과 프로세서 아키텍처에 대한 이해를 돕습니다. 소프트웨어/펌웨어가 어떻게 하드웨어와 인터페이스되는지를 배우며, 효율적이고 버그 없는 코드를 작성하는 데 필요한 아키텍처, 메모리 시스템 및 마이크로컨트롤러 주변기기에 대한 지식을 쌓을 수 있습니다.

#### 모듈 2: 메모리 조작
이 모듈은 고급 펌웨어 기술로 넘어가며 마이크로컨트롤러에 대한 실습을 포함합니다. 마이크로컨트롤러 주변 장치와 아키텍처 개념을 구성하는 메모리 접근 방법을 구축하는 과정을 배우며, 인터럽트 벡터 테이블에 대한 함수 포인터 사용방법도 배울 수 있습니다. 또한, 타겟 디버깅을 깊이 있게 탐구하는 기회를 제공합니다.

#### 모듈 3: 임베디드 데이터 구조 설계
이 마지막 모듈에서는 데이터를 효율적이고 유지 보수 가능하게 구성하는 방법을 배웁니다. 프로그램의 제어 흐름이나 데이터를 추적하고 조작하기 위해 구조화된 데이터의 사용이 필요합니다.

이 코스에서는 전반적으로 체계적이고 이해하기 쉽게 구성되어 있어서, 임베디드 소프트웨어 엔지니어링을 배우고자 하는 사람들에게 강력히 추천합니다. 과정 중 배운 내용을 실제로 적용해 보아야 하기 때문에 실습에 많은 도움을 줄 것이며, 이론적으로도 깊은 이해를 할 수 있게 합니다.

끝으로, 임베디드 시스템 분야에 관심이 있다면 이 코스를 통해 필수적인 기초와 실무 능력을 쌓아보세요. 개인적으로 매우 유익한 시간이었으며, 이 과정을 수강한 후 이제는 실제 하드웨어와 소프트웨어를 조합하여 나만의 프로젝트를 만들어보고 싶어졌습니다!

Enroll Course: https://www.coursera.org/learn/embedded-software-hardware