GNU/Linux Rapid Embedded Programming

An annotated guide to program and develop GNU/Linux Embedded systems quickly
Preview in Mapt

GNU/Linux Rapid Embedded Programming

Rodolfo Giometti

An annotated guide to program and develop GNU/Linux Embedded systems quickly
Mapt Subscription
FREE
$29.99/m after trial
eBook
$33.60
RRP $47.99
Save 29%
Print + eBook
$59.99
RRP $59.99
What do I get with a Mapt Pro subscription?
  • Unlimited access to all Packt’s 5,000+ eBooks and Videos
  • Early Access content, Progress Tracking, and Assessments
  • 1 Free eBook or Video to download and keep every month after trial
What do I get with an eBook?
  • Download this book in EPUB, PDF, MOBI formats
  • DRM FREE - read and interact with your content when you want, where you want, and how you want
  • Access this title in the Mapt reader
What do I get with Print & eBook?
  • Get a paperback copy of the book delivered to you
  • Download this book in EPUB, PDF, MOBI formats
  • DRM FREE - read and interact with your content when you want, where you want, and how you want
  • Access this title in the Mapt reader
What do I get with a Video?
  • Download this Video course in MP4 format
  • DRM FREE - read and interact with your content when you want, where you want, and how you want
  • Access this title in the Mapt reader
$0.00
$33.60
$59.99
$29.99p/m after trial
RRP $47.99
RRP $59.99
Subscription
eBook
Print + eBook
Start 30 Day Trial

Frequently bought together


GNU/Linux Rapid Embedded Programming Book Cover
GNU/Linux Rapid Embedded Programming
$ 47.99
$ 33.60
Rapid C++ [Video] Book Cover
Rapid C++ [Video]
$ 124.99
$ 106.25
Buy 2 for $35.00
Save $137.98
Add to Cart
Subscribe and access every Packt eBook & Video.
 
  • 5,000+ eBooks & Videos
  • 50+ New titles a month
  • 1 Free eBook/Video to keep every month
Start Free Trial
 

Book Details

ISBN 139781786461803
Paperback732 pages

Book Description

Embedded computers have become very complex in the last few years and developers need to easily manage them by focusing on how to solve a problem without wasting time in finding supported peripherals or learning how to manage them. The main challenge with experienced embedded programmers and engineers is really how long it takes to turn an idea into reality, and we show you exactly how to do it. This book shows how to interact with external environments through specific peripherals used in the industry. We will use the latest Linux kernel release 4.4.x and Debian/Ubuntu distributions (with embedded distributions like OpenWrt and Yocto).

The book will present popular boards in the industry that are user-friendly to base the rest of the projects on - BeagleBone Black, SAMA5D3 Xplained, Wandboard and system-on-chip manufacturers.

Readers will be able to take their first steps in programming the embedded platforms, using C, Bash, and Python/PHP languages in order to get access to the external peripherals. More about using and programming device driver and accessing the peripherals will be covered to lay a strong foundation. The readers will learn how to read/write data from/to the external environment by using both C programs or a scripting language (Bash/PHP/Python) and how to configure a device driver for a specific hardware.

After finishing this book, the readers will be able to gain a good knowledge level and understanding of writing, configuring, and managing drivers, controlling and monitoring applications with the help of efficient/quick programming and will be able to apply these skills into real-world projects.

Table of Contents

Chapter 1: Installing the Developing System
Embedded world terms
Systems' overview
Installing a development system
Setting up the developing system
Summary
Chapter 2: Managing the System Console
Basic OS management
A quick tour into the bootloader
Summary
Chapter 3: C Compiler, Device Drivers, and Useful Developing Techniques
The C compiler
The Kernel and DTS files
What is a device driver?
The root filesystem (rootfs)
The Network FileSystem (NFS)
Using an emulator
Summary
Chapter 4: Quick Programming with Scripts and System Daemons
Setting up the system
System daemons
Scripting languages
Writing a custom daemon
Summary
Chapter 5: Setting Up an Embedded OS
MTD versus block devices
OpenWrt
Yocto
Summary
Chapter 6: General Purposes Input Output signals – GPIO
What is a GPIO line?
GPIOs in Linux
Getting access to GPIOs
Using GPIOs with scripting languages
Managing GPIO into the kernel
Summary
Chapter 7: Serial Ports and TTY Devices - TTY
What are TTY, serial, and UART lines?
Implementations of serial ports
The serial ports in Linux
The communication parameters
Getting access to TTYs
Managing TTY in the kernel with SLIP
Summary
Chapter 8: Universal Serial Bus - USB
What is the universal serial bus?
The USB bus in Linux
The USB tools
The raw USB bus
Summary
Chapter 9: Inter-Integrated Circuits - I2C
What is the Inter-Integrated Circuit bus?
The I2C bus in Linux
The I2C tools
Getting access to I2C devices
The Raw I2C Bus
Summary
Chapter 10: Serial Peripheral Interface - SPI
What is the Serial Peripheral Interface bus?
The SPI bus in Linux
The SPI tools
Getting access to SPI devices
The raw SPI bus
Summary
Chapter 11: 1-Wire - W1
What is the 1-Wire Bus?
The 1-Wire bus in Linux
Getting access to 1-Wire devices
Summary
Chapter 12: Ethernet Network Device - ETH
What is an Ethernet network device?
The Ethernet devices in Linux
The net tools
Communicating with a remote device
The raw Ethernet bus
Simple Ethernet bridging
Summary
Chapter 13: Wireless Network Device - WLAN
What is a wireless network device?
WLAN devices in Linux
The wireless tools
The WPA supplicant
The Hostapd daemon
Summary
Chapter 14: Controller Area Network - CAN
What is the CAN bus?
The CAN bus in Linux
The can-utils package
The raw CAN bus
Exchanging data via the CAN bus
Summary
Chapter 15: Sound Devices - SND
What is a sound device?
Sound in Linux
The audio tools
The USB audio device class
Managing sound devices
Summary
Chapter 16: Video devices - V4L
What is a video device?
Video in Linux
The video tools
The USB video class device 
Managing video devices
Summary
Chapter 17: Analog-to-Digital Converters - ADC
What is an analog-to-digital converter device?
ADCs in Linux
Detecting a gas
Summary
Chapter 18: Pulse-Width Modulation - PWM
What is a PWM device?
PWM devices in Linux
Managing a servo motor
Summary
Chapter 19: Miscellaneous Devices
Digital sensors
Analog sensors
GSM/GPRS modem
Smart card reader
RFID reader
Z-Wave
Summary

