책 소개
임베디드의 기초 원리부터 다양한 활용까지 한 권에 모두 담았다!
임베디드 기술을 처음 접하는 분이나 임베디드 엔지니어를 목표로 하는 분을 위해 쉽고 친절하게 집필된 ‘임베디드 교과서’를 소개합니다. 이 책은 사물인터넷 분야와 모바일 기기, 각종 전자 장비에서 빼놓을 수 없는 임베디드 소프트웨어 기술에 관해 설명합니다. 또한, 임베디드 개발환경에서 많이 사용하는 아두이노와 라즈베이 파이를 다루며, 임베디드 시스템 개발에 참여할 엔지니어가 알아 두어야 할 필수 지침과 자세 등을 저자의 경험적 측면과 소프트웨어 개발 원칙에 따라 설명합니다.
아두이노와 라즈베리 파이를 이용한 최신 실전 기술 수록!
임베디드 엔지니어를 목표로 하는 사람과 신입 임베디드 엔지니어를 위한 필독서!
이 책은 하드웨어 및 소프트웨어 지식, 임베디드 프로그램의 개요, 실시간 운영체제, 임베디드 소프트웨어의 개발 프로세스뿐만 아니라 사물인터넷/인공지능 시대의 임베디드 소프트웨어에 대해서도 상세히 다루고 있습니다. 또한, 앞으로 임베디드 시스템을 개발할 엔지니어가 개발환경에 참가하기 전에 알아 두어야 할 필수 사항을 수록했습니다. 특히, 마이크로컴퓨터 보드가 단순한 블랙박스가 아닌, 실제로 어떻게 동작하는지에 대해 그 구조를 이해하고 문제를 해결할 수 있도록 충분한 내용을 담았습니다.
다른 책이나 인터넷 등에도 아두이노나 라즈베리 파이에 관한 다양한 정보가 있지만, 대부분이 센서에 접속하거나 서버 설정 방법을 설명하는 정도입니다. 하지만 이 책에서는 독자가 시중에서 구하기 쉬운 소형 마이크로컴퓨터 아두이노와 고성능 마이크로컴퓨터를 탑재한 라즈베리 파이를 활용해서 마이크로컴퓨터나 운영체제를 화이트박스로서 이해하는 것과 함께, 개발환경에서 이용되는 소형 마이크로컴퓨터부터 고성능 마이크로컴퓨터까지 응용하는 것을 목표로 합니다.
작가 소개
지은이 : 와타나베 노보루
전자 제품 제조사에서 통신 시스템의 개발 및 프로세스 개선 업무를 진행하였고, IPA(독립행정법인정보처리추진기구) 연구원으로서 임베디드 기술자 육성 업무를 담당하였다. 2010년부터는 주식회사 아프렐에서 레고 마인드스톰을 이용한 인재 육성을 기획하였으며, 현재는 NPO 법인 임베디드 소프트웨어 관리자이며, 기술자 육성 연구회 이사로 재직 중이다. 또한, 합동회사 와타나베 기술연구소 및 주식회사 ‘for Our Kids’를 창업하여 자체 제작한 교재용 로봇의 개발, 영업 등의 업무를 맡고 있다.
지은이 : 마키노 신지
사업자용 ISDN, PHS용 교환기의 임베디드 소프트웨어 개발 및 유지보수를 시작해 스마트폰, IVI 및 방송 기기용 하드웨어 개발(회로 설계, FPGA 설계) 등의 경력을 쌓았다. 개발 기술뿐만 아니라 임베디드 개발 프로세스 개선, 소프트웨어 유지보수 방법의 개선 등 개발 관리, 임베디드 기술자의 교육 등도 진행했다. 저서로는 《ETSS 표준 가이드 북》, 《임베디드 시스템 개발을 위한 임베디드 소프트웨어 기술》이 있다. 최근에는 IoT 기기 등 임베디드 제품의 보안 대책과 관련한 연구 활동도 하고 있다.
옮긴이 : 정인식
숭실대학교에서 전자계산학을 전공하고 현대정보기술 eBiz 기술팀에서 웹 애플리케이션 개발 및 B2B 마켓플레이스 설루션을 연구했다. 그 후 이동통신 단말기 분야로 옮겨 휴대폰 부가서비스 개발 업무를 담당했으며, 일본에서 키스코 모바일사업부 팀장으로 교세라의 북미향 휴대폰 개발에 참여했다. 퇴직 후 현재는 일본 주식회사 WiseJIn의 대표이사 겸 엔지니어로, 일본의 주요 통신사와 공공 서비스 분야에서 업무 프로세스 개선을 위한 IT 컨설팅을 펼치며 데이터 분석 관련 툴과 웹 서비스 개발을 하고 있다. 《임베디드 엔지니어 교과서》(제이펍, 2020), 《배워서 바로 쓰는 스프링 부트 2》(한빛미디어, 2020), 《알파고를 분석하며 배우는 인공지능》(제이펍, 2019) 등 20권 이상의 책을 번역했다.
목 차
CHAPTER 1 임베디드 소프트웨어 엔지니어의 업무 1
01 임베디드 시스템이란? 3
임베디드 시스템의 중요성 3
임베디드 시스템과 PC, 서버는 어떻게 다른가? 4
02 임베디드 시스템의 특징 5
Nature: 자연 법칙의 취급 6
Time: 실시간성의 요구 7
Constraint: 엄격한 제약 사항 8
Reliability: 높은 신뢰성 9
제품별 NTCR 요구사항의 특징 9
03 임베디드 소프트웨어란? 10
소프트웨어의 종류 10
04 임베디드 소프트웨어 엔지니어의 업무 13
임베디드 소프트웨어 엔지니어가 속하는 조직 13
임베디드 소프트웨어의 규모에 따라 조직은 변한다 13
하청이 아닌 프로 서비스 14
05 임베디드 소프트웨어 엔지니어의 직종 16
CHAPTER 2 마이크로컴퓨터 하드웨어 19
06 임베디드 시스템의 구성 21
07 임베디드 마이크로컴퓨터의 구성 23
하드웨어의 종류 23
CPU와 마이크로컴퓨터 24
메모리 25
메모리의 종류 27
버스의 구성 29
메인 버스의 용도 29
로컬 버스 31
주변장치 34
주변장치의 제어 방식 36
08 CPU란? 38
CPU의 명령 실행 40
인터럽트 43
CHAPTER 3 임베디드 소프트웨어 47
09 임베디드 시스템의 소프트웨어 49
임베디드 소프트웨어의 종류 49
10 임베디드 소프트웨어를 개발하는 흐름 51
실제 빌드의 흐름 확인하기 53
11 어셈블리 언어로부터 알 수 있는 것 59
스타트업 루틴 61
main 함수가 호출될 때까지의 흐름 추적 61
메모리 맵 63
스택 64
스택과 인터럽트 65
12 임베디드 소프트웨어의 테스트 환경 68
ICE 68
13 임베디드 시스템 프로그래밍에서의 C언어 71
최적화 옵션의 장점과 단점 71
volatile 선언 71
unsigned와 signed 72
pragma 73
포인터와 배열 73
인터럽트 핸들러 74
CHAPTER 4 임베디드 시스템을 사용한 C언어 프로그래밍 77
14 아두이노의 하드웨어 확인하기 79
아두이노란? 79
아두이노 우노의 하드웨어 구성 80
마이크로컴퓨터의 데이터 시트 조사하기 82
데이터 시트와 보드 맞춰 보기 84
ATmega328P의 내부 구성과 커넥터와의 관계 88
15 LED를 ON/OFF하는 실험 93
LED 실험의 개요 93
LED 접속 94
점멸 프로그램 작성하기 96
동작 확인 101
16 LED 실험 프로그램 이해하기 103
CPU의 관점에서 바라본 레지스터 제어 103
어셈블러에서 확인 103
17 LED 점멸 시간 지정하기 109
타이머의 이용 111
CHAPTER 5 실시간 운영체제 113
18 임베디드 시스템의 운영체제 115
운영체제란? 115
임베디드 운영체제가 필요한 이유 116
임베디드 운영체제를 사용할 때의 단점 121
19 임베디드 운영체제 사용해 보기 123
임베디드 운영체제의 동작 123
20 FreeRTOS 동작 배우기 128
FreeRTOS의 구성 128
FreeRTOS의 기본 동작 129
소스 코드의 실제 동작 131
21 임베디드 운영체제의 역사 136
임베디드 운영체제의 역사 136
임베디드 운영체제의 종류와 시대 배경 138
22 임베디드 운영체제의 선택 방법 142
임베디드 운영체제의 선정 포인트 142
CHAPTER 6 스마트 디바이스 145
23 데이터 주도 사회 147
데이터의 활용 147
24 스마트 디바이스 149
스마트 디바이스란? 149
스마트 디바이스의 사용 예 150
스마트 디바이스의 구성 152
CHAPTER 7 임베디드 리눅스 161
25 임베디드 리눅스 163
리눅스 운영체제를 사용하는 이유 163
리눅스 운영체제가 동작하는 하드웨어 구성 164
리눅스 운영체제가 동작하는 소프트웨어 구성 168
26 임베디드 리눅스 소프트웨어의 개요 170
프로세스 170
스레드 171
IPC 171
커널 172
시스템 콜 인터페이스 175
27 임베디드 리눅스의 빌드와 기동 179
이용할 하드웨어 179
라즈베리 파이 3B+의 리눅스 배포판 181
라즈베리 파이 3B+에서 Yocto를 기동하기까지의 흐름 183
Yocto에서의 빌드 실행 183
28 임베디드 리눅스의 동작 확인 187
Yocto 재빌드에 의한 자체 개발환경의 도입 187
sysfs의 이용 196
오픈 소스 소프트웨어의 이용 198
임베디드 리눅스 개발에서 주의해야 할 포인트 203
CHAPTER 8 임베디드 소프트웨어의 개발 프로세스 207
29 임베디드 시스템의 라이프사이클 209
30 임베디드 시스템의 개발 방법 211
동시 개발 211
프런트 로딩 212
임베디드 소프트웨어 개발 프로세스의 V자 모델 213
임베디드 소프트웨어 개발 프로세스 214
31 시스템 요구 정의 216
32 시스템 아키텍처 설계 218
33 소프트웨어 요구 정의 223
34 소프트웨어 아키텍처 설계 225
35 소프트웨어 상세 설계 228
36 구현, 단위 테스트 229
37 소프트웨어 결합, 통합 테스트 232
38 소프트웨어 타당성 확인 테스트 235
39 시스템 결합, 통합 테스트와 시스템 타당성 확인 테스트 236
40 제품 출하 237
CHAPTER 9 사물인터넷/인공지능 시대의 임베디드 소프트웨어 개발 239
41 산업혁명과 임베디드 시스템 241
제1차 산업혁명 241
제2차 산업혁명 242
제3차 산업혁명 243
제4차 산업혁명 245
42 DX 시대의 임베디드 시스템 개발 247
기능 배치의 변화 247
43 임베디드 엔지니어의 학습방법 253
수파리 이론 253
표준적인 개발 방법 배우기 254
자신이 직접 정보를 제공하면 다른 정보도 수집된다 255
APPENDIX A Arduino IDE/Yocto의 설치 257
44 Arduino IDE를 윈도우 10에서 설치하기 259
Arduino IDE의 입수 259
Arduino IDE의 설치 262
AVR 명령의 동작 확인 266
45 Yocto 빌드 환경의 준비 267
dash의 전환 267
빌드에 필요한 패키지 설치 267
프록시의 설정이 필요할 때 268
46 라즈베리 파이 3의 Yocto 환경 구축 271
Yocto의 버전 271
Yocto의 환경 구축 271
Yocto 환경의 셋업 272
찾아보기 276
역자 소개
- 단순 변심인 경우 : 상품 수령 후 7일 이내 신청
- 상품 불량/오배송인 경우 : 상품 수령 후 3개월 이내, 혹은 그 사실을 알게 된 이후 30일 이내 반품 신청 가능
반품사유 | 반품 배송비 부담자 |
---|---|
단순변심 | 고객 부담이며, 최초 배송비를 포함해 왕복 배송비가 발생합니다. 또한, 도서/산간지역이거나 설치 상품을 반품하는 경우에는 배송비가 추가될 수 있습니다. |
고객 부담이 아닙니다. |
진행 상태 | 결제완료 | 상품준비중 | 배송지시/배송중/배송완료 |
---|---|---|---|
어떤 상태 | 주문 내역 확인 전 | 상품 발송 준비 중 | 상품이 택배사로 이미 발송 됨 |
환불 | 즉시환불 | 구매취소 의사전달 → 발송중지 → 환불 | 반품회수 → 반품상품 확인 → 환불 |
- 결제완료 또는 배송상품은 1:1 문의에 취소신청해 주셔야 합니다.
- 특정 상품의 경우 취소 수수료가 부과될 수 있습니다.
결제수단 | 환불시점 | 환불방법 |
---|---|---|
신용카드 | 취소완료 후, 3~5일 내 카드사 승인취소(영업일 기준) | 신용카드 승인취소 |
계좌이체 |
실시간 계좌이체 또는 무통장입금 취소완료 후, 입력하신 환불계좌로 1~2일 내 환불금액 입금(영업일 기준) |
계좌입금 |
휴대폰 결제 |
당일 구매내역 취소시 취소 완료 후, 6시간 이내 승인취소 전월 구매내역 취소시 취소 완료 후, 1~2일 내 환불계좌로 입금(영업일 기준) |
당일취소 : 휴대폰 결제 승인취소 익월취소 : 계좌입금 |
포인트 | 취소 완료 후, 당일 포인트 적립 | 환불 포인트 적립 |
- 단순변심으로 인한 반품 시, 배송 완료 후 7일이 지나면 취소/반품 신청이 접수되지 않습니다.
- 주문/제작 상품의 경우, 상품의 제작이 이미 진행된 경우에는 취소가 불가합니다.
- 구성품을 분실하였거나 취급 부주의로 인한 파손/고장/오염된 경우에는 취소/반품이 제한됩니다.
- 제조사의 사정 (신모델 출시 등) 및 부품 가격변동 등에 의해 가격이 변동될 수 있으며, 이로 인한 반품 및 가격보상은 불가합니다.
- 뷰티 상품 이용 시 트러블(알러지, 붉은 반점, 가려움, 따가움)이 발생하는 경우 진료 확인서 및 소견서 등을 증빙하면 환불이 가능하지만 이 경우, 제반 비용은 고객님께서 부담하셔야 합니다.
- 각 상품별로 아래와 같은 사유로 취소/반품이 제한 될 수 있습니다.
상품군 | 취소/반품 불가사유 |
---|---|
의류/잡화/수입명품 | 상품의 택(TAG) 제거/라벨 및 상품 훼손으로 상품의 가치가 현저히 감소된 경우 |
계절상품/식품/화장품 | 고객님의 사용, 시간경과, 일부 소비에 의하여 상품의 가치가 현저히 감소한 경우 |
가전/설치상품 | 전자제품 특성 상, 정품 스티커가 제거되었거나 설치 또는 사용 이후에 단순변심인 경우, 액정화면이 부착된 상품의 전원을 켠 경우 (상품불량으로 인한 교환/반품은 AS센터의 불량 판정을 받아야 합니다.) |
자동차용품 | 상품을 개봉하여 장착한 이후 단순변심의 경우 |
CD/DVD/GAME/BOOK등 | 복제가 가능한 상품의 포장 등을 훼손한 경우 |
상품의 시리얼 넘버 유출로 내장된 소프트웨어의 가치가 감소한 경우 | |
노트북, 테스크탑 PC 등 | 홀로그램 등을 분리, 분실, 훼손하여 상품의 가치가 현저히 감소하여 재판매가 불가할 경우 |