부제 현업 시니어와 함께하는
저자 이경종,민복기
출판사 비제이퍼블릭
출간/배본가능일 2023년 8월 21일
정가 32,000원
페이지 472쪽
판형 188*245
ISBN 979-11-6592-237-5(93000)
*현업 시니어와 주니어가 대화로 풀어 쓴 임베디드 소프트웨어 베이직.*
이 책은 임베디드를 처음 접하는 독자들을 위한 책으로, 현업 시니어가 이론을 설명해주고 주니어가 실습을 하는 방식으로 되어있습니다. 책의 앞부분은 하드웨어에 대한 내용을 다루고 그 후 소프트웨어 입문에 대한 내용을 다루고 있습니다. 그 다음 실절적인 소프트웨어 개발 내용을 다루고 마지막으로 중급자를 위한 내용도 간략하게 소개하고 있습니다. 이 책 한 권이면 막연하게 느껴지던 임베디드 소프트웨어도 한층 가까워질 것입니다.
프롤로그
저자 소개
이 책의 구성
서문
추천사
배터 리더 추천사
PART 1 하드웨어를 이해하고 기본 지식을 익히자!
CHAPTER 01 하드웨어를 알아야 소프트웨어를 만들 수 있나요? : 하드웨어 기초
1.1 전압과 전류, 저항
1.2 전원(Power source)
1.3 아날로그와 디지털: 신호(signal)와 주파수(frequency
1.4 아날로그와 디지털: 디지털 신호(digital signal)
1.5 회로도: 소자에 대해
1.6 회로도: 회로도 보는 방법
1.7 데이터시트 보는 법
1.8 라즈베리파이란?
실습 1.1 라즈베리파이 설치 및 구동
CHAPTER 02 복잡해 보이는 컴퓨터는 어떻게 만들어지나요? : 컴퓨터 시스템
2.1 컴퓨터 시스템이란?
2.2 프로세서, CPU, 그리고 컴퓨팅 아키텍처
2.3 IC technology
2.4 클럭? 주파수?
2.5 시스템 버스
2.6 라즈베리파이 4 Compute Module(CM4) 프로세서
실습 2.1 라즈베리파이 프로세서 정보 확인
실습 2.2 라즈베리파이 툴과 유틸리티
CHAPTER 03 데이터의 실체는 뭐고, 어떻게 움직이나요? : 데이터 프로세싱
3.1 코딩과 디코딩
3.2 비트연산, 데이터 포맷
3.3 바이트 오더링(Byte Ordering)
3.4 데이터 통신 - 타이밍 다이어그램
실습 3.1 인코딩/디코딩
실습 3.2 라즈베리파이 설정 - raspi-config
실습 3.3 CPU 클럭 속도 변경 실습
CHAPTER 04 시스템에 붙는 장치들은 왜 이렇게도 많을까요? : 주변기기 및 통신
4.1 주변장치와의 데이터 통신
4.2 PIO(Programmable Input/Output)
4.3 I2C
4.4 시리얼(serial)
4.5 USB(Universal Serial Bus)
실습 4.1 라즈베리파이 config
실습 4.2 라즈베리파이 GPIO
실습 4.3 라즈베리파이 시리얼 통신
실습 4.4 라즈베리파이 I2C 통신
CHAPTER 05 메모리는 그냥 저장장치 아닌가요? : 메모리
5.1 메모리 개론
5.2 외부 메모리(External Memory)의 종류
5.3 메모리 인터페이스
5.4 내부 메모리 – 캐시/레지스터
5.5 가상메모리/MMU
5.6 메모리맵드(Memory-Mapped) I/O
5.7 DMA(Direct Memory Access)
실습 5.1 라즈베리파이 메모리 정보 분석
CHAPTER 06 파일 하나 복사하는 데 시스템이 필요한가요? : 파일 시스템
6.1 임베디드 디바이스의 파일 시스템
6.2 루트 파일 시스템
6.3 FAT32 VS EXT4, 그리고 NFS?
6.4 파일 시스템 파티션, 그리고 파일
실습 6.1 파일 시스템 만들어 보기
실습 6.2 램 디스크 만들어 보기
CHAPTER 07 네트워크와 인터넷의 차이가 뭐죠? : 네트워크 217
7.1 네트워크 개론
7.2 이더넷(Ethernet)
7.3 와이파이(Wi-Fi)
7.4 Bluetooth
실습 7.1 이더넷과 와이파이 네트워크 구성 실습
CHAPTER 08 그냥 다 윈도우 쓰면 편하지 않나요? : 운영체제/플랫폼
8.1 RTOS(Real Time OS)
8.2 Linux
8.3 Android
8.4 Raspbian/Debian
8.5 POSIX
실습 8.1 리눅스 커널 구성/빌드
CHAPTER 09 부트로더(Bootloader)는 임베디드 전용 소프트웨어인가요? : 부트로더
9.1 부팅 프로세스
9.2 부트로더란
9.3 라즈베리파이 부팅 과정 분석
실습 9.1 라즈베리파이 부트로더 실습: rpiboot / eeprom / boot config
실습 9.2 라즈베리파이에 u-boot 구동하기.
CHAPTER 10 어떤 프로그래밍 언어를 익혀야 할지 모르겠어요 : 프로그래밍 언어 286
10.1 어셈블리 언어
10.2 C언어
10.3 C++
10.4 셸 스크립트
실습 10.1 셸 스크립트
PART 2 임베디드 리눅스 프로그래밍의 세계로
CHAPTER 11 그냥 일단 한번 만들어 봐 !: 소프트웨어 빌드와 개발환경
11.1 개발환경
11.2 툴체인(Toolchain)
11.3 컴파일러
11.4 링커
11.5 라이브러리(Library)
11.6 코드 영역/데이터 영역/ bss
11.7 Make System
실습 11.1 GCC
CHAPTER 12 프로그램이 어떻게 실행되는지 좀 더 들여다보자 : 프로세스/쓰레드
12.1 프로세스
12.2 쓰레드
12.3 스택(Stack)과 힙(Heap)
12.4 프로세스 통신
실습 12.1 쓰레드 실습 - pthread
CHAPTER 13 복잡한 소프트웨어가 어떻게 잘 돌아갈 수 있을까? : 인터럽트/스케줄링
13.1 인터럽트(interrupt)
13.2 컨텍스트 스위칭
13.3 선점형(Preemptive) 커널과 비선점형(Non-Preemptive) 커널
13.4 레이스 컨디션(Race condition), 뮤텍스(Mutex), 그리고 세마포(Semaphore)
13.5 데드락(Dead Lock)
실습 13.1 자원을 공유하는 다중 쓰레드 실습
CHAPTER 14 꽂으면 자동으로 동작하는 것 같지만, 사실은 말야 : 디바이스 드라이버 383
14.1 DEV 파일 시스템.
14.2 udev
14.3 리눅스 디바이스 드라이버(Device Driver)
14.4 디바이스 트리(Device Tree, DT)
실습 14.1 라즈베리파이 디바이스 드라이버용 커널 모듈 실습
CHAPTER 15 디버깅도 예술이 될 수 있어. 가르쳐 줄까? : 임베디드 소프트웨어 디버깅
15.1 효율적인 디버깅을 위한 개발환경 구축
15.2 임베디드 소프트웨어 디버깅 테크닉
실습 15.1 gdb 활용
실습 15.2 크래시 리포팅 시스템 활용: bugsplat
CHAPTER 16 더 높은 곳으로 가고 싶어 하는 너에게 : 임베디드 어드밴스드
16.1 임베디드 소프트웨어 레이어링
16.2 임베디드 표준
16.3 임베디드 보안
에필로그
찾아보기
이경종
삼성전자 소프트웨어 개발자를 거쳐, 현재 크리에이츠 소프트웨어 팀장으로 임베디드 리눅스 기반 소프트웨어 개발을 주도하고 있음. 저서로는 <어떤 개발자가 살아남는가, 2022 비제이퍼블릭>, <개발자 오디세이아, 2020 로드북>이 있음. 첫 저서였던 <개발자 오디세이아>는 2021년도 교육부 선정 우수 학술도서에 선정된 바 있음.
민복기
아두이노 기반 IOT 코딩 강사로 활동한 바 있으며, 현재 크리에이츠 소프트웨어팀 팀원으로 디바이스 드라이버와 임베디드 리눅스 플랫폼을 개발하고 있음
“임베디드 소프트웨어 개론, 하드웨어&소프트웨어 기초부터 중급레벨의 실무적 지식까지 총망라한 도서”
『임베디드 소프트웨어 베이직 with 라즈베리 파이』이 책은 현업 임베디드 소프트웨어 개발자들에게 꼭 필요한 도서로, 특히 주니어분들의 가려운 부분을 긁어줄 수 있는 책입니다. 단순히 이론을 나열하는 것이 아니라 주니어의 궁금증을 시니어가 대답해주는 방식으로 어렵지 않게 임베디드 소프트웨어를 설명해주고 있습니다. 소프트웨어 베이직이지만 하드웨어 지식도 빠지지 않고 설명하고 있습니다. 실무 지식까지 놓치지 않고 설명하고 있으니 주니어 개발자들의 좋은 길잡이가 될 것입니다.
강화학습 이론&실습 (1) | 2023.10.11 |
---|---|
IT 시스템의 정석 (0) | 2023.09.27 |
파이썬으로 공부하는 블록체인 (1) | 2023.08.07 |
댓글 영역