Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Save more on your purchases! discount-offer-chevron-icon
Savings automatically calculated. No voucher code required.
Arrow left icon
All Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletter Hub
Free Learning
Arrow right icon
timer SALE ENDS IN
0 Days
:
00 Hours
:
00 Minutes
:
00 Seconds
Arrow up icon
GO TO TOP
Embedded Systems Architecture

You're reading from   Embedded Systems Architecture Explore architectural concepts, pragmatic design patterns, and best practices to produce robust systems

Arrow left icon
Product type Paperback
Published in May 2018
Publisher Packt
ISBN-13 9781788832502
Length 324 pages
Edition 1st Edition
Languages
Arrow right icon
Author (1):
Arrow left icon
Daniele Lacamera Daniele Lacamera
Author Profile Icon Daniele Lacamera
Daniele Lacamera
Arrow right icon
View More author details
Toc

Table of Contents (18) Chapters Close

Title Page
Copyright and Credits
Packt Upsell
Contributors
Preface
1. Embedded Systems – A Pragmatic Approach 2. Work Environment and Workflow Optimization FREE CHAPTER 3. Architectural Patterns 4. The Boot-Up Procedure 5. Memory Management 6. General-Purpose Peripherals 7. Local Bus Interfaces 8. Low-Power Optimizations 9. Distributed Systems and IoT Architecture 10. Parallel Tasks and Scheduling 11. Embedded Operating Systems 1. Other Books You May Enjoy Index

Index

A

  • activities
    • tracking / Tracking activities
  • Ad-hoc, On-demand, Distance Vector (AODV) / Mesh networks and dynamic routing
  • address frame / Protocol description
  • Advanced Encryption Standard (AES) / The reference platform
  • analog to digital signal converter (ADC) / Analog input
  • API
    • design considerations / API and documentation
  • application binary interface (ABI) / Allocating the stack
  • application code / Application code
  • application protocols
    • about / Application protocols
    • message protocols / Message protocols
    • Representational State Transfer / REST architectural pattern
    • distributed systems / Distributed systems – single points of failure
  • appropriate network interfaces
    • selecting / Selecting the appropriate network interfaces
  • ARM reference design / ARM reference design
  • asynchronous UART-based serial communication / Asynchronous UART-based serial communication

B

  • Better Approach To Mobile Ad-hoc Networking (B.A.T.M.A.N.) / Mesh networks and dynamic routing
  • Block Started by Symbol (BSS) / Linker
  • Bluetooth / Bluetooth
  • boot code
    • building / Building and running the boot code
    • executing / Building and running the boot code
    • makefile / The makefile
    • application, executing / Running the application
  • bootloader / Bootloader
  • boot stages
    • about / Multiple boot stages
    • bootloader / Bootloader
    • image, building / Building the image
    • multi-stage system, debugging / Debugging a multi-stage system
    • shared libraries / Shared libraries
  • build automation
    • with Make / Build automation

C

  • ChibiOS / ChibiOS
  • clock management / Clock management
  • clock synchronization / Clock and symbol synchronization
  • code region / The code region
  • code reviews / Code reviews
  • concurrency / Concurrency and timeslices
  • Configurable Fault Status Register (CFSR) / Fault handlers
  • configuration management
    • about / Configuration management
    • revision control / Revision control
    • activities, tracking / Tracking activities
    • code reviews / Code reviews
    • continuous integration / Continuous integration
  • configuration registers, MPU
    • MPU Type Register / MPU configuration registers
    • MPU Control Register / MPU configuration registers
    • MPU Region Number Register / MPU configuration registers
    • MPU Region Base Address Register / MPU configuration registers
    • MPU Region Attribute and Size Register / MPU configuration registers
  • connected systems / Connected systems
  • context switch / Task management, Context switch
  • Contiki OS / Contiki OS
  • continuous integration / Continuous integration
  • Controller Area Network (CAN) / Hardware architecture
  • cooperative scheduler / Cooperative scheduler
  • Core-Coupled Memory (CCM) / The RAM regions
  • Cortex-M instruction set, barriers
    • data memory barrier (DMB) / Order of memory transactions
    • data synchronization barrier (DSB) / Order of memory transactions
    • instruction synchronization barrier (ISB) / Order of memory transactions
  • Cortex-M microprocessor
    • characteristic / The Cortex-M microprocessor
    • about / The Cortex-M microprocessor
  • Cortex Microcontroller Software Interface Standard (CMSIS) / Hardware abstraction
  • cross-compilation / C compiler
  • cross-compiler / The cross-compiler

