나에게 필요한 지식과 기술을 검색해 보세요.

디자인 패턴을 적용한 임베디드 시스템: 당신을 임베디드 전문가로 이끌어줄 꼼꼼한 멘토링

지은이

엘레시아 화이트

옮긴이

우정은

출간일

2013.06.22

레벨

초중급

평점

4.3(3명)

정가

26,000

판매가

23,400

총 결제 금액

10%

23,400

적립 예정

1,170P

쪽수

376쪽

ISBN

9788968480195

브랜드

한빛미디어

도대체 내가 만든 프로그램이 어떻게 동작하는 거지?


내가 만든 프로그램이 하드웨어의 LED에 불을 켜거나 스피커로 음악이 흘러나오게 할 때 프로그래머라면 누구나 ‘어떻게 하드웨어가 동작하길래?’라는 의문을 품게 된다. 이 책은 이러한 의문에 대한 답변을 준다. 외부장치와의 입출력, 내부 메모리의 구성, 코드를 저장하거나 파워를 절약하는 방법까지 이제 하드웨어의 동작방법을 이해하고 소프트웨어를 보자.

 

대상 독자

  • 컴퓨터 공학, 전자공학 학부생, 대학원생
  • 하드웨어 시스템 입문자
  • 임베디드 시스템을 체계적으로 다시 공부하고 싶은 개발자

 

이 책의 내용

 

전달하려는 정보는 기술과 밀접한 관련이 있으나 편안한 방법으로 이를 전달해서 독자들이 소설을 읽듯 볼 수 있다. 반드시 프로그래밍을 직접 하면서 내용을 익힐 필요도 없다(그러나 예제를 직접 살펴보고 권고 사항을 자신의 코드에 적용한다면 책의 내용을 좀 더 잘 이해할 수 있을 것이다).
이 책은 자신이 원하는 부분만 참고할 수 있는 기술적 매뉴얼과는 다르다. 물론 자신이 원하는 부분만 골라 읽을 수는 있지만 그렇게 해서는 탐색격멸 기법(search-and-destroy method)으로 제공하는 수많은 정보를 얻지 못할 것이다. 따라서 순서대로 책을 읽기 바란다. 책의 내용 전체를 이해하면 마법사가 마법서를 펴듯이 구현하고자 하는 기능과 관계된 장을 펴서 명령어 테이블을 만들거나 다양한 소수점 구현을 순식간에 할 수 있다.

  • 1장 소개_ 임베디드 시스템이란 무엇인가? 기존의 소프트웨어 개발과 무엇이 다른가?
  • 2장 시스템 아키텍처 만들기_ 시스템 아키텍처(그리고 문서)를 만드는 방법을 알아본다.
  • 3장 하드웨어에 익숙해지기_ 보드를 구동하는 과정에서 하드웨어와 소프트웨어를 통합한다는 건 어려운 일이다. 어떻게 하드웨어와 소프트웨어를 부드럽게 통합할 수 있는지 살펴본다.
  • 4장 출력, 입력, 타이머_ 임베디드 시스템의 ‘Hello World’ 버전으로 LED를 깜빡이는 기능을 구현한다. LED를 깜빡이는 기능을 구현하는 것은 생각보다 복잡하다.
  • 5장 실행 흐름 관리_ 시스템 설정, 인터럽트 활용, 상태 머신 만들기 등을 설명한다.
  • 6장 주변장치와 통신하기_ 임베디드 시스템은 UART, SSP, SPI, I2C, USB 등의 다양한 시리얼 통신을 제공한다. 네트워킹, 비   트 뱅, 병렬 버스도 빼놓을 수 없다. 
  • 7장 코드 업데이트하기_ 내부 업데이터를 이용하는 방법에서 직접 업데이터를 만드는 방법에 이르기까지 프로세서에서 실행하는 코드를 교체할 때 선택할 수 있는 다양한 방법을 학습한다.
  • 8장 추가 작업_ 램, 코드 공간, 프로세서 사이클을 줄이는 방법을 살펴본다.
  • 9장 수학_ 대부분의 임베디드 시스템에서는 어떤 형태로든 분석이 필요하다. 수학 연산과 소수점 연산이 어떻게 작동하는지 이해한다면 더 빠른 시스템을 구현하는 데 도움이 될 것이다.
  • 10장 소비 전력 줄이기_ 프로세서 사이클을 줄이는 방법에서 시스템 아키텍처 제안에 이르기까지 전력 소비를 줄이는 다양한 방법을 확인한다. 10장은 배터리에서 실행되는 시스템에 유익한 내용을 제공한다. 필자는 ‘엔지니어가 이런 순서로 생각했으면’ 하는 바람으로 장의 순서를 결정했다. 아키텍처를 먼저 소개한다는 것이 이상해 보일 수 있다. 그러나 최적화 문제를 걱정하기에 앞서 어떻게 시스템에 맞도록 자신의 코드를 구현할 것인가를 생각하는 것이 더 낫다고 생각한다.

 

