GNU/Linux rapid embedded programming your one-stop solution to embedded programming on GNU/Linux

An annotated guide to program and develop GNU/Linux Embedded systems quickly About This Book Rapidly design and build powerful prototypes for GNU/Linux Embedded systems Become familiar with the workings of GNU/Linux Embedded systems and how to manage its peripherals Write, monitor, and configure app...

Descripción completa

Detalles Bibliográficos
Otros Autores: Giometti, Rodolfo, author (author)
Formato: Libro electrónico
Idioma:Inglés
Publicado: Birmingham, England ; Mumbai, [India] : Packt 2017.
Edición:1st edition
Materias:
Ver en Biblioteca Universitat Ramon Llull:https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009630086006719
Tabla de Contenidos:
  • Cover
  • Copyright
  • Credits
  • About the Author
  • About the Reviewer
  • www.PacktPub.com
  • Customer Feedback
  • Table of Contents
  • Preface
  • Chapter 1: Installing the Developing System
  • Embedded world terms
  • Systems' overview
  • The BeagleBone Black
  • The SAMA5D3 Xplained
  • The Wandboard
  • Installing a development system
  • Setting up the host machine
  • Basic tools
  • The cross-compiler
  • Setting up the BeagleBone Black
  • Serial console for the BeagleBone Black
  • U-Boot (with MLO)
  • Linux kernel for the BeagleBone Black
  • Debian 8 (jessie) for the BeagleBone Black
  • Setting up the SAMA5D3 Xplained
  • Serial console for SAMA5D3 Xplained
  • U-Boot (with boot.bin)
  • Linux kernel for SAMA5D3 Xplained
  • Debian 8 (jessie) for SAMA5D3 Xplained
  • Setting up the Wandboard
  • Serial console for the Wandboard
  • U-Boot (with SPL)
  • Linux kernel for the Wandboard
  • Debian 8 (jessie) for the Wandboard
  • Setting up the developing system
  • BeagleBone Black - USB, networking, and overlays
  • SAMA5D3 Xplained - USB and networking
  • Wandboard - USB and networking (wired and wireless)
  • Common settings
  • Summary
  • Chapter 2: Managing the System Console
  • Basic OS management
  • File manipulation and Co
  • echo and cat
  • dd
  • grep and egrep
  • tr and sed
  • head and tail
  • od and hexdump
  • file
  • strings
  • strace
  • Package management
  • Searching a software package
  • Installing a package
  • apt-get and friends versus aptitude
  • The deb files
  • Managing the kernel messages
  • A quick tour into the bootloader
  • The environment
  • Managing the storage devices
  • MMC
  • Managing the flash
  • GPIO management
  • Accessing an I2C device
  • Loading files from the network
  • The kernel command line
  • Summary
  • Chapter 3: C Compiler, Device Drivers, and Useful Developing Techniques
  • The C compiler.
  • Native and foreign machine architecture
  • Compiling a C program
  • The native compilation
  • The cross-compilation
  • Compiling a kernel module
  • The Kernel and DTS files
  • Recompiling the kernel
  • The device tree
  • What is a device driver?
  • Char, block, and net devices
  • Modules versus built-in devices
  • The modutils
  • Writing our own device driver
  • The root filesystem (rootfs)
  • The /dev directory
  • The tmpfs
  • The procfs
  • The sysfs
  • The Network FileSystem (NFS)
  • Exporting an NFS on the host
  • Setting up the kernel to mount an NFS
  • U-Boot and the kernel command line to use a NFS
  • Developing into an NFS
  • Using an emulator
  • Executing a program
  • Entering into an ARM rootfs tree
  • Summary
  • Chapter 4: Quick Programming with Scripts and System Daemons
  • Setting up the system
  • System daemons
  • Useful and ready-to-use daemons
  • System daemons management
  • syslogd
  • syslogd in Bash
  • syslogd in C
  • syslogd in PHP
  • syslogd in Python
  • cron
  • xinetd
  • sshd
  • Apache
  • MySQL
  • MySQL in Bash
  • MySQL in C
  • MySQL in PHP
  • MySQL in Python
  • Scripting languages
  • Managing a LED in PHP
  • The LAMP solution
  • The built-in server solution
  • Managing a LED in Python
  • Managing a LED in Bash
  • Writing a custom daemon
  • A daemon in C
  • A daemon in PHP
  • A daemon in Python
  • A daemon in Bash
  • Summary
  • Chapter 5: Setting Up an Embedded OS
  • MTD versus block devices
  • What is an MTD device?
  • Managing an MTD device
  • Filesystems for flash memories
  • JFFS2 versus UBIFS
  • Building a JFFS2 filesystem
  • Building a UBIFS filesystem
  • OpenWrt
  • Using the default configuration
  • Adding a (quasi) LAMP system
  • Adding a custom package
  • Yocto
  • Using the default recipe
  • Adding the graphic support
  • Adding a custom recipe
  • Summary
  • Chapter 6: General Purposes Input Output signals - GPIO.
  • What is a GPIO line?
  • GPIOs lines on the BeagleBone Black
  • GPIOs on the SAMA5D3 Xplained
  • GPIOs on the Wandboard
  • GPIOs in Linux
  • Getting access to GPIOs
  • Bash
  • C
  • Using GPIOs with scripting languages
  • PHP
  • Python
  • Managing GPIO into the kernel
  • An input device using GPIOs
  • LEDs and triggers
  • Summary
  • Chapter 7: Serial Ports and TTY Devices - TTY
  • What are TTY, serial, and UART lines?
  • The electrical lines
  • TTYs on the BeagleBone Black
  • TTYs on the SAMA5D3 Xplained
  • TTYs on the Wandboard
  • Implementations of serial ports
  • The serial ports in Linux
  • The communication parameters
  • Getting access to TTYs
  • Distance sensor
  • RFID LF reader
  • Managing TTY in the kernel with SLIP
  • Summary
  • Chapter 8: Universal Serial Bus - USB
  • What is the universal serial bus?
  • The electrical lines
  • USB ports on the BeagleBone Black
  • USB ports on the SAMA5D3 Xplained
  • USB ports on the Wandboard
  • The USB bus in Linux
  • Acting as a host
  • Acting as a device
  • The Multi gadget
  • The configfs gadget
  • The USB tools
  • The raw USB bus
  • Accessing as a host
  • Summary
  • Chapter 9: Inter-Integrated Circuits - I2C
  • What is the Inter-Integrated Circuit bus?
  • The electrical lines
  • I2C ports on the SAMA5D3 Xplained
  • I2C ports on the Wandboard
  • The I2C bus in Linux
  • The I2C tools
  • Getting access to I2C devices
  • EEPROM, ADC and IO Expander
  • EEPROM
  • ADC
  • IO Expander
  • The temperature/humidity and pressure sensors
  • Serial port
  • The Raw I2C Bus
  • Writing data in C
  • Reading data in Python
  • Summary
  • Chapter 10: Serial Peripheral Interface - SPI
  • What is the Serial Peripheral Interface bus?
  • The electrical lines
  • SPI ports on the BeagleBone Black
  • SPI ports on the SAMA5D3 Xplained
  • SPI ports on the Wandboard
  • The SPI bus in Linux
  • The SPI tools.
  • Getting access to SPI devices
  • LCD display
  • Serial port
  • The raw SPI bus
  • Exchanging data in C
  • Exchanging data in Python
  • Summary
  • Chapter 11: 1-Wire - W1
  • What is the 1-Wire Bus?
  • The electrical lines
  • 1-Wire ports on the BeagleBone Black
  • 1-Wire ports on the SAMA5D3 Xplained
  • 1-Wire ports on the Wandboard
  • The 1-Wire bus in Linux
  • Getting access to 1-Wire devices
  • Using the GPIO interface
  • Using an external controller
  • Summary
  • Chapter 12: Ethernet Network Device - ETH
  • What is an Ethernet network device?
  • Electrical lines
  • Ethernet port on the BeagleBone Black
  • Ethernet ports on the SAMA5D3 Xplained
  • Ethernet port on the Wandboard
  • The Ethernet devices in Linux
  • The net tools
  • Communicating with a remote device
  • A simple TCP client/server application
  • Using ready-to-use networking tools
  • The raw Ethernet bus
  • Simple Ethernet bridging
  • Summary
  • Chapter 13: Wireless Network Device - WLAN
  • What is a wireless network device?
  • The electrical lines
  • WLAN device on the BeagleBone Black
  • WLAN device on the SAMA5D3 Xplained
  • WLAN device on the Wandboard
  • WLAN devices in Linux
  • Pluggable external WLAN devices
  • The Wi-Fi operation modes
  • The wireless tools
  • The WPA supplicant
  • The Hostapd daemon
  • Summary
  • Chapter 14: Controller Area Network - CAN
  • What is the CAN bus?
  • The electrical lines
  • CAN ports on the BeagleBone Black
  • CAN ports on the SAMA5D3 Xplained
  • CAN ports on the Wandboard
  • The CAN bus in Linux
  • The can-utils package
  • The raw CAN bus
  • Exchanging data via the CAN bus
  • Using the on-board controller
  • Using an external controller
  • Summary
  • Chapter 15: Sound Devices - SND
  • What is a sound device?
  • The electrical lines
  • Sound on the BeagleBone Black
  • Sound on the SAMA5D3 Xplained
  • Sound on the Wandboard
  • Sound in Linux.
  • The audio tools
  • The ALSA utils
  • Madplay
  • Mplayer
  • Sox
  • The USB audio device class
  • Managing sound devices
  • Adding an audio codec
  • A simple oscilloscope
  • Summary
  • Chapter 16: Video devices - V4L
  • What is a video device?
  • The electrical lines
  • Video on the BeagleBone Black
  • Video on the SAMA5D3 Xplained
  • Video on the Wandboard
  • Video in Linux
  • The video tools
  • The USB video class device
  • Managing video devices
  • Streaming video over the Web
  • Capturing motion
  • Summary
  • Chapter 17: Analog-to-Digital Converters - ADC
  • What is an analog-to-digital converter device?
  • The electrical lines
  • ADCs on the BeagleBone Black
  • ADCs on the SAMA5D3 Xplained
  • ADCs on the Wandboard
  • ADCs in Linux
  • Detecting a gas
  • Summary
  • Chapter 18: Pulse-Width Modulation - PWM
  • What is a PWM device?
  • The electrical lines
  • PWMs on the BeagleBone Black
  • PWMs on the SAMA5D3 Xplained
  • PWMs on the Wandboard
  • PWM devices in Linux
  • Managing a servo motor
  • Summary
  • Chapter 19: Miscellaneous Devices
  • Digital sensors
  • Water sensor
  • Infrared sensor
  • Analog sensors
  • Moisture sensor
  • Pressure sensor
  • Light sensor
  • GSM/GPRS modem
  • Smart card reader
  • RFID reader
  • Z-Wave
  • Z-Wave controllers
  • The Z-Wave wall plug sensor
  • The Z-Wave multi sensor
  • Summary
  • Index.