서브메뉴
검색
본문
Powered by NAVER OpenAPI
-
임베디드 소프트웨어 베이직 with 라즈베리 파이 (현업 시니어와 함께하는)
저자 : 이경종^민복기
출판사 : 비제이퍼블릭
출판년 : 2023
ISBN : 9791165922375
책소개
현업 시니어와 주니어가 대화로 풀어 쓴 임베디드 소프트웨어 베이직.
이 책은 임베디드를 처음 접하는 독자들을 위한 책으로, 현업 시니어가 이론을 설명해주고 주니어가 실습을 하는 방식으로 되어있습니다. 책의 앞부분은 하드웨어에 대한 내용을 다루고 그 후 소프트웨어 입문에 대한 내용을 다루고 있습니다. 그 다음 실절적인 소프트웨어 개발 내용을 다루고 마지막으로 중급자를 위한 내용도 간략하게 소개하고 있습니다. 이 책 한 권이면 막연하게 느껴지던 임베디드 소프트웨어도 한층 가까워질 것입니다.
목차
프롤로그
저자 소개
이 책의 구성
서문
추천사
배터 리더 추천사
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 임베디드 보안
에필로그
찾아보기