임베디드 소프트웨어 베이직 with 라즈베리 파이

현업 시너와 함께하는
$36.29
SKU
9791165922375
+ Wish
[Free shipping over $100]

Standard Shipping estimated by Tue 05/28 - Mon 06/3 (주문일로부 10-14 영업일)

Express Shipping estimated by Thu 05/23 - Mon 05/27 (주문일로부 7-9 영업일)

* 안내되는 배송 완료 예상일은 유통사/배송사의 상황에 따라 예고 없이 변동될 수 있습니다.
Publication Date 2023/08/21
Pages/Weight/Size 188*245*30mm
ISBN 9791165922375
Categories IT 모바일 > 컴퓨터 공학
Description
현업 시니어와 주니어가 대화로 풀어 쓴 임베디드 소프트웨어 베이직.

이 책은 임베디드를 처음 접하는 독자들을 위한 책으로, 현업 시니어가 이론을 설명해주고 주니어가 실습을 하는 방식으로 되어있습니다. 책의 앞부분은 하드웨어에 대한 내용을 다루고 그 후 소프트웨어 입문에 대한 내용을 다루고 있습니다. 그 다음 실절적인 소프트웨어 개발 내용을 다루고 마지막으로 중급자를 위한 내용도 간략하게 소개하고 있습니다. 이 책 한 권이면 막연하게 느껴지던 임베디드 소프트웨어도 한층 가까워질 것입니다.
Contents
프롤로그
저자 소개
이 책의 구성
서문
추천사
배터 리더 추천사

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 임베디드 보안

에필로그
찾아보기
Author
이경종,민복기
20년째 소프트웨어 개발자로 살고 있다. 임베디드 소프트웨어와 리눅스 분야의 전문가다. 고려대학교에서 전자공학을, 카이스트 소프트웨어 대학원에서 소프트웨어 공학을 공부했다. 첫 직장이었던 삼성전자에서 소프트웨어 개발자로 일하던 중 더 큰 도전을 위해 벤처기업에 합류했으나 회사가 어려워지면서 10여 년간 정체된 삶을 살았다. 소프트웨어 개발자로서의 삶에 대한 고뇌와 지독한 불면증으로 3년을 내리 고생하다 책과 인문학에서 비로소 구원을 찾았다. 매해 100권이 넘는 책을 읽고 끊임없이 글을 씀으로써 스스로를 일으켜 세웠다.

2018년부터 구본형 변화경영연구소 연구원으로 활동하며 소프트웨어 개발에 인문학을 융합하고자 하는 꿈을 키웠고, 현재는 AI와 머신비전에 기반한 첨단 스포츠센서를 개발하는 (주)크리에이츠의 센서 개발 소프트웨어팀을 이끌고 있다. 또한 변화경영연구소에서 발행하는 ‘마음편지’ 필진으로 활동하며 인문학에 대한 탐구를 이어가고 있다. 저서로는 『개발자 오디세이아(로드북, 2020)』이 있다. 인문학적 깨달음과 실천이 더 좋은 소프트웨어를 만들게 한다는 신념을 가지고 있다.
20년째 소프트웨어 개발자로 살고 있다. 임베디드 소프트웨어와 리눅스 분야의 전문가다. 고려대학교에서 전자공학을, 카이스트 소프트웨어 대학원에서 소프트웨어 공학을 공부했다. 첫 직장이었던 삼성전자에서 소프트웨어 개발자로 일하던 중 더 큰 도전을 위해 벤처기업에 합류했으나 회사가 어려워지면서 10여 년간 정체된 삶을 살았다. 소프트웨어 개발자로서의 삶에 대한 고뇌와 지독한 불면증으로 3년을 내리 고생하다 책과 인문학에서 비로소 구원을 찾았다. 매해 100권이 넘는 책을 읽고 끊임없이 글을 씀으로써 스스로를 일으켜 세웠다.

2018년부터 구본형 변화경영연구소 연구원으로 활동하며 소프트웨어 개발에 인문학을 융합하고자 하는 꿈을 키웠고, 현재는 AI와 머신비전에 기반한 첨단 스포츠센서를 개발하는 (주)크리에이츠의 센서 개발 소프트웨어팀을 이끌고 있다. 또한 변화경영연구소에서 발행하는 ‘마음편지’ 필진으로 활동하며 인문학에 대한 탐구를 이어가고 있다. 저서로는 『개발자 오디세이아(로드북, 2020)』이 있다. 인문학적 깨달음과 실천이 더 좋은 소프트웨어를 만들게 한다는 신념을 가지고 있다.