HOME > 상세정보

상세정보

GNU/Linux 쾌속 임베디드 프로그래밍 : 보드를 활용한 임베디드 시스템 개요 및 주변 장치 사용법

자료유형
단행본
개인저자
Giometti, Rodolfo 정병혁, 역
서명 / 저자사항
GNU/Linux 쾌속 임베디드 프로그래밍 : 보드를 활용한 임베디드 시스템 개요 및 주변 장치 사용법 / 로돌포 지오메티 지음 ; 정병혁 옮김
발행사항
서울 :   에이콘,   2018  
형태사항
893 p. : 삽화 ; 24 cm
원표제
GNU/Linux rapid embedded programming : your one-stop solution to embedded programming on GNU/Linux
ISBN
9791161751665 9788960772106 (세트)
일반주기
색인수록  
기술 감수자: 루카 줄베르티(Luca Zulberti)  
일반주제명
Computer programming Debian (Computer system)
000 00000cam c2200205 c 4500
001 000045955667
005 20180928092056
007 ta
008 180927s2018 ulka 001c kor
020 ▼a 9791161751665 ▼g 94000
020 1 ▼a 9788960772106 (세트)
035 ▼a (KERIS)BIB000014852571
040 ▼a 223009 ▼c 223009 ▼d 241050 ▼d 211009
041 1 ▼a kor ▼h eng
082 0 4 ▼a 005.432 ▼2 23
085 ▼a 005.432 ▼2 DDCK
090 ▼a 005.432 ▼b 2018z7
100 1 ▼a Giometti, Rodolfo
245 1 0 ▼a GNU/Linux 쾌속 임베디드 프로그래밍 : ▼b 보드를 활용한 임베디드 시스템 개요 및 주변 장치 사용법 / ▼d 로돌포 지오메티 지음 ; ▼e 정병혁 옮김
246 1 9 ▼a GNU/Linux rapid embedded programming : ▼b your one-stop solution to embedded programming on GNU/Linux
260 ▼a 서울 : ▼b 에이콘, ▼c 2018
300 ▼a 893 p. : ▼b 삽화 ; ▼c 24 cm
500 ▼a 색인수록
500 ▼a 기술 감수자: 루카 줄베르티(Luca Zulberti)
650 0 ▼a Computer programming
650 0 ▼a Debian (Computer system)
700 1 ▼a 정병혁, ▼e
900 1 0 ▼a 지오메티, 로돌포, ▼e
945 ▼a KLPA

소장정보

No. 소장처 청구기호 등록번호 도서상태 반납예정일 예약 서비스
No. 1 소장처 과학도서관/Sci-Info(1층서고)/ 청구기호 005.432 2018z7 등록번호 121246016 도서상태 대출가능 반납예정일 예약 서비스 B M

컨텐츠정보

책소개

임베디드 컴퓨터는 최근 몇 년간 매우 복잡해져, 개발자는 좋은 주변 장치를 찾거나 주변 장치를 관리하는 데 시간을 소비하지 않고 문제 해결법에만 집중해야 빠른 개발이 가능하다. 이 책은 업계에서 많이 사용하는 비글본 블랙과 SAMA5D3 Xplain, Wandboard를 사용해 주변 장치를 쉽고 빠르게 관리 하는 실제 예제를 담고 있으며, GNU/리눅스 임베디드 시스템을 신속하게 프로그래밍 및 관리하도록 도와주는 안내서다.

★ 이 책에서 다루는 내용 ★

- 임베디드 시스템을 사용해 프로젝트 구현
- 임베디드 시스템용 주변 장치 접근 및 관리
- C와 파이썬, 배시, PHP 등의 언어를 사용해 임베디드 시스템 프로그래밍
- 데비안 및 우분투 같은 완전한 배포판이나 OpenWrt 및 Yocto같은 임베디드 배포판 사용
- 디바이스 통신을 최적화하기 위해 디바이스 드라이버 기능 이용
- GPIO와 시리얼 포트, PWM, ADC, 이더넷, Wifi, 오디오, 비디오, I2C, SPI, One Wire, USB, CAN 등 다양한 종류의 디바이스를 통해 데이터 접근
- RFID 리더와 스마트 카드 리더, 바코드 리더, Z-Wave 디바이스, GSM/GPRS 등 여러 디바이스의 실제 예제 사용
- 빛과 압력, 습도, 온도, 적외선, 전원, 동작 등 여러 센서 사용