D

  • DASH7 / Low-power Wide Area Networks (LPWANs)
  • debugger / Debugger
  • deep-sleep modes
    • configuration / Deep-sleep configuration
    • regulator voltage scaling output selection (VOS) / Deep-sleep configuration
    • flash power down in deep-sleep (FPDS) / Deep-sleep configuration
    • power down in deep sleep (PDDS) / Deep-sleep configuration
    • low-power deep sleep (LPDS) / Deep-sleep configuration
    • enable wake-up pin (EWUP) / Deep-sleep configuration
  • Destination Sequence Distance Vector (DSDV) / Mesh networks and dynamic routing
  • development boards / Development boards
  • Device Firmware Upgrade (DFU) / Interacting with the target
  • Direct Memory Access (DMA) / Programming the peripherals
  • distributed embedded systems
    • challenges / Connected systems
  • documentation / API and documentation
  • Doxygen / API and documentation
  • dynamic routing / Mesh networks and dynamic routing

E

  • earliest-deadline-first scheduling / Real-time scheduling
  • embedded project
    • life cycle / The life cycle of an embedded project
  • embedded systems
    • about / Domain definition
    • embedded Linux systems / Embedded Linux systems
    • low-end 8-bit microcontrollers / Low-end 8-bit microcontrollers
    • hardware architecture / Hardware architecture
    • challenges / Understanding the challenge
    • multi-threading / Multithreading
    • future / The future of safe embedded systems
  • embedded workflow / Embedded workflow
  • emulators / Emulators
  • end of conversion (EOC) / Analog input
  • Ethernet / Ethernet
  • event mask register (EMR) / Interrupt-based input
  • Executable and Linkable Format (ELF)
    • about / Linker
    • .text / Linker
    • .rodata / Linker
    • .data / Linker
    • .bss / Linker
  • execute in place (XIP) / Flash memory
  • execution stack
    • about / The execution stack
    • placement / Stack placement
    • overflows / Stack overflows
    • painting / Stack painting

F

  • falling trigger select register (FTSR) / Interrupt-based input
  • flash memory / Flash memory
  • FreeRTOS / FreeRTOS
  • Frosted / Frosted
  • functional tests / Functional tests

G

  • GCC toolchain
    • about / The GCC toolchain
    • cross-compiler / The cross-compiler
    • compiler, compiling / Compiling the compiler
    • executable, linking / Linking the executable
    • binary format conversion / Binary format conversion
  • general-purpose I/O
    • about / General-purpose I/O
    • pin configuration / Pin configuration
    • digital output / Digital output
    • PWM / PWM
    • digital input / Digital input
    • interrupt-based input / Interrupt-based input
    • analog input / Analog input
  • Generic Attribute Profile (GATT) / Bluetooth
  • generic timers / Generic timers
  • Gerrit / Code reviews
  • GitLab / Tracking activities
  • GNU Compiler Collection (GCC) / C compiler
  • GNU Debugger (GDB)
    • about / Debugger
    • session / The GDB session
    • commands / The GDB session
  • GNU GCC manual
    • reference / The cross-compiler
  • GNU Make
    • URL / Build automation

H

  • hardware abstraction / Hardware abstraction
  • hardware design / Hardware design
  • hardware tools / Hardware tools
  • heap
    • management / Heap management
    • custom implementation / Custom implementation
    • newlib, using / Using newlib
    • limiting / Limiting the heap
    • multiple memory pools / Multiple memory pools
    • usage errors / Common heap usage errors

I

  • I2C bus
    • about / I2C bus
    • URL / I2C bus
    • protocol / Protocol description
    • clock, stretching / Clock stretching
    • multi-master, detecting / Multi-master
    • controller, programming / Programming the controller
    • interrupt, handling / Interrupt handling
  • In-Application Programming (IAP) / Flash memory
  • input data register (IDR) / Digital input
  • instruction set, Cortex-M3/M4
    • Load Register Exclusive (LDREX) / Semaphore
    • Store Register Exclusive (STREX) / Semaphore
  • inter-integrated circuit (I2C) / I2C
  • interfaces
    • about / Interfaces and peripherals
    • asynchronous UART-based serial communication / Asynchronous UART-based serial communication
    • Serial Peripheral Interface (SPI) / SPI
    • inter-integrated circuit (I2C) / I2C
    • Universal Serial Bus (USB) / USB
  • International Electrotechnical Commission (IEC) / LR-WPAN industrial link-layer extensions
  • International Society of Automation (ISA) / LR-WPAN industrial link-layer extensions
  • Internet of Things (IoT) / Connected systems
  • Internet Protocol (IP) / Connected systems, The Internet Protocols
  • interrupt controller
    • about / The interrupt controller
    • peripherals interrupt, configuration / Peripherals interrupt configuration
  • interrupt mask register (IMR) / Interrupt-based input
  • interrupt service routines (ISR) / The interrupt vector table
  • interrupt vector table (IVT)
    • about / The interrupt vector table, The code region
    • startup code / Startup code
    • reset handler / Reset handler
    • stack, allocating / Allocating the stack
    • fault handlers / Fault handlers
  • Issue tracking systems (ITSs) / Configuration management

