Index
A
- administration tool / Administration tool
- Advanced Audio Distribution Profile (A2DP) / Bluetooth audio sources and sinks
- Advanced Software Framework (ASF) / Embedded IDEs and frameworks
- air-conditioning service
- controlling / Air-conditioning service
- alternating current (AC) / Keeping plants happy
- application specific integration circuit (ASIC) / Intel MCS-51, Going extremely parallel
- arithmetic logic unit (ALU) / The many faces of embedded systems
- ARM Cortex-M / ARM Cortex-M
- ARM MCU
- development / ARM MCU development
- AVR
- about / AVR
- development with Nodate / AVR development with Nodate
B
- basic media player
- example / Example – basic media player
- Bluetooth audio sources / Bluetooth audio sources and sinks
- BlueZ Bluetooth / Bluetooth audio sources and sinks
- bootloader / Boot loader
- Building Management and Control (BMaC)
- about / Plants, rooms, and beyond
- reference / Plants, rooms, and beyond
- developmental history / Developmental history
- functional modules / Functional modules
- firmware, source code / Firmware source
- enhancements / Future developments
C
- C++
- evolution / C++ relative to C
- as embedded language / C++ as an embedded language
- features / C++ language features
- reference / C++ language features
- namespaces / Namespaces
- strongly typed / Strongly typed
- type conversion / Type conversions
- classes / Classes
- inheritance / Inheritance
- virtual base classes / Virtual base classes
- function inlining / Function inlining
- runtime type information (RTTI) / Runtime type information
- exception handling / Exception handling
- templates / Templates
- Callgrind / Testing with Valgrind
- Cascading Style Sheet (CSS) / Custom GUIs with stylesheets
- chip-select (CS) / The server
- club room monitoring
- example / Example – club room monitoring
- hardware / Hardware
- relays, using / Relays
- debounce board, using / Debounce
- debounce HAT, using / Debounce HAT
- power requirements / Power
- implementation / Implementation
- Listener class, declaring / Listener
- club header / Club
- HTTP request handler / HTTP request handler
- status handler / Status handler
- data handler / Data handler
- service, configuration / Service configuration
- permissions, setting / Permissions
- final results / Final results
- club status service
- integration testing / Integration test for club status service
- code maintenance / Maintainability
- command line-based (CLI) application
- developing / The power of the right framework, Qt for command-line use
- commands, voice-driven infotainment system
- play Bluetooth / Usage scenarios
- stop Bluetooth / Usage scenarios
- play local / Usage scenarios
- stop local / Usage scenarios
- stop remote / Usage scenarios
- play remote / Usage scenarios
- record message / Usage scenarios
- play message / Usage scenarios
- Commodore 64 (C64) / C++ as an embedded language
- complementary MOS (CMOS) / Intel MCS-51
- Complex Programmable Logic Devices (CPLDs) / Going extremely parallel
- concurrency / Concurrency
- cross-compilers
- using / Using cross-compilers
- cross-compiling / Cross-compiling for SBCs
- custom drivers / Custom drivers
- custom GUIs
- with stylesheets / Custom GUIs with stylesheets
- custom peripherals
- about / Custom peripherals and drivers
- RTC, adding / Adding an RTC
D
- 3D designer / 3D designer
- debugging / Local and on-chip debugging
- design
- planning / Planning out a design
- digital signal processors (DSPs) / Going extremely parallel
- digital storage oscilloscope (DSO) / Going extremely parallel
- Dr. Memory
- reference / Testing with Valgrind
- DRD / Testing with Valgrind
- drivers
- about / Custom peripherals and drivers
- custom drivers / Custom drivers
E
- Electrically Erasable Programmable Read-Only Memory (EEPROM) / Microcontrollers
- embedded frameworks / Embedded IDEs and frameworks
- embedded IDEs / Embedded IDEs and frameworks
- Embedded Linux / Embedded Qt
- Embedded Linux, plugins
- EGLFS / Embedded Qt
- LinuxFB / Embedded Qt
- DirectFB / Embedded Qt
- Wayland / Embedded Qt
- embedded operating systems / Embedded operating systems
- embedded Qt / Embedded Qt
- embedded systems
- about / The many faces of embedded systems, Embedded Qt
- microcontroller (MCU) / Microcontrollers
- ESP8266
- development with Sming / ESP8266 development with Sming
- ESP8266 integration test
- example / Example – ESP8266 integration test
- server, setting up / The server
- Makefile / Makefile
- node, implementing / The node
- Makefile, for node implementation / Makefile
- project, building / Building the project
- ESP8266/ESP32 / ESP8266/ESP32
- exception handling / Exception handling
F
- Field-Programmable Gate Array (FGPA)
- architecture / FPGA architecture
- Field Programmable System Level Integrated Circuit (FPSLIC) / AVR
- firmware, Building Management and Control (BMaC)
- source code / Firmware source
- core / Core
- modules / Modules
- FleaFPGA JTAG utility
- reference / Building the project
- Fleasystems FleaFPGA Ohm board
- reference / The hardware
- framework / The power of the right framework
- Frequency Domain Reflectometry (FDR) / Keeping plants happy
- functional modules, Building Management and Control (BMaC)
- THP / Functional modules
- Jura / Functional modules
- JuraTerm / Functional modules
- motion / Functional modules
- PWM / Functional modules
- I/O / Functional modules
- switch / Functional modules
- plant / Functional modules
- function inlining / Function inlining
G
- gdbserver / Remote testing on real hardware
- graphical user interface (GUI) / The power of the right framework
- GUI-based Qt application
- creating / GUI-based Qt applications
H
- H8 (SuperH) / H8 (SuperH)
- Hard Processor System (HPS) / Hybrid FPGA/SoC chips
- hardware
- avoiding / Avoiding real hardware
- remote testing / Remote testing on real hardware
- hardware description languages (HDLs) / Hardware description languages
- heap / Stack and heap
- Helgrind / Testing with Valgrind
- High Voltage Parallel Programming (HVPP) / Memory programming and device debugging
- High Voltage Serial Programming (HVSP) / Memory programming and device debugging
- hybrid FPGA/SoC chips / Hybrid FPGA/SoC chips
- hybrid FPGA/SoC system
- project, building / Building the project
I
- in-car entertainment (ICE) systems / One box that does everything
- In-circuit Serial Programming (ISP) / Memory programming and device debugging
- in-system programmable (ISP) flash memory / Intel MCS-51
- In-Vehicle Infotainment (IVI) / One box that does everything
- InfluxDB
- used, for recording sensor readings / InfluxDB for recording sensor readings
- infotainment system
- about / One box that does everything
- GUI, adding / An example of adding a GUI to the infotainment system
- main source file / Main
- QmlInterface / QmlInterface
- QML file / QML
- inheritance / Inheritance
- input/output (I/O) / The many faces of embedded systems
- Instruction Set Architecture (ISA) / PIC
- integrated circuit (IC) / Example – CMOS IC Tester, Going extremely parallel
- integration test
- for club status service / Integration test for club status service
- mock, versus hardware / Mock versus hardware
- Intel MCS-48 / Intel MCS-48
- Intel MCS-51 / Intel MCS-51
- interrupts / Interrupts, ESP8266 IRAM_ATTR
- IRAM_ATTR / Interrupts, ESP8266 IRAM_ATTR
J
L
- last will and testament (LWT) / OtaCore
- Lattice Semiconductor Diamond IDE
- reference / Building the project
- libmosquitto dependency
- reference / Implementation
- Light-Weight IP stack (LWIP) / OtaCore
- logic cells (LCs) / FPGA architecture
- logic elements (LEs) / FPGA architecture
- long-wavelength infrared (LWIR) / Functional specification
- look-up tables (LUTs) / FPGA architecture
M
- M68k / M68k and Z80-based
- Makefile-user.mk file, settings
- COM_PORT / Makefile-user.mk
- SPI_MODE / Makefile-user.mk
- RBOOT_ENABLED / Makefile-user.mk
- RBOOT_BIG_FLASH / Makefile-user.mk
- RBOOT_TWO_ROMS / Makefile-user.mk
- SPI_SIZE / Makefile-user.mk
- SPIFF_FILES / Makefile-user.mk
- SPIFFS_SIZE / Makefile-user.mk
- WIFI_SSID / Makefile-user.mk
- WIFI_PWD / Makefile-user.mk
- MQTT_HOST / Makefile-user.mk
- ENABLE_SSL / Makefile-user.mk
- MQTT_PORT / Makefile-user.mk
- USE_MQTT_PASSWORD / Makefile-user.mk
- MQTT_USERNAME / Makefile-user.mk
- MQTT_PWD / Makefile-user.mk
- MQTT_PREFIX / Makefile-user.mk
- OTA_URL / Makefile-user.mk
- Massif / Testing with Valgrind
- Memcheck / Testing with Valgrind
- memory management
- about / Memory management
- stack / Stack and heap
- heap / Stack and heap
- interrupts / Interrupts, ESP8266 IRAM_ATTR
- IRAM_ATTR / Interrupts, ESP8266 IRAM_ATTR
- Memory Management Unit (MMU) / RTOS usage
- microcontroller (MCU)
- about / Microcontrollers, The power of the right framework
- TMS 1000 / TMS 1000
- Intel MCS-48 / Intel MCS-48
- Intel MCS-51 / Intel MCS-51
- PIC / PIC
- AVR / AVR
- Z80-based / M68k and Z80-based
- M68k / M68k and Z80-based
- ARM Cortex-M / ARM Cortex-M
- H8 (SuperH) / H8 (SuperH)
- ESP8266/ESP32 / ESP8266/ESP32
- soft cores / Others
- other options / Others
- challenges / Challenges
- external programmer / Memory programming and device debugging
- bootloader / Boot loader
- Microcontroller Development Kit (MDK) / Embedded IDEs and frameworks
- modules, Building Management and Control (BMaC)
- Mosquitto
- reference / First-time configuration
- MQTT
- reference / First-time configuration
- multi-target build system / Multi-target build system
N
- n-type metal oxide semiconductor (NMOS) / Intel MCS-51
- namespaces / Namespaces
- Near-Field Communication (NFC) / Implementation-related choices
- no-read-while-write (NRWW) / Boot loader
- Nodate
- for AVR development / AVR development with Nodate
- reference / Enter Nodate
- installing / Enter Nodate
- using / Example – CMOS IC Tester, Usage
- NymphRPC
- reference / Example – ESP8266 integration test
O
- object-oriented programming (OOP) / Classes
- on-chip debugging (OCD) / Local and on-chip debugging
- online streaming
- integrating, into voice-driven infotainment system / Online streaming
- OpenOCD
- reference / Local and on-chip debugging
- operating system (OS) / Example – ESP8266 integration test, The power of the right framework
- oscilloscope
- example / Example – basic oscilloscope
- hardware / The hardware
- VHDL code / The VHDL code
- C++ code / The C++ code
- over-the-air (OTA) / Plant module code, Command and control server
P
- parallel processing / Going extremely parallel
- passive infrared (PIR) sensors / Motion
- peripheral / Custom peripherals and drivers
- PIC / PIC
- plant module code, Wi-Fi-enabled soil humidity monitor
- about / Plant module code
- Makefile-user.mk / Makefile-user.mk
- main source file / Main
- OtaCore / OtaCore
- BaseModule class / BaseModule
- PlantModule class / PlantModule
- Index.html / Index.html
- platform-independent build systems
- PocketSphinx library
- reference / Voice-driven user interface
- POCO framework
- reference / Implementation
- printed circuit board (PCB) / The big picture for small systems
Q
- Qt framework
- about / Software requirements
- reference / Software requirements
- Qt Modeling Language (QML) / QML
- Quality of Service (QoS) / Listener, OtaCore
R
- random-access memory (RAM) / Memory management
- read-only-memory (ROM) / Memory management
- read-while-write (RWW) / Boot loader
- real-time OS (RTOS)
- about / Real-time OSes, Concurrency, The power of the right framework
- usage / RTOS usage
- remote procedure call (RPC) library / Example – ESP8266 integration test
- remote testing
- on real hardware / Remote testing on real hardware
- resource
- limitations / Resource limitations
- root-mean square (RMS) / Source code
- RTC functionality
- reference / Custom drivers
- runtime type information (RTTI) / Type conversions, Runtime type information
S
- sensor readings
- recording, with InfluxDB / InfluxDB for recording sensor readings
- Serial Peripheral Interface (SPI) / Memory programming and device debugging
- Serial Wire Debug (SWD) / Memory programming and device debugging
- Single-Board Computer (SBC) / The many faces of embedded systems, System-on-Chip/Single Board Computer
- smaller embedded system
- about / The big picture for small systems
- MCU, for laser cutter / Example – Machine controller for a laser cutter, Functional specification
- design / The design requirements, Implementation-related choices
- Sming
- for ESP8266 development / ESP8266 development with Sming
- reference / ESP8266 development with Sming
- soil humidity monitors
- need for / Keeping plants happy
- gypsum block / Keeping plants happy
- tensiometer / Keeping plants happy
- capacitance probe / Keeping plants happy
- microwave sensor / Keeping plants happy
- ThetaProbe / Keeping plants happy
- resistance probe / Keeping plants happy
- stack / Stack and heap
- standard template library (STL) / Templates, The standard template library
- strong type system / Strongly typed
- stylesheets / Custom GUIs with stylesheets
- sub-routines / C++ relative to C
- System-on-Chip (SoC)
- about / The many faces of embedded systems, ARM Cortex-M, System-on-Chip/Single Board Computer
- challenges / Challenges
T
- templates / Templates
- Time Domain Reflectometry (TDR) / Keeping plants happy
- Tiny Programming Interface (TPI) / Memory programming and device debugging
- TMS 1000
- tweak-compile-deploy-test cycle
- avoiding / Reducing wear
- type conversion / Type conversions
U
- Unified Programming and Debug Interface (UPDI) / Memory programming and device debugging
- user-defined types (UDTs) / Inheritance
V
- vacuum fluorescent displays (VFD) / TMS 1000
- Valgrind
- used, for testing / Testing with Valgrind
- reference / Testing with Valgrind
- vector graphics file (SVG) / Implementation-related choices
- very large-scale integrated (VLSI) / Hardware description languages
- VHSIC Hardware Description Language (VHDL) / Hardware description languages
- virtual base classes / Virtual base classes
- virtual functions
- reference / Virtual base classes
- voice-driven infotainment system
- hardware requisites / Hardware needed
- software requisites / Software requirements
- online streaming, integrating / Online streaming
- user interface / Voice-driven user interface
- usage scenarios / Usage scenarios
- source code / Source code
- project, building / Building the project
- extending / Extending the system
W
- Wi-Fi-enabled soil humidity monitor
- creating / Our solution
- hardware requisites / The hardware
- firmware / The firmware
- Sming, setting up / Setting up Sming
- plant module code / Plant module code
- compiling / Compiling and flashing
- flashing / Compiling and flashing
- configuration / First-time configuration
- using / Using the system
- enhancement / Taking it further
- complications / Complications
- wireless access point (WAP) / OtaCore
- WiringPi
- reference / Implementation
Y
- Yocto Project
- reference / Embedded operating systems
Z
- Z80-based / M68k and Z80-based