2 options
GNU/Linux rapid embedded programming : your one-stop solution to embedded programming on GNU/Linux / Rodolfo Giometti.
- Format:
- Book
- Author/Creator:
- Giometti, Rodolfo, author.
- Language:
- English
- Subjects (All):
- Linux.
- Operating systems (Computers).
- Physical Description:
- 1 online resource (502 pages) : illustrations
- Edition:
- 1st edition
- Place of Publication:
- Birmingham, England ; Mumbai, [India] : Packt, 2017.
- System Details:
- Mode of access: World Wide Web.
- text file
- Biography/History:
- Giometti Rodolfo: Rodolfo Giometti is an engineer, IT specialist, GNU/Linux expert and software libre evangelist. He is the author of the books BeagleBone Essentials, BeagleBone Home Automation Blueprints and GNU/Linux Rapid Embedded Programming by Packt Publishing and maintainer of the LinuxPPS projects. He still actively contributes to the Linux source code with several patches and new device drivers for industrial applications devices. During his 20+ years of experience, he has worked on the x86, ARM, MIPS, and PowerPC-based platforms. Now, he is the co-chief at HCE Engineering S. r. l. , where he designs new hardware and software systems for the quick prototyping in industry environment, control automation, and remote monitoring.
- Summary:
- 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 applications quickly and effectively, manage an external micro-controller, and use it as co-processor for real-time tasks Who This Book Is For This book targets Embedded System developers and GNU/Linux programmers who would like to program Embedded Systems and perform Embedded development. The book focuses on quick and efficient prototype building. Some experience with hardware and Embedded Systems is assumed, as is having done some previous work on GNU/Linux systems. Knowledge of scripting on GNU/Linux is expected as well. 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 In Detail Embedded computers have become very complex in the last few years and developers need to be able to easily manage embedded computer projects by focusing on problem solving; they should not have to waste time finding supported peripherals or learning how to manage them. This book shows you how to interact with external environments through specific peripherals used in the industry. It focuses on the latest Linux kernel release 4 and Debian/Ubuntu distributions (with embedded distributions such as OpenWRT and Yocto). This book presents popular and user-friendly boards in the industry – such as Beaglebone Black, Atmel Xplained, Wandboard, and system-on-chip manufacturers – and lets you explore corresponding projects that make use of these boards. You will first program the embedded platforms using the C, Bash, and Python/PHP languages in order to get access to the external peripherals. You will gain ...
- Contents:
- 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
- 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
- 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
- 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
- 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
- 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
- Chapter 8: Universal Serial Bus - USB
- What is the universal serial bus?
- 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
- Chapter 9: Inter-Integrated Circuits - I2C
- What is the Inter-Integrated Circuit bus?
- 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
- Chapter 10: Serial Peripheral Interface - SPI
- What is the Serial Peripheral Interface bus?
- 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
- The raw SPI bus
- Exchanging data in C
- Exchanging data in Python
- Chapter 11: 1-Wire - W1
- What is the 1-Wire Bus?
- 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
- 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
- Chapter 13: Wireless Network Device - WLAN
- What is a wireless network device?
- 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
- Chapter 14: Controller Area Network - CAN
- What is the CAN bus?
- 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
- Chapter 15: Sound Devices - SND
- What is a sound device?
- 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
- Chapter 16: Video devices - V4L
- What is a video device?
- 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
- Chapter 17: Analog-to-Digital Converters - ADC
- What is an analog-to-digital converter device?
- ADCs on the BeagleBone Black
- ADCs on the SAMA5D3 Xplained
- ADCs on the Wandboard
- ADCs in Linux
- Detecting a gas
- Chapter 18: Pulse-Width Modulation - PWM
- What is a PWM device?
- PWMs on the BeagleBone Black
- PWMs on the SAMA5D3 Xplained
- PWMs on the Wandboard
- PWM devices in Linux
- Managing a servo motor
- 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
- Index.
- Notes:
- Includes index.
- Includes bibliographical references and index.
- Description based on online resource; title from PDF title page (ebrary, viewed April 18, 2017).
- ISBN:
- 9781786463289
- 1786463288
- OCLC:
- 983204777
The Penn Libraries is committed to describing library materials using current, accurate, and responsible language. If you discover outdated or inaccurate language, please fill out this feedback form to report it and suggest alternative language.