J

  • Jenkins / Continuous integration

L

  • 6LoWPAN / 6LoWPAN
  • Lesser General Public License (LGPL) / Riot OS
  • libopencm3 / Hardware abstraction
  • life cycle, embedded project
    • about / The life cycle of an embedded project
    • project steps, defining / Defining project steps
    • prototyping / Prototyping
    • refactoring / Refactoring
    • API / API and documentation
    • documentation / API and documentation
  • lightweight IP (lwIP) / TCP/IP implementations, ChibiOS
  • linker / Linker
  • Load Memory Address (LMA) / Memory layout
  • LoRa/LoRaWAN / Low-power Wide Area Networks (LPWANs)
  • low-end 8-bit microcontrollers / Low-end 8-bit microcontrollers
  • low-power embedded applications
    • designing / Designing low-power embedded applications
    • busy loops, replacing with sleep mode / Replacing busy loops with sleep mode
    • deep sleep, during longer inactivity periods / Deep sleep during longer inactivity periods
    • clock speed, selecting / Choosing the clock speed
    • power state, transitions / Power state transitions
  • low-power IoT systems
    • about / Low-power IoT systems
    • Contiki OS / Contiki OS, Riot OS
    • Riot OS / Riot OS
  • low-power operating modes
    • about / Low-power operating modes
    • normal operation mode / Low-power operating modes
    • sleep mode / Low-power operating modes
    • stop mode / Low-power operating modes
    • standby mode / Low-power operating modes
    • wait for interrupt (WFI) / Low-power operating modes
    • wait for event (WFE) / Low-power operating modes
  • Low-power Wide Area Networks (LPWANs) / Low-power Wide Area Networks (LPWANs)
  • Low-Rate Wireless Personal Area Networks (LR-WPAN)
    • about / Low-Rate Wireless Personal Area Networks (LR-WPAN)
    • industrial link-layer extensions / LR-WPAN industrial link-layer extensions
  • Low-Speed External (LSE) oscillator / Standby mode
  • Low-Speed Internal (LSI) oscillator / Standby mode

M

  • Make
    • about / Build automation
    • used, for build automation / Build automation
  • makefile / The makefile
  • Media Access Control (MAC) / Network interfaces, Media Access Control
  • memory layout / Memory layout
  • memory management unit (MMU) / Embedded Linux systems
  • memory mapping
    • about / Memory mapping
    • memory model / Memory model and address space
    • address space / Memory model and address space
    • code region / The code region
    • RAM region / The RAM regions
    • peripheral-access region / Peripheral-access regions
    • system region / The system region
    • memory transactions, order / Order of memory transactions
  • memory protection unit (MPU)
    • about / The Cortex-M microprocessor, The memory protection unit
    • configuration registers / MPU configuration registers
    • programming / Programming the MPU
  • memory segmentation / Memory segmentation
  • mesh networks / Mesh networks and dynamic routing
  • Message-Queuing Telemetry Transport (MQTT) / Message protocols
  • microcontroller unit (MCU) / Hardware architecture
  • middleware / Middleware
  • mobile ad-hoc networks / Mesh networks and dynamic routing
  • mobile networks / Mobile networks
  • Most Significant Bit (MSB) / Protocol description
  • move special from register (msr) / Bootloader
  • multi-threading / Multithreading
  • multiple memory pools / Multiple memory pools
  • mutex / Mutex
  • mutual exclusion / Mutex

