Material didático sobre Sistemas Embarcados ("Embedded Systems") baseados em livros de destaque
A expressão Embedded Systems tem sido traduzida para o português como "Sistemas Embarcados" ou "Sistems Embutidos". Refere-se aos circuitos eletrônicos baseados em microcontroladores, onde existe um software residente (chamado comumente de firmware) que é responsável pelo funcionamento do dispositivo. A categoria engloba uma grande quantidade de dispositivos disponíveis, tais como telefones celulares, roteadores, modems, switches, tocadores de MP3, vídeo-games e muitos outros.
A lista a seguir é de uma extensa série de publicações disponíveis gratuitamente sobre o assunto.
2008
In a four part series based on their contribution to "Multiprocessor Systems-On-Chips," edited by Wayne Wolf and Ahmed Amine Jerraya, the authors cover the basics of designing energy-aware multiprocessors -Part 1: Reducing CPU active and standby energy
Part 2: Reducing active and standby energy in memory and cache
Part 3: On-Chip communications impact on MPSoC power
Part 4: Advanced interconnects and software issues
In a three part series, based on their book "Programming with Wireless MMX Technology, " the authors describe the performance implication of a processor's pipeline architecture and code techniques for optimization - Part 1: Microarchitectural optimization philosophy
Part 2: Optimization for data processing operations
Part 3: Optimization for control-oriented operations
In a six part series based on his book "See MIPS run Linux," Dominic Sweetman gets down to basics on how to implement the MIPS 32k/64k RISC architecture:
Part 1: GNU/Linux from eight miles high
Part 2: How hardware and software work together
Part 3: What happens on a system call
Part 4: What we really want
Part 5: MIPS specific issues in the Linux kernel
Part 6: CP0 pipeline hazards, multiprocessors & caches
In a six part series, George Ellis, author of "Control Systems Design," compares and contrasts various approaches to embedded Proportional-Integral-Derivative (PID) control system design -
Part 1: Moving beyond PID
Part 2: Tuning a Proportional Controller (PC)
Part 3: Tuning a Proportional-Integral (PI) controller
Part 4: Tuning a PI+ controller
Part 5: Tuning a PID controller
Part 6: Tuning PID+ and PD controllers
In a three part series based on his book, "Designing High Speed Interconnect," Dennis Miller explores signnal integrity modeling alternatives in high frequency designs for problems not directly resolvable by SPICE and recasting them so they can be simulated.
Part 1: Unmodelable features of high performance designs
Part 2: Differential transmission lines and receivers
Part 3: Modelable features
In a six part series based on his book, John Eidson, author of "Measurement, Control and Communications using IEEE 1588," describes how the 1588 real time network synchronization protocol, originally designed for localized industrial and instrumention networks, can be used for wideband networking and telecommunications.
Part 1: The varieties of system temporal specifications
Part 2: Overview of the clock synchronization standard
Part 3: Master-slave synchronization hierarchy
Part 4: Achieving submicrosecond synchronization accuracy
Part 5: Applying 1588 to networking, wireless, cable, and telecom
Part 6: The future of IEEE 1588 and the Precision Time Protocol
Richard G. Lyons, author of "Understanding Digital Signal Processing," in an on-going series of articles based on his book, provides the details of DSP tips and tricks professionals can use to make their digital signal processing algorithms more effiecient, including:
Efficient Polynomial evaluation
Smothing impulsive noise
Interpolating a bandpass signal
Spectral peak location algorithm
Computing Fast Fourier Transform Twiddle Factors
Building a practical spectrum analyzer
ADC testing techniques and finding missing codes in ADCs
Fast multiplication of complex numbers
Reducing A/D Converter Quantization Noise
High Speed vector magnitude approximation
Frequency Translation without multiplication
2007
In a two part article, Bruce Douglass, author of "Real-time UML workshop for Embedded Systems," provides an overview of the Rapid Object-Oriented Process for Embedded Systems (ROPE) methodology and the workflows that can be used to develop robust and safe system designs -
Part 1: What is the Harmony process?
Part 2: The Systems Engineering Harmony Workflow in Detail
In a two part series, Robert Oshana, author of "DSP Software Development Techniques for Embedded and Real Time Systems," outlines the hardware software constrains involved in building an embedded media device based on a DSP/SRM multicore based System on a chip -
Part 1: The hardware building blocks
Part 2: Software architecture for a media SoC
In a three part series, Praphul Chandra, author of "Bulletproof wireless security," provides the details of the technical challenges involved in making wireless ad hoc protocols typical of wireless networks such as Zigbee and Bluetooth more secure -
Part 1: Single and multihop ad hoc networks
Part 2: Key establishment and authentication
Part 3: Bluetooth's security modes
Despite Microsoft's view that a parallel programming model for multiprocessing is 5 to 10 years away, Rishiyur Nikhil and Arvind, coauthors of Implicit Parallel Programming, believe we can't wait and delve into the options available now. In this series of eight articles, they look at the alternatives: sequential versus parallel programming, procedural versus declarative and functional, explicit versus implicit.
Part 1: How sequential languages obscure parallelism
Part 2: How to achieve parallel execution
Part 3: Explicit parallel programming with threads and locks
Part 4: Explicit parallelism: message-passing programming
Part 5: Implicit parallel programming: Declarative languages
Part 6: So, why aren't we using functional languages yet?
Part 7: pH: an implicitly parallel, declarative language
Part 8: Turning parallel Haskell (pH) into a production language
In a four part series based on material from their book Multicore Programming, authors Shameem Akhter and Jason Roberts present the case for the OpenMP Application Programming Interface as a way to add explicit parallel instructions into sequential code written for multicore and multithreaded designs:
Part 1: The challenges of threading a loop
Part 2: Managing shared and private data
Part 3: Performance-oriented programming
Part 4: OpenMP library functions
In an nine part series excerpted from Computers as Components, author Wayne Wolf presents in a clear and concise way the basics of embedded programming using the C language on microcontrollers:
Part 1: Program design and analysis
Part 2: Models of programming, assemblers and linkers
Part 3: Basic compilation techniques
Part 4: The creation of procedures
Part 5: Register allocation and scheduling
Part 6: Analysis and optimization of execution time
Part 7: Trace-driven performance analysis
Part 8: Analysis and optimization of energy, power and program size
Part 9: Program validation and testing
In a three part series excerpted from their book, Multicore Programming, Shamem Akhter and Jason Roberts deal with various aspects of using threading and parallel constructs in multicore system software development:
Part 1: Synchronization and critical sections
Part 2: Synchronization Primitives
Part 3: Condition variables, messages and flow control
In a two part series excerpted from his book, The Embedded Linux Primer author Christopher Hallinan looks at the development of real time features in this open source operating system:
Part 1: What is real time Linux?
Part 2: Using embedded Linux in real-time applications
In a three part series based on their book, Designing Embedded Networking Applications, Peter Barry and Gerard Hartnett describe useful design patterns they have discovered and how to use them effectively to write better code:
Part 1: A review of general patterns
Part 2: Useful network design patterns
Part 3: Code tuning using design patterns
In a two part series based on their book, Multicore Programming, authors Shameem Akhter and Jason Roberts describe the basics of breaking up serial tasks for use as threads in a parallel programming environment:
Part 1: Breaking up tasks
Part 2: A motivating problem - error diffusion
Excerpts from Wayne Wolf's book High-Performance Embedded Computing. This five-part series describes the differences between running software on embedded multiprocessors versus general purpose systems and the precautions that must be taken.
Part 1, The role of the operating system
Part 2, Multiprocessor Scheduling
Part 3, Event-driven multiprocessor scheduling analysis
Part 4, Services and middleware for embedded multiprocessors
Part 5, Achieving multiprocessor quality-of-service
Excerpts from Interfacing PIC Microcontrollers: Embedded Design.
Author Martin Bates reviews the basic sensor types and how they are used in MCU designs along with practical examples of how to implement them:
Part 1: An introduction to sensors and their characteristics
Part 2: A survey of sensor types
Part 3: Designing the interface between a sensor and an MCU
Excerpts from DSP Software Development Techniques for Embedded and Real-Time Systems by Robert Oshana cover every aspect of embededed development using digital signal processors (DSP): RTOS scheduling algorithms, static and dynamic
Protecting critical code and resources
Deadlocks, unsafe states and shared resource corruption
DSP RTOS kernel task prioritization and memory allocation
Multitasking on a DSP and how to schedule tasks
How to write an optimized FIR filter
Testing and Debugging DSP Systems
Real time data collection and visualization
Using breakpoints, event triggers and program traces
Emulating DSP electrical characteristics and performance
The working of JTAG boundary scan on DSPs
DSP debugging challenges and methodologies
Excerpts from Customizable Embedded Processors, edited by Paolo Ienne and Rainer LeupersIn their contribution to the book, the author from U.C. Berkeley state the case for sub-RISC processing elements as the natural multicore SoC building block:
Part 1: Concurrent architectures and concurrent applications
Part 2: Generating a multicore architecture from an instruction set
Part 3: Deploying applications with Cairn
Part 4: An IPv4 Forwarding Design Example
Excerpts from Networks on Chips: Technology and Tools by Luca Benini and Giovanni De Micheli on the challenges, hardware and software tools and methodologies being developed for next generation multicore networks on chips designs:
Part 7: Computer Aided Software Development tools
Part 6: Communications-exposed programming
Part 5: Task-level parallel programming
Part 4: Programming issues and approaches
Part 3: A review of basic NoC architectures
Part 2: SoC objectives and NoC needs
Part 1: Why on-chip networking?
Excerpts from WiFi Telephony by Praphul Chandra and David Lite where they look at the challenges facing developers of Voice over IP WLAN (VoWLAN) sytems:
Part 1: Challenges facing developers and what's needed to bring systems to market
Part 2: Dealing with inherent fairness among all nodes
Excerpts from Embedded Media Processing by David Katz and Rick Gentile of Analog Devices on how to used Direct Memory Access (DMA) effectively in media based embedded applications: :
Part 4: Advanced DMA features for moving data effectively and multimedia system examples
Part 3: Guidelines for chosing DMA modes
Part 2: The various types of data flow architectures and when to use them
Part 1: The basics of Direct Memory Access (DMA) design
2006
Excerpts from Applied Control Theory for Embedded Systems by Tim Wescott on the basics of feedback control theory as it relates to embedded systems design of robust, reliable automatic control systems:
Part 1: How to use block diagrams as a control system design language
Part 2: Analyzing control system behavior using block diagrams
Excerpts from Embedded Multitasking with small microcontrollers by Keith Curtis on how to design embedded software for resource-constrained microcontrollers that multitask effectively with out the overhead and cost of an RTOS:
Part 2: The basics of multitasking using an embedded MCU
Part 1: State machine constructs for complex control sequences
Logic 101 - Part 4 - Gray Codes
IPsec, a Tutorial -
Part I Logic 101 -
Part 3 - Reed-Muller Logic Logic 101 -
Part 2 - Positive versus negative logic
Logic 101 - Part 1 - Assertion-Level Logic*
Designing An ARM Multithreaded Video/Audio/Motion Recording System: Part 2*
Designing An ARM Multithreaded Audio/Visual/Motion Recording System: Part 1
Audio in the 21st Century
FPGA Architectures from 'A' to 'Z' : Part 2
FPGA Architectures from 'A' to 'Z' : Part 1
An IPv6 Refresher - Part I
Voice over IP (VoIP) - The basics: Part 1*
How to use UML in your SoC hardware/software design: Part 4 *
How to use UML in your SoC hardware/software design: Part 3 *
How to use UML in your SoC hardware/software design: Part 2 *
How to use UML in your SoC hardware/software design: Part 1 *
Fonte: Embedded.com



<< Início