★ 이 책의 대상 독자 ★

임베디드 머신 러닝 능력 사용법을 배우거나, 주변 장치로부터 데이터를 모으거나, 디바이스를 제어하기 위해 GNU/리눅스 디바이스 드라이버를 사용하길 원하는 독자에게 적합하다.
산업 애플리케이션용 GNU/리눅스 기반의 시스템을 모니터링하거나 기능 제어 구현을 위해 다른 컴퓨터 주변 장치를 쉽고 빠르게 접근하는 방법에 관심이 있는 독자에게도 적합하다.
하드웨어나 전자공학 지식과 유닉스 환경에서 C와 배시, 파이썬, PHP 프로그래밍 기본 지식을 임베디드 시스템에서 사용해보고 싶은 독자에게도 적합하다.

★ 이 책의 구성 ★

1장, '개발 시스템 설치'에서는 산업용 애플리케이션으로 가장 많이 사용하는 개발 도구인 비글본 블랙과 SAMA5D3 Xplain, Wandboard를 설명한다. 각 보드를 간단히 소개한 후 GNU/리눅스 배포판이 동작하도록 하기 위해 이 보드를 어떻게 설정하는지 살펴본다. 각 보드와 호스트 시스템(심지어 가상 머신 상에도)에 모든 개발 시스템을 설치하는 방법도 설명한다.
2장, '시스템 콘솔 관리'에서는 개발자 도구와 호스트 PC 설치법을 설명하고, 시리얼 콘솔과 이 콘솔에서 동작하는 셸(shell)에 대해 좀 더 자세히 살펴본다. 2장의 끝부분에서는 부트로더 명령어도 다룬다.
3장, 'C 컴파일러와 디바이스 드라이버, 유용한 개발 비법'에서는 C 컴파일러(이와 함께 크로스 컴파일러까지)를 다룬다. 그리고 커널 모듈과 디바이스 드라이버, 네트워크 파일 시스템에 대한 설명과 함께 파일 시스템 내부에 대해 살펴본다. 마지막으로 호스트 PC에서 타깃 머신의 데비안 배포판을 실행하기 위해 개발자가 에뮬레이터를 어떻게 사용하는지 다룬다.
4장, '스크립트를 사용한 빠른 프로그래밍과 시스템 데몬'에서는 시스템 데몬이 무엇인지와 가장 유명하고 유용한 데몬 사용법을 살펴본다. 그리고 배시와 PHP, 파이썬 언어를 사용하는 스크립트 프로그래밍을 다룬다.
5장, '임베디드 OS 설치'에서는 플래시 메모리와 이 메모리를 관리할 때 사용하는 소프트웨어를 설명하고, 리눅스의 메모리 기술 디바이스(MTD)와 (MTD)상에서 동작하는 두 가지 주요 파일 시스템인 JFFS2와 UBIFS를 다룬다. 근래에 사용하는 가장 유명한 임베디드 배포판인 Yocto, Openwrt, 임베디드 개발자가 애플리케이션을 작성하고, 이들 배포판에 추가하는 방법도 설명한다.
두 번째 파트는 임베디드 개발자가 마주하게 될 모든 유형의 주변 장치 디바이스에 대해 자세히 설명한다. 각 주변 장치마다 이 책에서 지원하는 각 임베디드 도구가 어디에서 사용할 수 있는지와 어떻게 접근하고 사용하는지를 설명할 것이다. 각 디바이스 별로 실례를 통해 디바이스를 쉽게 관리하는 방법도 배우게 된다
6장, '범용 입출력 신호 - GPIO'에서는 GPIO 회선과 간단한 설명을 소개하고, 이 회선이 임베디드 머신의 물리적으로 어디에 위치하는지 살펴본다. 그리고 간단한(그러나 효율적이지는 않은) 방식과 더 효율적인(하지만 좀 더 복잡한) 방식으로 GPIO 회선을 사용하는 방법을 자세히 살펴본다. 마지막으로 커널 내부에서 GPIO 관리하는 방식에 대한 빠른 소개와 IRQ 관리, LED 디바이스 지원을 다룬다.
7장, '시리얼 포트와 TTY 디바이스 - TTY'에서는 컴퓨터(적어도 제어 자동화 분야에서 사용하는 컴퓨터)가 가질 수 있는 가장 중요한 주변 장치 중 하나인 시리얼 포트를 소개한다. 시리얼 포트나 시리얼 디바이스가 무엇인지 간단히 설명한 후 실제 시리얼 디바이스를 사용하기 위해 GNU/리눅스에서 시리얼 포트와 디바이스를 관리하는 방법을 살펴본다. 그리고 두 임베디드 시스템이 이더넷 케이블로 연결된 것처럼, 시리얼 선을 사용해 두 임베디드 시스템이 통신할 수 있는 유용한 커널 트릭을 살펴본다.
8장, 'USB'에서는 다용도로 쓰이고, 최근 PC에서 많이 사용하는 USB 버스를 소개한다. 이 버스는 전자 장치를 컴퓨터에 꽂을 수 있게 해준다. 예를 들어, 하드 디스크나 키보드, 시리얼 디바이스는 같은 USB 포트를 통해 한 컴퓨터에 모두 연결될 수 있다.
9장, 'Inter-Integrated Circuits - I2C'에서는 같은 보드상에 있는 디바이스를 가진 메인 컴퓨터인 온보드(on-board) 장치를 연결할 때 사용하는 I2C를 소개한다. 여러 디바이스들은 I2C를 사용해 CPU와 통신하며, 이 장에서는 이런 장치를 가능한 많이 소개한다. 이 버스가 제공하는 많은 조합을 다루기 위해 각기 다른 장치와 다른 설정을 살펴본다.
10장, '시리얼 주변 장치 인터페이스 - SPI'에서는 I2C처럼 온보드 디바이스를 연결할 때 일반적으로 사용하는 SPI 버스를 소개한다. 이 버스는 I2C와 달리, I2C보다 높은 속도로 데이터를 전송할 수 있다. 버스가 양방향 통신이기 때문에 데이터 전송이 동시에 양방향으로 일어날 수 있다. 이런 SPI의 특성 때문에 이 버스는 보통 멀티미디어 애플리케이션이나 디지털 신호 처리 혹은 원격 통신 장치, SD 카드용으로 효율적인 데이터 스트림 등을 구현할 때 사용된다.
11장, '1-Wire - W1'에서는 속도는 느리지만 단 하나의 선을 사용해 원격에 있는 디바이스와 통신할 수 있는 1-Wire 버스를 소개한다. 이 버스는 CPU와 주변 장치 간 연결을 간단하게 만들어 가장 경제적이고, 식별과 인증, 보정 데이터나 제조 정보 전송을 위한 전자 장치를 컴퓨터 보드에 추가할 수 있는 간단한 방법을 제공한다.
12장, '이더넷 네트워크 디바이스'에서는 매우 먼 거리에 있는 다른 디바이스와 통신이 가능한 이더넷 디바이스를 소개한다. GNU/리눅스 기반의 시스템은 이더넷 디바이스와 관련 네트워킹(networking) 프로토콜에 대한 지원이 훌륭하기 때문에, 전세계 대부분의 네트워킹 디바이스는 이더넷 기술을 기반으로 한다.
13장, '무선 네트워크 디바이스 - WLAN'에서는 유선을 사용하지 않고 여러 컴퓨터 간 통신이 가능한 무선 네트워크 디바이스를 소개한다. 흥미로운 점은 이더넷 인터페이스에서 사용하는 대부분의 통신 프로토콜이 무선 네트워크 장치에서도 동작한다는 것이다.
14장, '제어기 영역 통신망'에서는 마이크로 컨트롤러와 컴퓨터, 디바이스가 호스트 컴퓨터 없이도 메시지 기반의 프로토콜을 사용해 애플리케이션 간 서로 통신할 수 있도록 해주는 CAN 버스를 소개한다. CAN 버스는 이더넷이나 와이파이(WiFi)처럼 유명하지는 않지만, 임베디드 세계에서는 이 버스를 디폴트로 지원하는 SoC도 어렵지 않게 볼 수 있다.
15장, '사운드 디바이스 - SND'에서는 사운드 디바이스를 소개하고, 독자가 오디오를 생성하기 위한 사운드 디바이스 사용법과 간단하고 저가인 오실로스코프(oscilloscope) 구현법을 소개하기 위한 예제를 제공한다.
16장, '비디오 디바이스 - V4L'에서는 일반적인 비디오 획득 장치를 소개하고, 책에서 소개하는 임베디드 도구를 독자가 감시 카메라나 원격 이미지 레코더로 바꿀 수 있는 몇 가지 예제를 제공한다.
17장, '아날로그-디지털 변환기 - ADC'에서는 실제 환경에서 아날로그 신호를 얻기 위해 사용하는 ADC를 소개한다. 또한 ADC 사용법과 특정 시점이나 어떤 이벤트가 발생했을 때 변환을 시작하기 위한 특별한 소프트웨어와 하드웨어 트리거(trigger) 사용법을 설명한다.
18장, '펄스 폭 변조'에서는 디지털 소스를 사용해 아날로그 신호를 만들기 위해 메시지를 펄싱(pulsing) 신호(보통 구형파(squre waveform))로 인코딩할 수 있는 PWM을 소개한다. 이런 메시지는 전기 모터나 다른 전자 장치에 공급되는 전원을 제어하거나 18장에서 살펴볼 서보(servo) 모터의 위치 제어를 위해 사용한다.
19장, '기타 장치'에서는 위의 장과 연관돼 있지만, 가독성을 위해 언급하지 않았던 주변 장치를 소개한다. 또한 RFID와 스마트카드 리더, 디지털/아날로그 센서 GSM/GPRS 모뎀, Z-wave와 같은 모니터링 혹은 제어 시스템에서 마주하게 될 부가적인 병렬 장치를 소개한다.