N

  • near-field magnetic induction (NFMI) / Selecting the appropriate network interfaces
  • Nested Vector Interrupt Controller (NVIC) / The Cortex-M microprocessor, The interrupt controller
  • network device drivers / Network device drivers
  • network interfaces
    • about / Network interfaces
    • Media Access Control (MAC) / Media Access Control
    • Ethernet / Ethernet
    • Wi-Fi / Wi-Fi
    • Low-Rate Wireless Personal Area Networks (LR-WPAN) / Low-Rate Wireless Personal Area Networks (LR-WPAN)
    • 6LoWPAN / 6LoWPAN
    • Bluetooth / Bluetooth
    • mobile networks / Mobile networks
    • Low-power Wide Area Networks (LPWANs) / Low-power Wide Area Networks (LPWANs)
    • LoRa/LoRaWAN / Low-power Wide Area Networks (LPWANs)
    • Sigfox / Low-power Wide Area Networks (LPWANs)
    • Weightless / Low-power Wide Area Networks (LPWANs)
    • DASH7 / Low-power Wide Area Networks (LPWANs)
  • newlib
    • using / Using newlib
    • printf function, using / Newlib printf
  • NuttX / NuttX

O

  • off-target
    • testing / Testing off-target
  • on-the-go (OTG) mode / USB
  • Open On-Chip Debugger (OpenOCD)
    • about / Interacting with the target
    • configuring / Interacting with the target
  • Optimized Link-State Routing (OLSR) / Mesh networks and dynamic routing

P

  • pending interrupt register (PR) / Interrupt-based input
  • peripheral-access region / Peripheral-access regions
  • peripherals / Interfaces and peripherals
  • physical layer transceiver (PHY) / Network interfaces
  • POSIX-compliant systems
    • about / POSIX-compliant systems
    • NuttX / NuttX
    • Frosted / Frosted
  • power measurement
    • about / Measuring power
    • development boards / Development boards
  • preemption / Task management
  • priority inheritance / Priority inversion
  • priority inversion / Priority inversion
  • privilege levels / Privilege levels
  • protocols, mesh networks
    • proactive dynamic-routing protocols / Mesh networks and dynamic routing
    • reactive dynamic-routing protocols / Mesh networks and dynamic routing
  • prototyping / Prototyping
  • Pulse Width Modulation (PWM) / PWM

R

  • raising trigger select register (RTSR) / Interrupt-based input
  • RAM / RAM
  • RAM region / The RAM regions
  • real-time application platforms
    • about / Real-time application platforms
    • FreeRTOS / FreeRTOS
    • ChibiOS / ChibiOS
  • real-time clock (RTC) / Clock management
  • real-time systems / Embedded Linux systems
  • reduced instruction set computer (RISC) / The reference platform
  • refactoring / The life cycle of an embedded project, Refactoring
  • reference platform
    • about / The reference platform
    • characteristics / The reference platform
    • selecting / The reference platform
    • ARM reference design / ARM reference design
    • Cortex-M microprocessor / The Cortex-M microprocessor
  • Reload Value Register (RVR) / Enabling the SysTick
  • Representational State Transfer (REST)
    • architectural pattern / REST architectural pattern
    • about / REST architectural pattern
  • Reset and Clock Control (RCC) / Clock configuration
  • responsibilities, Transport Layer Security
    • confidentiality / Transport Layer Security
    • authentication / Transport Layer Security
    • integrity / Transport Layer Security
  • revision control / Revision control
  • Riot OS / Riot OS