What You Will Learn

  • Use embedded systems to implement your projects
  • Access and manage peripherals for embedded systems
  • Program embedded systems using languages such as C, Python, Bash, and PHP
  • Use a complete distribution, such as Debian or Ubuntu, or an embedded one, such as OpenWrt or Yocto
  • Harness device driver capabilities to optimize device communications
  • Access data through several kinds of devices such as GPIO’s, serial ports, PWM, ADC, Ethernet, WiFi, audio, video, I2C, SPI, One Wire, USB and CAN
  • Practical example usage of several devices such as RFID readers, Smart card readers, barcode readers, z-Wave devices, GSM/GPRS modems
  • Usage of several sensors such as light, pressure, moisture, temperature, infrared, power, motion

Authors

Table of Contents

Chapter 1: Installing the Developing System
Embedded world terms
Systems' overview
Installing a development system
Setting up the developing system
Summary
Chapter 2: Managing the System Console
Basic OS management
A quick tour into the bootloader
Summary
Chapter 3: C Compiler, Device Drivers, and Useful Developing Techniques
The C compiler
The Kernel and DTS files
What is a device driver?
The root filesystem (rootfs)
The Network FileSystem (NFS)
Using an emulator
Summary
Chapter 4: Quick Programming with Scripts and System Daemons
Setting up the system
System daemons
Scripting languages
Writing a custom daemon
Summary
Chapter 5: Setting Up an Embedded OS
MTD versus block devices
OpenWrt
Yocto
Summary
Chapter 6: General Purposes Input Output signals – GPIO
What is a GPIO line?
GPIOs in Linux
Getting access to GPIOs
Using GPIOs with scripting languages
Managing GPIO into the kernel
Summary
Chapter 7: Serial Ports and TTY Devices - TTY
What are TTY, serial, and UART lines?
Implementations of serial ports
The serial ports in Linux
The communication parameters
Getting access to TTYs
Managing TTY in the kernel with SLIP
Summary
Chapter 8: Universal Serial Bus - USB
What is the universal serial bus?
The USB bus in Linux
The USB tools
The raw USB bus
Summary
Chapter 9: Inter-Integrated Circuits - I2C
What is the Inter-Integrated Circuit bus?
The I2C bus in Linux
The I2C tools
Getting access to I2C devices
The Raw I2C Bus
Summary
Chapter 10: Serial Peripheral Interface - SPI
What is the Serial Peripheral Interface bus?
The SPI bus in Linux
The SPI tools
Getting access to SPI devices
The raw SPI bus
Summary
Chapter 11: 1-Wire - W1
What is the 1-Wire Bus?
The 1-Wire bus in Linux
Getting access to 1-Wire devices
Summary
Chapter 12: Ethernet Network Device - ETH
What is an Ethernet network device?
The Ethernet devices in Linux
The net tools
Communicating with a remote device
The raw Ethernet bus
Simple Ethernet bridging
Summary
Chapter 13: Wireless Network Device - WLAN
What is a wireless network device?
WLAN devices in Linux
The wireless tools
The WPA supplicant
The Hostapd daemon
Summary
Chapter 14: Controller Area Network - CAN
What is the CAN bus?
The CAN bus in Linux
The can-utils package
The raw CAN bus
Exchanging data via the CAN bus
Summary
Chapter 15: Sound Devices - SND
What is a sound device?
Sound in Linux
The audio tools
The USB audio device class
Managing sound devices
Summary
Chapter 16: Video devices - V4L
What is a video device?
Video in Linux
The video tools
The USB video class device 
Managing video devices
Summary
Chapter 17: Analog-to-Digital Converters - ADC
What is an analog-to-digital converter device?
ADCs in Linux
Detecting a gas
Summary
Chapter 18: Pulse-Width Modulation - PWM
What is a PWM device?
PWM devices in Linux
Managing a servo motor
Summary
Chapter 19: Miscellaneous Devices
Digital sensors
Analog sensors
GSM/GPRS modem
Smart card reader
RFID reader
Z-Wave
Summary

Book Details

ISBN 139781786461803
Paperback732 pages
Read More

Read More Reviews

Recommended for You

Mastering Embedded Linux Programming Book Cover
Mastering Embedded Linux Programming
$ 39.99
$ 28.00
Learning Linux Binary Analysis Book Cover
Learning Linux Binary Analysis
$ 35.99
$ 25.20
Python Machine Learning Book Cover
Python Machine Learning
$ 35.99
$ 25.20
Embedded Linux Development with Yocto Project Book Cover
Embedded Linux Development with Yocto Project
$ 14.99
$ 10.50
Mastering Object-oriented Python Book Cover
Mastering Object-oriented Python
$ 26.99
$ 18.90
PHP Oracle Web Development: Data processing, Security, Caching, XML, Web Services, and Ajax Book Cover
PHP Oracle Web Development: Data processing, Security, Caching, XML, Web Services, and Ajax
$ 29.99
$ 21.00