정보제공 : Aladin

저자소개

로돌포 지오메티(지은이)

엔지니어이자 IT 전문가, GNU/리눅스 전문가, 자유 소프트웨어 전도자다. 팩트출판사에서 출간한 『BeagleBone Essentials』(2015)과 『BeagleBone Home Automation Blueprints』(2016)의 저자며, 리눅스 PPS(리눅스 Pulse Per Second subsystem) 프로젝트 관리자로서 리눅스 소스 코드에 많은 패치를 올리고 있고, 산업 애플리케이션 디바이스용 새로운 디바이스 드라이버를 만들고 있다. x86과 ARM, MIPS, PowerPC 기반 플랫폼에서 20여 년 넘게 일했다. HCE Engineering S.r.l의 공동 수석(co-chief)이고, 산업 환경과 제어 자동화, 원격 모니터링 분야에서 프로토타이핑을 빨리 만들어낼 수 있는 새로운 하드웨어 및 소프트웨어와 관련된 Cosino 프로젝트의 공동 설립자다.

정병혁(옮긴이)

고려대 컴퓨터학과와 동 대학원 네트워크 연구실을 졸업했다. 지금은 임베디드 환경에서 와이파이 드라이버 및 임베디드 애플리케이션 개발 및 유지보수를 하고 있다. LG 전자에서 DLNA 및 미디어 프레임워크를 개발했고, 브로드컴(Broadcom)에서 와이파이 엔지니어(WIFI engineer)로 활 동했다. 임베디드 환경에서의 RTOS, Media, WIFI, Driver에 관심이 많다.

정보제공 : Aladin

목차

1장. 개발 시스템 설치 
2장. 시스템 콘솔 관리 
3장. C 컴파일러와 디바이스 드라이버, 유용한 개발 비법 
4장. 스크립트를 사용한 빠른 프로그래밍과 시스템 대응 
5장. 임베디드 OS 설치 
6장. 범용 입출력 신호 - GPIO 
7장. 시리얼 포트와 TTY 디바이스 - TTY 
8장. 범용 직렬 버스 - USB 
9장. I2C 
10장. 시리얼 주변 장치 인터페이스 - SPI 
11장. 1-Wire - W1 
12장. 이더넷 네트워크 디바이스 - ETH 
13장. 무선 네트워크 디바이스 - WLAN 
14장. 제어기 영역 네트워크 
15장. 사운드 디바이스 - SND 
16장. 비디오 디바이스 - V4L 
17장. 아날로그-디지털 변환기 - ADC 
18장. 펄스 폭 변조 - PWM 
19장. 기타 장치

관련분야 신착자료

한국데이터산업진흥원 (2020)