S

  • scheduler implementation
    • about / Scheduler implementation
    • supervisor calls / Supervisor calls
    • cooperative scheduler / Cooperative scheduler
    • concurrency / Concurrency and timeslices
    • timeslices / Concurrency and timeslices
    • tasks, blocking / Blocking tasks
    • resources, waiting for / Waiting for resources
    • real-time scheduling / Real-time scheduling
  • Secure Socket Layer (SSL) / Connected systems
  • semaphore / Semaphore
  • separate stack-pointer CPU register, Cortex-M
    • Master Stack Pointer (MSP) / Privilege levels
    • Process1 Stack Poitner (PSP) / Privilege levels
  • serial clock (SCL) / I2C
  • serial communication
    • about / Introducing serial communication
    • symbol synchronization / Clock and symbol synchronization
    • clock synchronization / Clock and symbol synchronization
    • bus, wiring / Bus wiring
    • peripherals, programming / Programming the peripherals
  • serial data (SDA) / I2C
  • Serial Peripheral Interface (SPI)
    • about / SPI, SPI bus
    • protocol / Protocol description
    • transceiver, programming / Programming the transceiver
    • transactions / SPI transactions
    • interrupt-based SPI transfers / Interrupt-based SPI transfers
  • serial ports / Asynchronous UART-based serial communication
  • shunt resistor / Measuring power
  • Sigfox / Low-power Wide Area Networks (LPWANs)
  • slave select (SS) signal / SPI
  • Slave Select Output Enable (SSOE) flag / Programming the transceiver
  • socket communication
    • about / Socket communication
    • securing / Securing socket communication
  • software interrupt enable register (SWIER) / Interrupt-based input
  • source code, organization
    • about / Source code organization
    • hardware abstraction / Hardware abstraction
    • middleware / Middleware
    • application code / Application code
  • ST-Link / Interacting with the target
  • stack frame / Context switch
  • START condition / Protocol description
  • static priority-driven preemptive scheduling / Real-time scheduling
  • STOP condition / Protocol description
  • supervisor calls / Supervisor calls
  • symbol synchronization / Clock and symbol synchronization
  • synchronization
    • about / Synchronization
    • semaphore / Semaphore
    • mutex / Mutex
    • priority inversion / Priority inversion
  • synchronous communication / The Cortex-M microprocessor
  • System-on-Chip (SoC) / Hardware architecture
  • system calls / System calls
  • system configuration
    • about / System configuration
    • hardware design / Hardware design
    • clock management / Clock management
    • voltage control / Voltage control
    • low-power operating modes / Low-power operating modes
    • deep-sleep modes, configuration / Deep-sleep configuration
    • deep-sleep configuration / Deep-sleep configuration
    • stop mode / Stop mode
    • standby mode / Standby mode
    • wake-up intervals / Wake-up intervals
  • System Control Block (SCB) / The Cortex-M microprocessor
  • System Control Register (SCR) / Low-power operating modes
  • System Control Register (SCR), one-bit flag
    • SLEEPONEXIT (bit 1) / Low-power operating modes
    • SLEEPDEEP (bit 2) / Low-power operating modes
    • SEVONPEND (bit 4) / Low-power operating modes
  • system region / The system region
  • system resource separation
    • about / System resource separation
    • privilege levels / Privilege levels
    • memory segmentation / Memory segmentation
    • system calls / System calls
  • system time
    • about / System time
    • flash wait states, adjusting / Adjusting the flash wait states
    • clock configuration / Clock configuration
    • clock distribution / Clock distribution
    • SysTick, enabling / Enabling the SysTick

T

  • target interactions
    • about / Interacting with the target
    • GDB session / The GDB session
  • task block / The task block
  • task management / Task management
  • tasks
    • creating / Creating tasks
  • TCP/IP stack
    • about / The Internet Protocols
    • implementation / TCP/IP implementations
    • network device drivers / Network device drivers
    • executing / Running the TCP/IP stack
    • socket communication / Socket communication
    • mesh networks / Mesh networks and dynamic routing
    • dynamic routing / Mesh networks and dynamic routing
  • test-driven development (TDD) / Functional tests
  • timeslices / Concurrency and timeslices
  • Tock / Process isolation – Tock
  • toolchain / Workflow overview
  • Transport Layer Security / Transport Layer Security
  • Transport Layer Security (TLS) / Connected systems, Middleware, Transport Layer Security

U

  • UART-based asynchronous serial bus
    • about / UART-based asynchronous serial bus
    • protocol / Protocol description
    • controller, programming / Programming the controller
    • Hello world! program / Hello world!
    • newlib printf function, using / Newlib printf
    • data, receiving / Receiving data
    • interrupt-based input/output / Interrupt-based input/output
  • unicore-mx / Hardware abstraction
  • Universal Asynchronous Receiver-Transmitter (UART) / Asynchronous UART-based serial communication
  • Universal Serial Bus (USB) / USB

V

  • validation
    • about / Validation
    • functional tests / Functional tests
    • hardware tools / Hardware tools
    • off-target, testing / Testing off-target
    • emulators / Emulators
  • Vector Table Offset Register (VTOR) / Bootloader
  • version control system (VCS)
    • about / Revision control
    • master / Revision control
    • trunk / Revision control
    • commit / Revision control
    • HEAD / Revision control
    • branch / Revision control
  • Virtual Memory Address (VMA) / Memory layout
  • voltage control / Voltage control

W

  • wait for interrupt (WFI) / Enabling the SysTick
  • wake-up flag (WUF) / Deep-sleep configuration
  • wake-up intervals / Wake-up intervals
  • watchdog / The watchdog
  • Weightless / Low-power Wide Area Networks (LPWANs)
  • Wi-Fi / Wi-Fi
  • wolfMQTT / Message protocols
  • workflow
    • overview / Workflow overview
    • C compiler / C compiler
    • linker / Linker
    • build automation / Build automation
    • debugger / Debugger
    • embedded workflow / Embedded workflow
lock icon The rest of the chapter is locked
arrow left Previous Section
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $15.99/month. Cancel anytime
Visually different images