저자

목차

CHAPTER 1 소개
__1.1 컴파일러, 언어, 객체지향 프로그래밍 
__1.2 임베디드 시스템 개발 
__1.3 추가 자료 

CHAPTER 2 시스템 아키텍처 만들기
__2.1 시스템 다이어그램 만들기 
__2.2 다이어그램에서 아키텍처까지 
__2.3 샌드박스 활용 
__2.4 추가 자료 

CHAPTER 3 하드웨어에 익숙해지기
__3.1 하드웨어와 소프트웨어 통합 
__3.2 데이터시트 읽기 
__3.3 프로세서는 언어다 
__3.4 회로도 읽기 
__3.5 디버깅 도구상자와 소화기 갖추기 
__3.6 하드웨어와 소프트웨어 테스팅 
__3.7 에러 처리 
__3.8 추가 자료 

CHAPTER 4 출력, 입력, 타이머
__4.1 출력 토글링 
__4.2 하드웨어와 작동 분리하기 
__4.3 I/O 입력 
__4.4 순간적인 버튼 누름 
__4.5 정해지지 않은 런타임 
__4.6 타이머 사용 
__4.7 펄스 너비 변조 사용 
__4.8 제품 출하 
__4.9 추가 자료 

CHAPTER 5 실행 흐름 관리
__5.1 스케줄링과 운영체제 기본 
__5.2 상태 머신 
__5.3 인터럽트 
__5.4 추천하지 않는 인터럽트 사용법 
__5.5 와치독 
__5.6 추가 자료 

CHAPTER 6 주변장치와 통신하기
__6.1 광범위하게 사용되는 주변장치 
__6.2 다양한 통신 방식 
__6.3 주변장치의 통신 기능 
__6.4 추가 자료 

CHAPTER 7 코드 업데이트하기
__7.1 온보드 부트로더 
__7.2 자신만의 업데이터 만들기 
__7.3 벽돌 로더 
__7.4 보안 
__7.5 링커 스크립트 
__7.6 요약 

CHAPTER 8 추가 작업
__8.1 코드 공간 
__8.1.1 맵 파일 읽기(파트 1) 
__8.2 램 
__8.3 속도 
__8.4 요약 
__8.5 추가 자료 

CHAPTER 9 수학
__9.1 빠른 작동과 느린 작동 확인 
__9.2 기존 알고리즘 사용 
__9.3 알고리즘 설계와 수정 
__9.4 가짜 소수점수 
__9.5 추가 자료 

CHAPTER 10 소비 전력 줄이기
__10.1 전력 소비 이해 
__10.2 방에서 나갈 땐 등을 끄자 
__10.3 프로세서를 슬립 상태로 
__10.4 추가 자료

리뷰

전체 평점

4.3

오탈자

등록된 오탈자가 없어요

오탈자를 발견하셨다면 작성해주세요.

26,000

10%

23,400