====== 하드웨어 개발자를 위한 소프트웨어의 이해 ====== 이 워크숍은 하드웨어 개발자를 위한 워크숍으로 임베디드 시스템 맥락에서 소프트웨어에 대해 다룹니다. **직접 임베디드 하드웨어의 제어하는 소프트웨어를 만들면서** 소프트웨어 구성하는 실습(workshop) 위주의 워크숍(workshop) 입니다. 실습 교육을 효과적으로 하기 위해, 시나리오 기반으로 문제해결을 하는 방법으로 진행합니다. 문제해결을 하면서 어려움을 겪을때는 코칭을 통해서 참가자 스스로 해결할 수 있도록 합니다. 시나리오: 도어 경보등 사용하는 하드웨어 플랫폼은 LPC1768(ARM Cortex-M3) 이고 개발 보드와 도구는 http://mbed.org/ 에서 제공하는 mbed NXP LPC1768 을 사용합니다. ===== 교육 목표 ===== * 하드웨어를 제어하는 소프트웨어를 만들 수 있다. * 임베디드 소프트웨어의 자주 쓰는 패턴을 익혀본다. * 워크숍 이후에도 참가자들이 지속적으로 학습 할 수 있도록 한다. ===== 교육 대상 ===== * 임베디드 하드웨어 개발자 * C언어 코드를 읽을 수 있다. (C언어에 익숙하지 않은 분은 "씹어먹는 C 언어 강좌" 읽어보고 오세요~ http://itguru.tistory.com/187 ) ===== 교육 시간표 ===== **첫날** - 워크숍 소개 - 임베디드 시스템 개요. - mbed 소개. 개발환경 설정 - LED blink - mbed library 소개 - 디지털 입출력 제어 - 아날로그 입력 출력, PWM 제어 **둘째날** - 프로젝트: 도어 경보등 만들기 - 인터럽트/ 타이머 - mbed로 IC 통신하기: I2C. tmp102 온도센서 - 프로젝트: 보드의 온도를 입력받아 EEPROM에 저장하기. - 프로그래밍 수련법 - 회고 ===== 교육 내용 ===== **1. mbed 소개** - 컴퓨터의 구조: 하드웨어에서 소프트웨어의 연결 - mbed 스펙. Arm Cortex-M3 - 메모리 모델 - 코드읽기: startup code. **2. 프로그래밍 언어 학습 하기** - 에러로 배우는 프로그래밍 - 소프트웨어 디버깅 **3. mbed library 소개** - 다양한 mbed library를 소개. **4. 인터럽트/타이머** - 인터럽트 타이머 프로그래밍 - polling 방식 **5. 통신** - 주변기기 통신 프로그래밍 (I2C, SPI) ===== 참고 ===== - CODE: 하드웨어와 소프트웨어에 숨어있는 언어 - The C programming Language {{:10.1.1.126.4437.pdf|}} http://clc-wiki.net/wiki/K%26R2_solutions - Making Embedded Systems: Design Patterns for Great Software - Patterns for Time-Triggered Embedded Systems - Fast and Effective Embedded Systems Design: Applying the ARM mbed - 임베디드 레시피 ---- * [[:mbed gcc install|mbed 개발환경 설치하기]] * [[:mbed에서 serialport 사용하기]]