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.
2008In 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 energyPart 2:
Reducing active and standby energy in memory and cachePart 3:
On-Chip communications impact on MPSoC powerPart 4:
Advanced interconnects and software issuesIn 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 philosophyPart 2:
Optimization for data processing operationsPart 3:
Optimization for control-oriented operationsIn 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 highPart 2:
How hardware and software work togetherPart 3:
What happens on a system callPart 4:
What we really wantPart 5:
MIPS specific issues in the Linux kernelPart 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 PIDPart 2:
Tuning a Proportional Controller (PC)Part 3:
Tuning a Proportional-Integral (PI) controllerPart 4:
Tuning a PI+ controllerPart 5:
Tuning a PID controllerPart 6:
Tuning PID+ and PD controllersIn 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 designsPart 2:
Differential transmission lines and receiversPart 3:
Modelable featuresIn 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 specificationsPart 2:
Overview of the clock synchronization standardPart 3:
Master-slave synchronization hierarchyPart 4:
Achieving submicrosecond synchronization accuracyPart 5:
Applying 1588 to networking, wireless, cable, and telecom Part 6:
The future of IEEE 1588 and the Precision Time ProtocolRichard 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 evaluationSmothing impulsive noiseInterpolating a bandpass signalSpectral peak location algorithmComputing Fast Fourier Transform Twiddle FactorsBuilding a practical spectrum analyzerADC testing techniques and finding missing codes in ADCsFast multiplication of complex numbersReducing A/D Converter Quantization NoiseHigh Speed vector magnitude approximationFrequency Translation without multiplication2007In 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 DetailIn 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 blocksPart 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 networksPart 2:
Key establishment and authenticationPart 3:
Bluetooth's security modesDespite 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 parallelismPart 2: How to achieve parallel executionPart 3: Explicit parallel programming with threads and locksPart 4: Explicit parallelism: message-passing programmingPart 5: Implicit parallel programming: Declarative languagesPart 6: So, why aren't we using functional languages yet?Part 7: pH: an implicitly parallel, declarative languagePart 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 loopPart 2:
Managing shared and private dataPart 3:
Performance-oriented programmingPart 4:
OpenMP library functionsIn 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 analysisPart 2:
Models of programming, assemblers and linkersPart 3:
Basic compilation techniques Part 4:
The creation of proceduresPart 5:
Register allocation and schedulingPart 6:
Analysis and optimization of execution timePart 7:
Trace-driven performance analysisPart 8:
Analysis and optimization of energy, power and program sizePart 9:
Program validation and testingIn 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 sectionsPart 2:
Synchronization PrimitivesPart 3:
Condition variables, messages and flow controlIn 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 applicationsIn 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 patternsPart 2:
Useful network design patternsPart 3:
Code tuning using design patternsIn 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 tasksPart 2:
A motivating problem - error diffusionExcerpts 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 systemPart 2, Multiprocessor SchedulingPart 3, Event-driven multiprocessor scheduling analysisPart 4, Services and middleware for embedded multiprocessorsPart 5, Achieving multiprocessor quality-of-serviceExcerpts 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 characteristicsPart 2: A survey of sensor typesPart 3: Designing the interface between a sensor and an MCUExcerpts 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 dynamicProtecting critical code and resourcesDeadlocks, unsafe states and shared resource corruptionDSP RTOS kernel task prioritization and memory allocationMultitasking on a DSP and how to schedule tasksHow to write an optimized FIR filterTesting and Debugging DSP Systems Real time data collection and visualizationUsing breakpoints, event triggers and program tracesEmulating DSP electrical characteristics and performanceThe working of JTAG boundary scan on DSPsDSP debugging challenges and methodologiesExcerpts 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 applicationsPart 2: Generating a multicore architecture from an instruction setPart 3: Deploying applications with CairnPart 4: An IPv4 Forwarding Design ExampleExcerpts 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 toolsPart 6: Communications-exposed programmingPart 5: Task-level parallel programming Part 4: Programming issues and approachesPart 3: A review of basic NoC architecturesPart 2: SoC objectives and NoC needsPart 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 marketPart 2: Dealing with inherent fairness among all nodesExcerpts 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 modesPart 2: The various types of data flow architectures and when to use themPart 1: The basics of Direct Memory Access (DMA) design2006Excerpts 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 diagramsExcerpts 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 sequencesLogic 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 1Audio in the 21st CenturyFPGA Architectures from 'A' to 'Z' : Part 2FPGA Architectures from 'A' to 'Z' : Part 1An IPv6 Refresher - Part IVoice 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 *