서브메뉴
검색
본문
Powered by NAVER OpenAPI
-
-
임베디드 시스템을 위한 C 프로그래밍 기법
저자 : 사카모토 타다시
출판사 : 프리렉
출판년 : 2011
정가 : 22000, ISBN : 9788965400103
책소개
책은 이미 C 언어의 문법을 배운 사람을 대상으로 한다. 이 책을 읽고 나면 임베디드용 C 프로그래밍의 특징과 개발 과정의 함정들 그리고 프로그램의 품질을 높일 수 있는 핵심이 무엇인지 이해할 수 있을 것이다. 주의 깊게 읽어 내려 간다면 이 책에서 발견한 새로운 이야기(메시지)를 바탕으로 그 누구도 따라올 수 없는 임베디드 프로그램 분야의 독보적인 품질 전문가가 될 수 있다.
제1장에서는 임베디드 소프트웨어와 C 언어의 연관성, 임베디드 소프트웨어의 특징(하드웨어와의 관련, 각종 제약 사항 등), 구성 요소 등을 알기 쉽게 설명하고 있으며, 특히 개발 공정에서는 상위 설계의 중요성을 강조하고 있다. 제2장에서는 임베디드 분야의 책으로는 드물게 품질을 이야기하고 있다. 임베디드 프로그램의 품질을 높이려면 신뢰성 품질 등 품질의 다양한 측면을 알아야 함을 설명하고 있으며, 설계/리뷰/테스트/재사용/구성 관리/변경 관리/결함 관리 등의 중요성을 일목요연하게 정리하고 있다. 또한 C 언어에서 빠지기 쉬운 여러 함정과 좋은 소스 코드를 만들기 위한 다양한 사례들을 품질의 관점에서 설명하고 있다.
제3장에서는 C 언어로 임베디드 프로그램을 작성할 경우 주의해야 할 사항을 메모리 사용/인터럽트 설정/스타트업 루틴/컴파일과 링크 별로 설명하고 있다. 또한 임베디드 소프트웨어는 하드웨어와 밀접한 관계가 있으므로 기본적으로 알아야 할 하드웨어의 특징과 하드웨어와 친해지는 방법을 설명하고 있다. 제4장과 제5장에서는 임베디드 프로그래밍에서 자주 사용되는 프로그램의 관용구 몇 가지와 프로그램 샘플을 소개하고 있다.
목차
제1장 임베디드 소프트웨어란?
1 임베디드 소프트웨어는 대중적인 소프트웨어
2 임베디드 소프트웨어와 C 언어
3 임베디드 소프트웨어의 특징
3.1 하드웨어와의 관련
3.2 신뢰성 등의 품질
3.3 제약
3.4 크로스 플랫폼
3.5 이식성에 대한 고려
4 임베디드 소프트웨어를 구성하는 요소
5 임베디드 소프트웨어의 개발 공정
제2장 임베디드 프로그램의 품질
1 C 언어의 일반적인 특징과 포인트
1.1 저 레벨의 처리를 기술할 수 있는 고급 언어
1.2 프리 포맷
1.3 선행처리기
1.4 포인터
1.5 데이터의 형변환
1.6 연산자의 우선순위
1.7 독자적인 확장
2 품질을 높이려면? 품질의 다양한 측면을 알자
2.1 품질 정의
2.2 기능성 품질
2.3 효율성 품질
2.4 신뢰성 품질
2.5 유지보수성 품질/이식성 품질
2.6 사용성 품질
3 품질을 높이려면? 견고한 설계를 하자
3.1 모듈간 구조를 설계하자
3.2 모듈 응집도를 생각하자
3.3 모듈 결합도를 생각하자
3.4 모듈 분할의 지침을 의식하자
3.5 인클루드 파일 분할의 지침을 의식하자
3.6 모듈의 내부 구조를 단순하게 설계하자
4 품질을 높이려면? 리뷰를 하자
4.1 왜 리뷰를?
4.2 리뷰에서 체크하는 관점의 예
4.3 리뷰 결과에 대한 대처
4.4 리뷰에서 하면 안 되는 사항
4.5 정적 해석 도구는 리뷰를 대신할 수 있는가?
5 품질을 높이려면? 좋은 코드를 만들자
5.1 좋은 코드란?
5.2 C 언어에서 빠지기 쉬운 함정
5.3 좋은 코드 : 신뢰성에 대한 예
5.4 좋은 코드 : 효율성에 대한 예
5.5 좋은 코드 : 유지보수성/이식성에 대한 예
6 품질을 높이려면? 좋은 재사용을 하자
6.1 모듈 단위의 재사용
6.2 클래스 상속에 의한 재사용
6.3 복사와 붙여넣기에 의한 재사용
6.4 재사용과 지적 재산권
7 품질을 확인하려면? 테스트를 하자
7.1 테스트의 진행 방법
7.2 커버리지와 핀포인트
7.3 모듈 단독 테스트
7.4 모듈 결합 테스트(함수의 결합)
7.5 상태 천이 테스트
7.6 테스트하기 쉬운 프로그램을 만들자
8 품질을 높이려면? 원리를 알자
9 품질을 높이려면? 구성을 관리하자
10 품질을 높이려면? 변경을 관리하자
11 품질을 높이려면? 결함을 관리하자
제3장 C 프로그램 실행의 내부 구조
1 CPU는 프로그램을 어떤 방식으로 실행시키는가?
2 메모리와 C 프로그램
2.1 메모리 맵
2.2 스택
2.3 함수 호출
2.4 변수 배치
2.4 코드 배치와 포인터
2.5 I/O 포터
3 인터럽트 설정
3.1 인터럽트란?
3.2 인터럽트 설정
3.3 인터럽트 처리의 전후에 필요한 소프트웨어 처리
3.4 다중 인터럽트와 인터럽트의 우선순위
3.5 인터럽트 처리를 기술할 때의 주의점
4 스타트업 루틴
5 컴파일과 링크
5.1 컴파일러가 하는 일
5.2 링키지 에디터가 하는 일
5.3 컴파일러를 믿지 마라?
6 하드웨어와 친해지자
6.1 하드웨어에 대한 액세스는 어떻게 하는 것일까?
6.2 프로그램에서 하드웨어에 액세스하는 방법
6.3 메모리 종류와 액세스 속도
6.4 입출력에 관한 회로 요소의 지식
6.5 하드웨어의 특성
7 리얼타임 운영체제
제4장 임베디드 프로그램의 관용구
1 비트 제어
2 버퍼 제어
3 메모리 배치
4 포인터
5 포트로의 액세스
제5장 임베디드 프로그램의 샘플
1 임베디드 프로그램 샘플의 사양
1.1 프로그램 사양
1.2 하드웨어 사양
2 프로그램 샘플 1
3 프로그램 샘플 2
부록 추천 도서 / URL