We've ranked the best embedded systems books using expert recommendations, sales data, and millions of reader ratings. At Shortform, we know books. Our book guides are the best in the world. Learn why.
Cover unavailable
1
Making Embedded Systems: Design Patterns for Great Software
Elecia White
5.0
Interested in developing embedded systems? Since they don’t tolerate inefficiency, these systems require a disciplined approach to programming. This easy-to-read guide helps you cultivate a host of good development practices, based on classic software design patterns and new patterns unique to embedded programming. Learn how to build system architecture for processors, not operating systems, and discover specific techniques for dealing with hardware difficulties and manufacturing requirements.
Written by an expert who’s created embedded systems ranging from urban surveillance and DNA scanners to children’s toys, this book is ideal for intermediate and experienced programmers, no matter what platform you use.
Optimize your system to reduce cost and increase performance Develop an architecture that makes your software robust in resource-constrained environments Explore sensors, motors, and other I/O devices Do more with less: reduce RAM consumption, code space, processor cycles, and power consumption Learn how to update embedded code directly in the processor Discover how to implement complex mathematics on small processors Understand what interviewers look for when you apply for an embedded systems job "Making Embedded Systems is the book for a C programmer who wants to enter the fun (and lucrative) world of embedded systems. It’s very well written—entertaining, even—and filled with clear illustrations." —Jack Ganssle, author and embedded system expert.
…
Cover unavailable
2
Code: The Hidden Language of Computer Hardware and Software
Charles Petzold
4.9
What do flashlights, the British invasion, black cats, and seesaws have to do with computers? In CODE, they show us the ingenious ways we manipulate language and invent new means of communicating with each other. And through CODE, we see how this ingenuity and our very human compulsion to communicate have driven the technological innovations of the past two centuries.
Using everyday objects and familiar language systems such as Braille and Morse code, author Charles Petzold weaves an illuminating narrative for anyone who’s ever wondered about the secret inner life of computers and other smart machines.
It’s a cleverly illustrated and eminently comprehensible story—and along the way, you’ll discover you’ve gained a real context for understanding today’s world of PCs, digital media, and the Internet. No matter what your level of technical savvy, CODE will charm you—and perhaps even awaken the technophile within.
…
Recommended by Ana Bell.
Ana Bell
It gets you to use your imagination to virtually build a computer. It’s easy to read, you can lie down on the couch and enjoy it—it’s not so much of a textbook. It demystifies the magic of a computer and what it is. [source]
Cover unavailable
3
Algorithms to Live By: The Computer Science of Human Decisions
A fascinating exploration of how insights from computer algorithms can be applied to our everyday lives, helping to solve common decision-making problems and illuminate the workings of the human mind
All our lives are constrained by limited space and time, limits that give rise to a particular set of problems. What should we do, or leave undone, in a day or a lifetime? How much messiness should we accept? What balance of new activities and familiar favorites is the most fulfilling? These may seem like uniquely human quandaries, but they are not: computers, too, face the same constraints, so computer scientists have been grappling with their version of such issues for decades. And the solutions they've found have much to teach us.
In a dazzlingly interdisciplinary work, acclaimed author Brian Christian and cognitive scientist Tom Griffiths show how the algorithms used by computers can also untangle very human questions. They explain how to have better hunches and when to leave things to chance, how to deal with overwhelming choices and how best to connect with others. From finding a spouse to finding a parking spot, from organizing one's inbox to understanding the workings of memory, Algorithms to Live By transforms the wisdom of computer science into strategies for human living.
…
Recommended by Doug McMillon, Chris Oliver, Emi Gal, and 2 others.
Here are some of my favorite reads from 2017. Lots of friends and colleagues send me book suggestions and it's impossible to squeeze them all in. I continue to be super curious about how digital and tech are enabling people to transform our lives but I try to read a good mix of books that apply to a variety of areas and stretch my thinking more broadly. [source]
Chris Oliver
This is a great book talking about how you can use computer science to help you make decisions in life. How do you know when to make a decision on the perfect house? Car? etc? It helps you apply algorithms to making those decisions optimally without getting lost. [source]
Emi Gal
When asked what books he would recommend to young people interested in his career path, mentioned Algorithms to Live By. [source]
Cover unavailable
4
Operating Systems Foundations with Linux on the Raspberry Pi: Textbook
Wim Vanderbauwhede and Jeremy Singer
4.7
Cover unavailable
5
Practical Electronics for Inventors
Paul Scherz and Simon Monk
4.7
A Fully-Updated, No-Nonsense Guide to Electronics
Advance your electronics knowledge and gain the skills necessary to develop and construct your own functioning gadgets. Written by a pair of experienced engineers and dedicated hobbyists, Practical Electronics for Inventors, Fourth Edition, lays out the essentials and provides step-by-step instructions, schematics, and illustrations. Discover how to select the right components, design and build circuits, use microcontrollers and ICs, work with the latest software tools, and test and tweak your creations. This easy-to-follow book features new instruction on programmable logic, semiconductors, operational amplifiers, voltage regulators, power supplies, digital electronics, and more. Practical Electronics for Inventors, Fourth Edition, covers:
Resistors, capacitors, inductors, and transformers Diodes, transistors, and integrated circuits Optoelectronics, solar cells, and phototransistors Sensors, GPS modules, and touch screens Op amps, regulators, and power supplies Digital electronics, LCD displays, and logic gates Microcontrollers and prototyping platforms Combinational and sequential programmable logic DC motors, RC servos, and stepper motors Microphones, audio amps, and speakers Modular electronics and prototypes
…
Cover unavailable
6
6th Grade Common Core Math: Daily Practice Workbook - Part I: Multiple Choice | 1000+ Practice Questions and Video Explanations | Argo Brothers
Argo Brothers
4.6
Cover unavailable
7
Tinyml: Machine Learning with Tensorflow Lite on Arduino and Ultra-Low-Power Microcontrollers
Pete Warden
4.6
Neural networks are getting smaller. Much smaller. The OK Google team, for example, has run machine learning models that are just 14 kilobytes in size--small enough to work on the digital signal processor in an Android phone. With this practical book, you'll learn about TensorFlow Lite for Microcontrollers, a miniscule machine learning library that allows you to run machine learning algorithms on tiny hardware.
Authors Pete Warden and Daniel Situnayake explain how you can train models that are small enough to fit into any environment, including small embedded devices that can run for a year or more on a single coin cell battery. Ideal for software and hardware developers who want to build embedded devices using machine learning, this guide shows you how to create a TinyML project step-by-step. No machine learning or microcontroller experience is necessary.
Learn practical machine learning applications on embedded devices, including simple uses such as speech recognition and gesture detection Train models such as speech, accelerometer, and image recognition, you can deploy on Arduino and other embedded platforms Understand how to work with Arduino and ultralow-power microcontrollers Use techniques for optimizing latency, energy usage, and model and binary size
…
Cover unavailable
8
Ti Tiva Arm Programming for Embedded Systems: Programming Arm Cortex-M4 Tm4c123g with C
Muhammad Ali Mazidi, Shujen Chen, et al.
4.6
1) Our ARM book series The ARM CPU is licensed and produced by hundreds of companies. The ARM Assembly language instructions and architectures are standardized and all the licensees must follow them. The first volume of this series (ARM Assembly Language Programming & Architecture by Mazidi & Naimi) covers the Assembly language programming, instructions, and architecture of the ARM and can be used with any ARM chip, regardless of the chip maker. Since the licensees are free to design and implement their own peripherals, the peripherals of ARM chips vary greatly among the licensees. For this reason, we have dedicated a separate volume to each licensee. This volume covers the peripheral programming of Texas Instruments (TI) ARM Tiva C series. Throughout the book, we use C language to program the Tiva C Series TM4C123G chip peripherals. We use TM4C123G LaunchPad(TM) Evaluation Kit which is based on ARM(R) Cortex(R)-M4F MCU. See our website for tutorials and support materials: http: //www.MicroDigitalEd.com/ARM/TI_ARM_boo... 2) Who will use our ARM textbooks? The primary audience of our textbook on ARM is undergraduate and graduate engineering students in Electrical and Computer Engineering departments. We assume no background in microcontroller and embedded systems programming. It can also be used by embedded system programmers who want to move away from 8- and 16-bit legacy chips such as the 8051, AVR, PIC, and HCS08/12 family of microcontrollers to ARM. Designers of the x86-based systems wanting to design ARM-based embedded systems can also benefit from this series. See our website for other titles for ARM Programming and Embedded Systems: http: //www.MicroDigitalEd.com/ARM/ARM_books.htm
…
Cover unavailable
9
Avr Microcontroller and Embedded Systems: Using Assembly and C
Muhammad Ali Mazidi, Sarmad Naimi, et al.
4.6
The AVR Microcontroller and Embedded Systems: Using Assembly and Cfeatures a step-by-step approach in covering both Assembly and C language programming of the AVR family of Microcontrollers. It offers a systematic approach in programming and interfacing of the AVR with LCD, keyboard, ADC, DAC, Sensors, Serial Ports, Timers, DC and Stepper Motors, Opto-isolators, and RTC. Both Assembly and C languages are used in all the peripherals programming. In the first 6 chapters, Assembly language is used to cover the AVR architecture and starting with chapter 7, both Assembly and C languages are used to show the peripherals programming and interfacing.
…
Cover unavailable
10
Hands-On Embedded Programming with Qt: Develop high performance applications for embedded systems with C++ and Qt 5
John Werner
4.5
A comprehensive guide that will get you up and running with embedded software development using Qt5
Key Features Learn to create fluid, cross-platform applications for embedded devices Achieve optimum performance in your applications with QT Lite project Explore the implementation of Qt with IoT using QtMqtt, QtKNX, and QtWebSockets Book Description Qt is an open-source toolkit suitable for cross-platform and embedded application development. This book uses inductive teaching to help you learn how to create applications for embedded and Internet of Things (IoT) devices with Qt 5.
You'll start by learning to develop your very first application with Qt. Next, you'll build on the first application by understanding new concepts through hands-on projects and written text. Each project will introduce new features that will help you transform your basic first project into a connected IoT application running on embedded hardware. In addition to practical experience in developing an embedded Qt project, you will also gain valuable insights into best practices for Qt development, along with exploring advanced techniques for testing, debugging, and monitoring the performance of Qt applications. Through the course of the book, the examples and projects are demonstrated in a way so that they can be run both locally and on an embedded platform.
By the end of this book, you will have the skills you need to use Qt 5 to confidently develop modern embedded applications.
What you will learn Understand how to develop Qt applications using Qt Creator under Linux Explore various Qt GUI technologies to build resourceful and interactive applications Understand Qt's threading model to maintain a responsive UI Get to grips with remote target load and debug under Qt Creator Become adept at writing IoT code using Qt Learn a variety of software best practices to ensure that your code is efficient Who this book is for This book is for software and hardware professionals with experience in different domains who are seeking new career opportunities in embedded systems and IoT. Working knowledge of the C++ Linux command line will be useful to get the most out of this book.
Table of Contents Setting Up The Environment Writing Your First Qt Application Running Your First Application on The Target Important Qt Concepts Managing Overall Workflow Exploring GUI Technologies Adding More Features Qt in the Embedded World Exploring IoT With Qt Using More Qt Related Technologies Debugging, Logging, and Monitoring Qt Applications Responsive Application Programming - Threads Qt Best Practices Appendix A - BigProject Requirements Appendix B - Bonus Code - Simplifying Q_PROPERTY
…
Cover unavailable
11
The AVR Microcontroller and Embedded Systems Using Assembly and C: Using Arduino Uno and Atmel Studio
Sepehr Naimi, Sarmad Naimi, et al.
4.5
The AVR microcontroller from Atmel (now Microchip) is one of the most widely used 8-bit microcontrollers. Arduino Uno is based on AVR microcontroller. It is inexpensive and widely available around the world. This book combines the two. In this book, the authors use a step-by-step and systematic approach to show the programming of the AVR chip. Examples in both Assembly language and C show how to program many of the AVR features, such as timers, serial communication, ADC, SPI, I2C, and PWM. The text is organized into two parts: 1) The first 6 chapters use Assembly language programming to examine the internal architecture of the AVR. 2) Chapters 7-18 uses both Assembly and C to show the AVR peripherals and I/O interfacing to real-world devices such as LCD, motor, and sensor. The first edition of this book published by Pearson used ATmega32. It is still available for purchase from Amazon. This new edition is based on Atmega328 and the Arduino Uno board. The appendices, source codes, tutorials and support materials for both books are available on the following websites: http: //www.NicerLand.com/ and http: //www.MicroDigitalEd.com/AVR/AVR_books.htm
…
Cover unavailable
12
Better Embedded System Software
Philip Koopman
4.5
Cover unavailable
13
Exploring Raspberry Pi: Interfacing to the Real World with Embedded Linux
Derek Molloy
4.5
Expand Raspberry Pi capabilities with fundamental engineering principlesExploring Raspberry Pi is the innovators guide to bringing Raspberry Pi to life. This book favors engineering principles over a 'recipe' approach to give you the skills you need to design and build your own projects. You'll understand the fundamental principles in a way that transfers to any type of electronics, electronic modules, or external peripherals, using a "learning by doing" approach that caters to both beginners and experts. The book begins with basic Linux and programming skills, and helps you stock your inventory with common parts and supplies. Next, you'll learn how to make parts work together to achieve the goals of your project, no matter what type of components you use. The companion website provides a full repository that structures all of the code and scripts, along with links to video tutorials and supplementary content that takes you deeper into your project.
The Raspberry Pi's most famous feature is its adaptability. It can be used for thousands of electronic applications, and using the Linux OS expands the functionality even more. This book helps you get the most from your Raspberry Pi, but it also gives you the fundamental engineering skills you need to incorporate any electronics into any project.
Develop the Linux and programming skills you need to build basic applications Build your inventory of parts so you can always "make it work" Understand interfacing, controlling, and communicating with almost any component Explore advanced applications with video, audio, real-world interactions, and more Be free to adapt and create with Exploring Raspberry Pi.
…
Cover unavailable
14
Understanding and Using C Pointers
Richard M. Reese
4.5
Improve your programming through a solid understanding of C pointers and memory management. With this practical book, you’ll learn how pointers provide the mechanism to dynamically manipulate memory, enhance support for data structures, and enable access to hardware. Author Richard Reese shows you how to use pointers with arrays, strings, structures, and functions, using memory models throughout the book.
Difficult to master, pointers provide C with much flexibility and power—yet few resources are dedicated to this data type. This comprehensive book has the information you need, whether you’re a beginner or an experienced C or C++ programmer or developer.
Get an introduction to pointers, including the declaration of different pointer types Learn about dynamic memory allocation, de-allocation, and alternative memory management techniques Use techniques for passing or returning data to and from functions Understand the fundamental aspects of arrays as they relate to pointers Explore the basics of strings and how pointers are used to support them Examine why pointers can be the source of security problems, such as buffer overflow Learn several pointer techniques, such as the use of opaque pointers, bounded pointers and, the restrict keyword
…
Cover unavailable
15
Exploring Beaglebone: Tools and Techniques for Building with Embedded Linux
Derek Molloy
4.5
In-depth instruction and practical techniques for building with the BeagleBone embedded Linux platform
Exploring BeagleBone?is a hands-on guide to bringing gadgets, gizmos, and robots to life using the popular BeagleBone embedded Linux platform. Comprehensive content and deep detail provide more than just a BeagleBone instruction manual-you'll also learn the underlying engineering techniques that will allow you to create your own projects. The book begins with a foundational primer on essential skills, and then gradually moves into communication, control, and advanced applications using C/C++, allowing you to learn at your own pace. In addition, the book's companion website features instructional videos, source code, discussion forums, and more, to ensure that you have everything you need.
The BeagleBone's small size, high performance, low cost, and extreme adaptability have made it a favorite development platform, and the Linux software base allows for complex yet flexible functionality. The BeagleBone has applications in smart buildings, robot control, environmental sensing, to name a few; and, expansion boards and peripherals dramatically increase the possibilities.?Exploring BeagleBone?provides a reader-friendly ?guide to the device, including a crash course in computer engineering. While following step by step, you can:
Get up to speed on embedded Linux, electronics, and programming Master interfacing electronic circuits, buses and modules, with practical examples Explore the Internet-connected BeagleBone and the BeagleBone with a display Apply the BeagleBone to sensing applications, including video and sound Explore the BeagleBone's Programmable Real-Time Controllers Updated to cover the latest Beagle boards, Linux kernel versions, and Linux software releases. Includes new content on Linux kernel development, the Linux Remote Processor Framework, CAN bus, IoT frameworks, and much more! Hands-on learning helps ensure that your new skills stay with you, allowing you to design with electronics, modules, or peripherals even beyond the BeagleBone. Insightful guidance and online peer support help you transition from beginner to expert as you master the techniques presented in?Exploring BeagleBone, the practical handbook for the popular computing platform.
…
Cover unavailable
16
Embedded Linux Primer: A Practical, Real-World Approach
Christopher Hallinan
4.5
This book talks about succeeding with Embedded Linux, and provides comprehensive real-world guidance for every developer, engineer, and manager. This book covers everything you need to know to build efficient, high-value, Linux-based embedded products. Drawing on years of experience as an embedded Linux consultant and field application engineer, Christopher Hallinan offers solutions for the specific technical issues you're most likely to face, demonstrates how to build an effective embedded Linux environment, and shows how to use it as productively as possible. Hallinan begins by touring a typical Linux-based embedded system, introducing key concepts and components, and calling attention to differences between Linux and traditional embedded environments. Writing from the embedded developer's viewpoint, he thoroughly addresses issues ranging from kernel initialization to bootloaders, device drivers to file systems. The book's highlights include: detailed coverage of the increasingly popular Busybox utilities; a step-by-step walkthrough of porting Linux to custom boards; and real-time configuration via CONFIG_RT-one of today's most exciting developments in embedded Linux. what to know before you start, it helps you to: compare leading embedded Linux processors, architectures, and distributions; understand the Linux kernel and initialization process; control bootloading in embedded Linux systems-including practical coverage of U-Boot; use embedded Linux file systems, including JFFS2-including instructions for building file system images; utilize the Memory Technology Devices subsystem for flash (and other) memory devices; maximize your productivity in cross-development environments, and master the powerful NFS root mount development configuration; master gdb, KGDB, and hardware JTAG debugging; and, configure, build, and initialize Busybox to support your unique requirements.
…
Cover unavailable
17
PIC Microcontroller and Embedded Systems: Using Assembly and C for Pic18
Muhammad Ali Mazidi, Danny Causey, et al.
4.5
The PIC microcontroller from Microchip is one of the most widely used 8-bit microcontrollers in the world. In this book, the authors use a step-by-step and systematic approach to show the programming of the PIC18 chip. Examples in both Assembly language and C show how to program many of the PIC18 features such as timers, serial communication, ADC, and SPI.
Cover unavailable
18
Debugging: The 9 Indispensable Rules for Finding Even the Most Elusive Software and Hardware Problems
David J Agans
4.4
When the pressure is on to root out an elusive software or hardware glitch, what’s needed is a cool head courtesy of a set of rules guaranteed to work on any system, in any circumstance. Written in a frank but engaging style, Debuggingprovides simple, foolproof principles guaranteed to help find any bug quickly. This book makes those shelves of application-specific debugging books (on C++, Perl, Java, etc.) obsolete. It changes the way readers think about debugging, making those pesky problems suddenly much easier to find and fix. Illustrating the rules with real-life bug-detection war stories, the book shows readers how to: • Understand the system: how perceiving the ""roadmap"" can hasten your journey • Quit thinking and look: when hands-on investigation can’t be avoided • Isolate critical factors: why changing one element at a time can be an essential tool • Keep an audit trail: how keeping a record of the debugging process can win the day
…
Cover unavailable
19
Embedded Systems: Introduction to ARM Cortex-M Microcontrollers
Jonathan W Valvano
4.4
This book is self-published and is printed on demand. The original ISBN was generated in 2012, but if you purchase the book new from Amazon you will get the new version, which was uploaded December 2018. This book, now in its fifth edition, is the first in a series of three books that teach the fundamentals of embedded systems as applied to the ARM Cortex-M family of microcontrollers. This fifth edition focuses on the LaunchPads based on the TM4C123, TM4C1294, and MSP432E4 microcontrollers. This first volume is an introduction to computers and interfacing focusing on assembly language and C programming. The second volume, Embedded Systems: Real-Time Interfacing to ARM Cortex-M Microcontrollers, focuses on hardware/software interfacing and the design of embedded systems. There are MSP432P versions of the first two volumes. The third volume, Embedded Systems: Real-Time Operating Systems for ARM Cortex-M Microcontrollers, is an advanced book focusing on operating systems, high-speed interfacing, control systems, and robotics. The third volume could also be used for professionals wishing to design or deploy a real-time operating system onto an ARM platform. This first book is an introductory book that could be used at the college level with little or no prerequisites. An embedded system is a system that performs a specific task and has a computer embedded inside. A system is comprised of components and interfaces connected together for a common purpose. This book is an introduction to embedded systems. Specific topics include microcontrollers, fixed-point numbers, the design of software in assembly language and C, elementary data structures, programming input/output including interrupts, analog to digital conversion, digital to analog conversion. This book employs many approaches to learning. It will not include an exhaustive recapitulation of the information in data sheets. First, it begins with basic fundamentals, which allows the reader to solve new problems with new technology. Second, the book presents many detailed design examples. These examples illustrate the process of design. There are multiple structural components that assist learning. Checkpoints, with answers in the back, are short easy to answer questions providing immediate feedback while reading. Simple homework, with answers to the odd questions on the web, provides more detailed learning opportunities. The book includes an index and a glossary so that information can be searched. The most important learning experiences in a class like this are of course the laboratories. Each chapter has suggested lab assignments. More detailed lab descriptions are available on the web. Specifically for this volume, look at the lab assignments for EE319K. For Volume 2 refer to the EE445L labs, and for Volume 3, look at the lab assignments for EE445M/EE380L.6.There is a web site accompanying this book http: //users.ece.utexas.edu/ valvano/arm. Posted here are Keil uVision and Texas Instruments Code Composer Studio projects for each of the example programs in the book. You will also find data sheets and Excel spreadsheets relevant to the material in this book. The book will cover embedded systems for ARM Cortex-M microcontrollers with specific details on the TM4C123, and MSP432E4. Most of the topics can be run on any of these microcontrollers. Although the examples designed are specific for the TM4C123, it will be possible to use these books for other ARM derivatives.
…
Cover unavailable
20
Security Engineering: A Guide to Building Dependable Distributed Systems 2ed
Ross J. Anderson
4.4
The world has changed radically since the first edition of this book was published in 2001. Spammers, virus writers, phishermen, money launderers, and spies now trade busily with each other in a lively online criminal economy and as they specialize, they get better. In this indispensable, fully updated guide, Ross Anderson reveals how to build systems that stay dependable whether faced with error or malice. Here's straight talk on critical topics such as technical engineering basics, types of attack, specialized protection mechanisms, security psychology, policy, and more.
…
Recommended by Ben Goldacre.
Ben Goldacre
@szbalint it's such a great book, i've always said @rossjanderson should release it in chunks as pop science books. the massive textbook shape doesn't do its accessibility, readability and content justice! [source]
Cover unavailable
21
The Design and Implementation of the FreeBSD Operating System
Marshall Kirk McKusick
4.4
The most complete, authoritative technical guide to the FreeBSD kernel's internal structure has now been extensively updated to cover all major improvements between Versions 5 and 11. Approximately one-third of this edition's content is completely new, and another one-third has been extensively rewritten. Three long-time FreeBSD project leaders begin with a concise overview of the FreeBSD kernel's current design and implementation. Next, they cover the FreeBSD kernel from the system-call level down-from the interface to the kernel to the hardware. Explaining key design decisions, they detail the concepts, data structures, and algorithms used in implementing each significant system facility, including process management, security, virtual memory, the I/O system, filesystems, socket IPC, and networking. This Second Edition - Explains highly scalable and lightweight virtualization using FreeBSD jails, and virtual-machine acceleration with Xen and Virtio device paravirtualization - Describes new security features such as Capsicum sandboxing and GELI cryptographic disk protection - Fully covers NFSv4 and Open Solaris ZFS support - Introduces FreeBSD's enhanced volume management and new journaled soft updates - Explains DTrace's fine-grained process debugging/profiling - Reflects major improvements to networking, wireless, and USB support Readers can use this guide as both a working reference and an in-depth study of a leading contemporary, portable, open source operating system. Technical and sales support professionals will discover both FreeBSD's capabilities and its limitations. Applications developers will learn how to effectively and efficiently interface with it; system administrators will learn how to maintain, tune, and configure it; and systems programmers will learn how to extend, enhance, and interface with it. Marshall Kirk McKusick writes, consults, and teaches classes on UNIX- and BSD-related subjects. While at the University of California, Berkeley, he implemented the 4.2BSD fast filesystem. He was research computer scientist at the Berkeley Computer Systems Research Group (CSRG), overseeing development and release of 4.3BSD and 4.4BSD. He is a FreeBSD Foundation board member and a long-time FreeBSD committer. Twice president of the Usenix Association, he is also a member of ACM, IEEE, and AAAS. George V. Neville-Neil hacks, writes, teaches, and consults on security, networking, and operating systems. A FreeBSD Foundation board member, he served on the FreeBSD Core Team for four years. Since 2004, he has written the "Kode Vicious" column for "Queue" and "Communications of the ACM." He is vice chair of ACM's Practitioner Board and a member of Usenix Association, ACM, IEEE, and AAAS. Robert N.M. Watson is a University Lecturer in systems, security, and architecture in the Security Research Group at the University of Cambridge Computer Laboratory. He supervises advanced research in computer architecture, compilers, program analysis, operating systems, networking, and security. A FreeBSD Foundation board member, he served on the Core Team for ten years and has been a committer for fifteen years. He is a member of Usenix Association and ACM.
…
Cover unavailable
22
Hacker's Delight
Henry S. Warren Jr.
4.4
Aiming to tell the dark secrets of computer arithmetic, this title is suitable for library developers, compiler writers, and lovers of elegant hacks.
Cover unavailable
23
The 8051 Microcontroller and Embedded Systems: Using Assembly and C
Muhammad Ali Mazidi, Janice G. Mazidi, et al.
4.4
This book uses a step-by-step approach to teach the fundamentals of assembly language programming and interfacing of the 8051 microcontroller. It uses many examples to clarify concepts. Simple, concise examples are utilized to show what action each instruction performs, then a sample is provided to show its application. This text provides a comprehensive understanding of the internal organization of the 8051 registers and resources in a way that sheds the student's fear of assembly language. Whether students become designers of stand-alone systems or complex embedded systems, they will find this text a useful resource.
…
Cover unavailable
24
Head First C
David Griffiths, Dawn Griffiths
4.4
Ever wished you could learn C from a book? Head First C provides a complete learning experience for C and structured imperative programming. With a unique method that goes beyond syntax and how-to manuals, this guide not only teaches you the language, it helps you understand how to be a great programmer. You'll learn key areas such as language basics, pointers and pointer arithmetic, and dynamic memory management. Advanced topics include multi-threading and network programming—topics typically covered on a college-level course.
This book also features labs: in-depth projects intended to stretch your abilities, test your new skills, and build confidence. Head First C mimics the style of college-level C courses, making it ideal as an accessible textbook for students.
We think your time is too valuable to waste struggling with new concepts. Using the latest research in cognitive science and learning theory to craft a multi-sensory learning experience, Head First C uses a visually rich format designed for the way your brain works, not a text-heavy approach that puts you to sleep.
…
Cover unavailable
25
An Embedded Software Primer
David E. Simon
4.4
"I sincerely wish (this book) had been available when I had to learn all this stuff the hard way." --Steve Vinoski "An excellent job of introducing and defining the jargon associated with embedded systems. This makes the text extremely easy to read." --David Cuka An Embedded Software Primer is a clearly written, insightful manual for engineers interested in writing embedded-system software. The example-driven approach puts you on a fast track to understanding embedded-system programming and applying what you learn to your projects. This book will give you the necessary foundation to work confidently in this field. Building on a basic knowledge of computer programming concepts, this book will help you to: Learn core principles and advanced techniques of embedded-system software. Find out what a real-time operating system (RTOS) does and how to use one effectively. Experiment with sample code and the �C/OS RTOS version 1.11 (on the accompanying CD). Apply what you learn, no matter which microprocessor or RTOS you use. After reading this book, you will be able to tackle the challenges of embedded system programming and quickly reap the benefits of your new skills.
…
Cover unavailable
26
Test Driven Development for Embedded C
James W. Grenning
4.4
Another day without Test-Driven Development means more time wasted chasing bugs and watching your code deteriorate. You thought TDD was for someone else, but it's not! It's for you, the embedded C programmer. TDD helps you prevent defects and build software with a long useful life. This is the first book to teach the hows and whys of TDD for C programmers.
TDD is a modern programming practice C developers need to know. It's a different way to program---unit tests are written in a tight feedback loop with the production code, assuring your code does what you think. You get valuable feedback every few minutes. You find mistakes before they become bugs. You get early warning of design problems. You get immediate notification of side effect defects. You get to spend more time adding valuable features to your product.
James is one of the few experts in applying TDD to embedded C. With his 1.5 decades of training, coaching, and practicing TDD in C, C++, Java, and C# he will lead you from being a novice in TDD to using the techniques that few have mastered.
This book is full of code written for embedded C programmers. You don't just see the end product, you see code and tests evolve. James leads you through the thought process and decisions made each step of the way. You'll learn techniques for test-driving code right next to the hardware, and you'll learn design principles and how to apply them to C to keep your code clean and flexible.
To run the examples in this book, you will need a C/C++ development environment on your machine, and the GNU GCC tool chain or Microsoft Visual Studio for C++ (some project conversion may be needed).
…
Cover unavailable
27
Building Wireless Sensor Networks
Robert Faludi
4.4
Get ready to create distributed sensor systems and intelligent interactive devices using the ZigBee wireless networking protocol and Series 2 XBee radios. By the time you're halfway through this fast-paced, hands-on guide, you'll have built a series of useful projects, including a complete ZigBee wireless network that delivers remotely sensed data.
Radio networking is creating revolutions in volcano monitoring, performance art, clean energy, and consumer electronics. As you follow the examples in each chapter, you'll learn how to tackle inspiring projects of your own. This practical guide is ideal for inventors, hackers, crafters, students, hobbyists, and scientists.
Investigate an assortment of practical and intriguing project ideas Prep your ZigBee toolbox with an extensive shopping list of parts and programs Create a simple, working ZigBee network with XBee radios in less than two hours -- for under $100 Use the Arduino open source electronics prototyping platform to build a series of increasingly complex projects Get familiar with XBee's API mode for creating sensor networks Build fully scalable sensing and actuation systems with inexpensive components Learn about power management, source routing, and other XBee technical nuances Make gateways that connect with neighboring networks, including the Internet
…
Cover unavailable
28
Embedded Systems with Arm Cortex-M Microcontrollers in Assembly Language and C: Third Edition
Yifeng Zhu
4.3
The book introduces basic programming of ARM Cortex-M cores in assembly and C at the register level, and the fundamentals of embedded system design. It presents basic concepts such as data representations (integer, fixed-point, floating-point), assembly instructions, stack, and implementing basic controls and functions of C language at the assembly level. It covers advanced topics such as interrupts, mixing C and assembly, direct memory access (DMA), system timers (SysTick), multi-tasking, SIMD instructions for digital signal processing (DSP), and instruction encoding/decoding. The book also gives detailed examples of interfacing peripherals, such as general purpose I/O (GPIO), LCD driver, keypad interaction, stepper motor control, PWM output, timer input capture, DAC, ADC, real-time clock (RTC), and serial communication (USART, I2C, SPI, and USB).
…
Cover unavailable
29
Practical UML Statecharts in C/C++: Event-Driven Programming for Embedded Systems
Miro Samek
4.3
Practical UML Statecharts in C/C++ Second Edition bridges the gap between high-level abstract concepts of the Unified Modeling Language (UML) and the actual programming aspects of modern hierarchical state machines (UML statecharts). The book describes a lightweight, open source, event-driven infrastructure, called QP that enables direct manual coding UML statecharts and concurrent event-driven applications in C or C++ without big tools.This book is presented in two parts. In Part I, you get a practical description of the relevant state machine concepts starting from traditional finite state automata to modern UML state machines followed by state machine coding techniques and state-machine design patterns, all illustrated with executable examples. In Part II, you find a detailed design study of a generic real-time framework indispensable for combining concurrent, event-driven state machines into robust applications. Part II begins with a clear explanation of the key event-driven programming concepts such as inversion of control ("Hollywood Principle"), blocking versus non-blocking code, run-to-completion (RTC) execution semantics, the importance of event queues, dealing with time, and the role of state machines to maintain the context from one event to the next. This background is designed to help software developers in making the transition from the traditional sequential to the modern event-driven programming, which can be one of the trickiest paradigm shifts. The lightweight QP event-driven infrastructure goes several steps beyond the traditional real-time operating system (RTOS). In the simplest configuration, QP runs on bare-metal microprocessor, microcontroller, or DSP completely replacing the RTOS. QP can also work with almost any OS/RTOS to take advantage of the existing device drivers, communication stacks, and other middleware. The accompanying website to this book contains complete open source code for QP, ports to popular processors and operating systems, including 80x86, ARM Cortex-M3, MSP430, and Linux, as well as all examples described in the book.
…
Cover unavailable
30
Embedded Systems Dictionary
Jack Ganssle
4.3
This technical dictionary defines the 2,500 most-used words in the embedded systems field, with over 4,500 entries and cross-references. Designed to serve both the technical and non-technical audience, this book defines advanced terms in two steps. The fi
Cover unavailable
31
The Definitive Guide to ARM Cortex-M3 and Cortex-M4 Processors
Joseph Yiu
4.3
This new edition has been fully revised and updated to include extensive information on the ARM Cortex-M4 processor, providing a complete up-to-date guide to both Cortex-M3 and Cortex-M4 processors, and which enables migration from various processor architectures to the exciting world of the Cortex-M3 and M4.
This book presents the background of the ARM architecture and outlines the features of the processors such as the instruction set, interrupt-handling and also demonstrates how to program and utilize the advanced features available such as the Memory Protection Unit (MPU).
Chapters on getting started with IAR, Keil, gcc and CooCox CoIDE tools help beginners develop program codes. Coverage also includes the important areas of software development such as using the low power features, handling information input/output, mixed language projects with assembly and C, and other advanced topics.
…
Cover unavailable
32
Debugging Embedded Microprocessor Systems
Stuart Ball
4.3
Debugging Embedded Microprocessor Systems provides techniques for engineers, technicians, and students who need to correct design faults in embedded systems. Using real-world scenarios, designers can learn practical, time-saving ways to avoid and repair potentially costly problems. Prevention is stressed.
In this book, the author addresses hardware and software issues, including up-front design techniques to prevent bugs and contain design creep. Practical advice includes descriptions of common tools which can be used to help identify and repair bugs, as well as test routines. RTOS and embedded PC environments are also covered.
Each chapter of Debugging Embedded Microprocessor Systems opens with an example design problem which illustrates real-world issues such as design changes, time pressures, equipment or component availability, etc. Case studies of past debugging projects are presented in the final chapter.
…
Cover unavailable
33
Embedded C Programming: Techniques and Applications of C and PIC MCUS
Mark Siegesmund
4.3
This book provides a hands-on introductory course on concepts of C programming using a PIC(R) microcontroller and CCS C compiler. Through a project-based approach, this book provides an easy to understand method of learning the correct and efficient practices to program a PIC(R) microcontroller in C language. Principles of C programming are introduced gradually, building on skill sets and knowledge. Early chapters emphasize the understanding of C language through experience and exercises, while the latter half of the book covers the PIC(R) microcontroller, its peripherals, and how to use those peripherals from within C in great detail.
This book demonstrates the programming methodology and tools used by most professionals in embedded design, and will enable you to apply your knowledge and programming skills for any real-life application. Providing a step-by-step guide to the subject matter, this book will encourage you to alter, expand, and customize code for use in your own projects.
…
Cover unavailable
34
Embedded Linux Systems with the Yocto Project (Pearson Open Source Software Development Series)
Rudolf J. Streif
4.3
Build Complete Embedded Linux Systems Quickly and Reliably Developers are increasingly integrating Linux into their embedded systems: It supports virtually all hardware architectures and many peripherals, scales well, offers full source code, and requires no royalties. The Yocto Project makes it much easier to customize Linux for embedded systems. If you re a developer with working knowledge of Linux, "Embedded Linux Systems with the Yocto Project " will help you make the most of it. An indispensable companion to the official documentation, this guide starts by offering a solid grounding in the embedded Linux landscape and the challenges of creating custom distributions for embedded systems. You ll master the Yocto Project s toolbox hands-on, by working through the entire development lifecycle with a variety of real-life examples that you can incorporate into your own projects. Author Rudolf Streif offers deep insight into Yocto Project s build system and engine, and addresses advanced topics ranging from board support to compliance management. You ll learn how to Overcome key challenges of creating custom embedded distributions Jumpstart and iterate OS stack builds with the OpenEmbedded Build System Master build workflow, architecture, and the BitBake Build Engine Quickly troubleshoot build problems Customize new distros with built-in blueprints or from scratch Use BitBake recipes to create new software packages Build kernels, set configurations, and apply patches Support diverse CPU architectures and systems Create Board Support Packages (BSP) for hardware-specific adaptations Provide Application Development Toolkits (ADT) for round-trip development Remotely run and debug applications on actual hardware targets Ensure open-source license compliance Scale team-based projects with Toaster, Build History, Source Mirrors, and Autobuilder "
…
Cover unavailable
35
Arm System Developer's Guide: Designing and Optimizing System Software
Andrew Sloss, Dominic Symes, Chris Wright
4.3
Over the last ten years, the ARM architecture has become one of the most pervasive architectures in the world, with more than 2 billion ARM-based processors embedded in products ranging from cell phones to automotive braking systems. A world-wide community of ARM developers in semiconductor and product design companies includes software developers, system designers and hardware engineers. To date no book has directly addressed their need to develop the system and software for an ARM-based system. This text fills that gap.
This book provides a comprehensive description of the operation of the ARM core from a developer's perspective with a clear emphasis on software. It demonstrates not only how to write efficient ARM software in C and assembly but also how to optimize code. Example code throughout the book can be integrated into commercial products or used as templates to enable quick creation of productive software.
The book covers both the ARM and Thumb instruction sets, covers Intel's XScale Processors, outlines distinctions among the versions of the ARM architecture, demonstrates how to implement DSP algorithms, explains exception and interrupt handling, describes the cache technologies that surround the ARM cores as well as the most efficient memory management techniques. A final chapter looks forward to the future of the ARM architecture considering ARMv6, the latest change to the instruction set, which has been designed to improve the DSP and media processing capabilities of the architecture.
…
Cover unavailable
36
Electronic Instrument Design: Architecting for the Life Cycle
Kim R. Fowler
4.3
Electronic Instrument Design provides a coherent and integrated presentation of the design process, connecting engineering principles to real applications from a systems perspective. Bridging theory and practice, this hands-on guide builds a framework for developing electronic instrumentation, from hand-held devices to consoles of equipment. It offers practical design solutions, describes the interactions, trade-offs, and priorities encountered, and uses specific details, situations, and numerous case studies as examples. The methods may be applied to single prototypes as well as to mass-produced devices. The applications are not technology-dependent, and will therefore not be outdated by the next generation of hardware or software. While the focus of the book is on projects often found in small- or medium-sized companies, many of the principles presented apply to larger projects as well. Electronic Instrument Design is an ideal text for design courses in electrical and industrial engineering, and also serves as a practical guide for engineers in diverse fields.
…
Cover unavailable
37
The 8051 Microcontroller and Embedded Systems
Muhammad Ali Mazidi, Janice Mazidi, Janice Gillispie Mazidi
4.3
Cover unavailable
38
C Pocket Reference: C Syntax and Fundamentals
Peter Prinz, Ulla Kirch-Prinz
4.3
C is one of the oldest programming languages and still one of the most widely used. Whether you're an experienced C programmer or you're new to the language, you know how frustrating it can be to hunt through hundreds of pages in your reference books to find that bit of information on a certain function, type or other syntax element. Or even worse, you may not have your books with you. Your answer is the C Pocket Reference. Concise and easy to use, this handy pocket guide to C is a must-have quick reference for any C programmer. It's the only C reference that fits in your pocket and is an excellent companion to O'Reilly's other C books.
Ideal as an introduction for beginners and a quick reference for advanced programmers, the C Pocket Reference consists of two parts: a compact description of the C language and a thematically structured reference to the standard library. The representation of the language is based on the ANSI standard and includes extensions introduced in 1999. An index is included to help you quickly find the information you need.
This small book covers the following:
C language fundamentals Data types Expressions and operators C statements Declarations Functions Preprocessor directives The standard library O'Reilly's Pocket References have become a favorite among programmers everywhere. By providing a wealth of important details in a concise, well-organized format, these handy books deliver just what you need to complete the task at hand. When you've reached a sticking point in your work and need to get to a solution quickly, the new C Pocket Reference is the book you'll want to have.
…
Cover unavailable
39
If I Only Changed the Software, Why Is the Phone on Fire?: Embedded Debugging Methods Revealed: Technical Mysteries for Engineers
Lisa K. Simone
4.3
If I Only Changed the Software, Why is the Phone on Fire?: Embedded Debugging Methods Revealed manages the unthinkable- it conveys crucial technical information to engineers without boring them to tears! In this unique reference, expert embedded designer Lisa Simone provides the solutions to typical embedded software debugging problems from a fresh new perspective. She introduces a team of engineers who readers will recognize from their own workplaces, and then confronts them with real-world debugging scenarios of progressive complexity, drawing the reader into the "mysteries" with their new fictional colleagues, and guiding them step-by-step toward successful solutions.
…
Cover unavailable
40
Make: Sensors: A Hands-On Primer for Monitoring the Real World with Arduino and Raspberry Pi
Tero Karvinen
4.3
Make: Sensors is the definitive introduction and guide to the sometimes-tricky world of using sensors to monitor the physical world.
Features about this book:
Includes full color photographs that are informative, useful, and engaging Branded with the MAKE Magazine look and feel, this book targets the MAKE core audience A hands-on book that provides the reader with engaging experiences Heavily illustrated with electronic circuit diagrams that can be read by non-technical readers Takes the same approach to the topic as the successful Make: Electronics book
…
Cover unavailable
41
Designing Embedded Hardware
John Catsoulis
4.3
Embedded computer systems literally surround us: they're in our cell phones, PDAs, cars, TVs, refrigerators, heating systems, and more. In fact, embedded systems are one of the most rapidly growing segments of the computer industry today.
Along with the growing list of devices for which embedded computer systems are appropriate, interest is growing among programmers, hobbyists, and engineers of all types in how to design and build devices of their own. Furthermore, the knowledge offered by this book into the fundamentals of these computer systems can benefit anyone who has to evaluate and apply the systems.
The second edition of Designing Embedded Hardware has been updated to include information on the latest generation of processors and microcontrollers, including the new MAXQ processor. If you're new to this and don't know what a MAXQ is, don't worry--the book spells out the basics of embedded design for beginners while providing material useful for advanced systems designers.
Designing Embedded Hardware steers a course between those books dedicated to writing code for particular microprocessors, and those that stress the philosophy of embedded system design without providing any practical information. Having designed 40 embedded computer systems of his own, author John Catsoulis brings a wealth of real-world experience to show readers how to design and create entirely new embedded devices and computerized gadgets, as well as how to customize and extend off-the-shelf systems.
Loaded with real examples, this book also provides a roadmap to the pitfalls and traps to avoid. Designing Embedded Hardware includes:
The theory and practice of embedded systems Understanding schematics and data sheets Powering an embedded system Producing and debugging an embedded system Processors such as the PIC, Atmel AVR, and Motorola 68000-series Digital Signal Processing (DSP) architectures Protocols (SPI and I2C) used to add peripherals RS-232C, RS-422, infrared communication, and USB CAN and Ethernet networking Pulse Width Monitoring and motor control If you want to build your own embedded system, or tweak an existing one, this invaluable book gives you the understanding and practical skills you need.
…
Cover unavailable
42
Introduction to Embedded Systems
Jonathan W Valvano
4.3
Cover unavailable
43
Programming Embedded Systems
Michael Barr and Anthony Massa
4.3
If you have programming experience and a familiarity with C--the dominant language in embedded systems--Programming Embedded Systems, Second Edition is exactly what you need to get started with embedded software. This software is ubiquitous, hidden away inside our watches, DVD players, mobile phones, anti-lock brakes, and even a few toasters. The military uses embedded software to guide missiles, detect enemy aircraft, and pilot UAVs. Communication satellites, deep-space probes, and many medical instruments would have been nearly impossible to create without embedded software. The first edition of Programming Embedded Systems taught the subject to tens of thousands of people around the world and is now considered the bible of embedded programming. This second edition has been updated to cover all the latest hardware designs and development methodologies. The techniques and code examples presented here are directly applicable to real-world embedded software projects of all sorts. Examples use the free GNU software programming tools, the eCos and Linux operating systems, and a low-cost hardware platform specially developed for this book. If you obtain these tools along with Programming Embedded Systems, Second Edition, you'll have a full environment for exploring embedded systems in depth. But even if you work with different hardware and software, the principles covered in this book apply. Whether you are new to embedded systems or have done embedded work before, you'll benefit from the topics in this book, which include:
How building and loading programs differ from desktop or server computers Basic debugging techniques--a critical skill when working with minimally endowed embedded systems Handling different types of memory Interrupts, and the monitoring and control of on-chip and external peripherals Determining whether you have real-time requirements, and whether your operating system and application can meet those requirements Task synchronization with real-time operating systems and embedded Linux Optimizing embedded software for size, speed, and power consumption Working examples for eCos and embedded Linux So whether you're writing your first embedded program, designing the latest generation of hand-held whatchamacalits, or managing the people who do, this book is for you. Programming Embedded Systems will help you develop the knowledge and skills you need to achieve proficiency with embedded software. Praise for the first edition: "This lively and readable book is the perfect introduction for those venturing into embedded systems software development for the first time. It provides in one place all the important topics necessary to orient programmers to the embedded development process. --Lindsey Vereen, Editor-in-Chief, Embedded Systems Programming
…
Cover unavailable
44
MicroC/OS-II: The Real Time Kernel
Jean J. Labrosse
4.3
MicroC/OS II Second Edition describes the design and implementation of the MicroC/OS-II real-time operating system (RTOS). In addition to its value as a reference to the kernel, it is an extremely detailed and highly readable design study particularly useful to the embedded systems student. While documenting the design and implementation of the kernel, the book also walks the reader through the many related development issues: how to adapt the kernel for a new microprocessor, how to install the kernel, and how to structure the applications that run on the kernel. This edition features documentation for several important new features of the software, including new real-time services, floating points, and coding conventions. The accompanying CDROM includes complete code for the MicroC/OS-II kernel.
…
Cover unavailable
45
Computer Organization and Embedded Systems
Carl Hamacher
4.2
The sixth edition of this book covers the key topics in computer organization and embedded systems. It presents hardware design principles and shows how hardware design is influenced by the requirements of software. The book carefully explains the main principles supported by examples drawn from commercially available processors. The book is suitable for undergraduate electrical and computer engineering majors and computer science specialists. It is intended for a first course in computer organization and embedded systems.
…
Cover unavailable
46
C Programming FAQs: Frequently Asked Questions
Steve Summit
4.2
Summit furnishes you with answers to some of the most frequently asked questions in C. Extensively revised from his popular FAQ list on the Internet, more than 400 questions are answered to illustrate key points and to provide practical guidelines for programmers. C Programming FAQs is a welcomed reference for all C programmers, providing accurate answers, insightful explanations, and clarification of fine points along with numerous code examples. Highlights How-to-manual covering the C language in a practical, nuts-and-bolts way Concise answers to more than 400 most frequently asked questions with definitively correct answers Description of real problems that crop up when writing actual programs Clarification of widely misunderstood issues: subtle portability problems, proper language usage, system-specific issues.
…
Cover unavailable
47
Embedded Systems Architecture: Explore architectural concepts, pragmatic design patterns, and best practices to produce robust systems
Daniele Lacamera
4.2
Cover unavailable
48
Embedded Systems: Real-Time Interfacing to Arm(r) Cortex(tm)-M Microcontrollers
Jonathan W. Valvano
4.2
This book, published August 2016 as a fifth edition 3rd printing, is the second in a series of three books that teach the fundamentals of embedded systems as applied to ARM Cortex-M microcontrollers. The three books are primarily written for undergraduate electrical and computer engineering students. They could also be used for professionals learning the ARM platform. The first book Embedded Systems: Introduction to ARM Cortex-M Microcontrollers is an introduction to computers and interfacing focusing on assembly language and C programming. This second book focuses on interfacing and system-level design. The third book Embedded Systems: Real-Time Operating Systems for ARM Cortex-M Microcontrollers is an advanced book focusing on operating systems, high-speed interfacing, control systems, and robotics. An embedded system is a system that performs a specific task and has a computer embedded inside. Topics include design, verification, hardware/software synchronization, interfacing devices to the computer, timing diagrams, real-time systems, data collection and processing, motor control, analog and digital filters, real-time signal processing, low-power design, and the internet of things. In general, the area of embedded systems is an important and growing discipline within electrical and computer engineering. The educational market of embedded system is dominated by simple microcontrollers like the PIC, 9S12, and 8051. This is because of their market share, low cost, and historical dominance. However, as problems become more complex, so must the systems that solve them. A number of embedded system paradigms must shift in order to accommodate this growth in complexity. First, the number of calculations per second will increase from about 1 million/sec to 1 billion/sec. Similarly, the number of lines of software code will also increase from thousands to millions. Thirdly, systems will involve multiple microcontrollers supporting many simultaneous operations. Lastly, the need for system verification will continue to grow as these systems are deployed into safety critical applications. These changes are more than a simple growth in size and bandwidth. These systems must employ parallel programming, DMA synchronization, real-time operating systems, fault tolerant design, priority interrupt handling, and networking. Consequently, it will be important to provide our students with these types of design experiences. The ARM platform is both low cost and provides the high performance features required in future embedded systems. The ARM market share is currently large and growing. Furthermore, students trained on the ARM will be equipped to design systems across the complete spectrum from simple to complex. The purpose of writing this book at this time is to bring engineering education into the 21st century. This book employs many approaches to learning. It will not include an exhaustive recapitulation of the information in data sheets. First, it begins with basic fundamentals, which allows the reader to solve new problems with new technology. Second, the book presents many detailed design examples. These examples illustrate the process of design. There are multiple structural components that assist learning. Checkpoints, with answers in the back, are short easy to answer questions providing immediate feedback while reading. Simple homework provide more detailed learning opportunities. The book includes an index and a glossary so that information can be searched. The most important learning experience in a class like this are of course the laboratories. Each chapter has suggested lab assignments. More detailed lab descriptions are available on the web. The book will cover embedded systems for the ARM Cortex-M with specific details on the TM4C123, and TM4C1294. Although the solutions are specific for the Tiva TM4C, it will be possible to use this book for other ARM derivatives.
…
Cover unavailable
49
ARM® Cortex® M4 Cookbook
Dr. Mark Fisher
4.2
Cover unavailable
50
Computers In Spaceflight: The NASA Experience
James Tomayk
4.2
Cover unavailable
51
C Traps and Pitfalls
Andrew Koenig
4.2
Even C experts come across problems that require days of debugging to fix. This book helps to prevent such problems by showing how C programmers get themselves into trouble. Each of the book's many examples has trapped a professional programmer.
Cover unavailable
52
Microprocessors and Microcomputer-Based System Design
Mohamed Rafiquzzaman
4.2
Microprocessors and Microcomputer-Based System Design, Second Edition, builds on the concepts of the first edition. It discusses the basics of microprocessors, various 32-bit microprocessors, the 8085 microprocessor, the fundamentals of peripheral interfacing, and Intel and Motorola microprocessors. This edition includes new topics such as floating-point arithmetic, Program Array Logic, and flash memories. It covers the popular Intel 80486/80960 and Motorola 68040 as well as the Pentium and PowerPC microprocessors. The final chapter presents system design concepts, applying the design principles covered in previous chapters to sample problems.
…
Cover unavailable
53
Embedded Systems with Arm Cortex-M3 Microcontrollers in Assembly Language and C
Yifeng Zhu
4.2
This book introduces basic programming of ARM Cortex chips in assembly language and the fundamentals of embedded system design. It presents data representations, assembly instruction syntax, implementing basic controls of C language at the assembly level, and instruction encoding and decoding. The book also covers many advanced components of embedded systems, such as software and hardware interrupts, general purpose I/O, LCD driver, keypad interaction, real-time clock, stepper motor control, PWM input and output, digital input capture, direct memory access (DMA), digital and analog conversion, and serial communication (USART, I2C, SPI, and USB). The book has the following features: Emphasis on structured programming and top-down modular design in assembly language Line-by-line translation between C and ARM assembly for most example codes Mixture of C and assembly languages, such as a C program calling assembly subroutines, and an assembly program calling C subroutines Implementation of context switch between multiple concurrently running tasks according to a round-robin scheduling algorithm"
…
Cover unavailable
54
Pointers on C
Kenneth Reek
4.2
Designed for professionals and advanced students, Pointers on C provides a comprehensive resource for those needing in-depth coverage of the C programming language. An extensive explanation of pointer basics and a thorough exploration of their advanced features allows programmers to incorporate the power of pointers into their C programs. Complete coverage, detailed explanations of C programming idioms, and thorough discussion of advanced topics makes Pointers on C a valuable tutorial and reference for students and professionals alike. Highlights: *Provides complete background information needed for a thorough understanding of C. *Covers pointers thoroughly, including syntax, techniques for their effective use and common programming idioms in which they appear. *Compares different methods for implementing common abstract data structures. *Offers an easy, conversant writing style to clearly explain difficult topics, and contains numerous illustrations and diagrams to help visualize complex concepts. *Includes Programming Tips, discussing efficiency, portability, and software engineering issues, and warns of common pitfalls using Caution! Sections. *Describes every function on the st
…
Cover unavailable
55
Embedded C Coding Standard
Michael Barr
4.2
Barr Group's Embedded C Coding Standard was developed from the ground up to minimize bugs in firmware, by focusing on practical rules that keep bugs out, while also improving the maintainability and portability of embedded software. The coding standard book details a set of guiding principles as well as specific naming conventions and other rules for the use of data types, functions, preprocessor macros, variables and much more. Individual rules that have been demonstrated to reduce or eliminate certain types of bugs are highlighted.
…
Cover unavailable
56
Programming the Beaglebone Black: Getting Started with JavaScript and Bonescript
Simon Mon
4.2
Program your own BeagleBone Black projects! Build creative BeagleBone Black devices--no prior programming or electronics experience required. In Programming the BeagleBone Black, electronics guru Simon Monk explains essential application development methods through straightforward directions and cool downloadable examples. Discover how to navigate the board, write and debug code, use expansion capes, and control external hardware. Easy-to-follow plans show you how to wire up and program a Web-controlled roving robot and an e-mail notifier that lights an incandescent lamp.
Set up the BeagleBone Black and explore its features Connect to your computer via USB or Ethernet Use the BeagleBone Black as a stand-alone PC Write and execute BoneScript code Use JavaScript functions and timers Perform analog and digital I/O Work with expansion capes and modules Design Web interfaces that control electronics Assemble and program a robot and an e-mail notifier
…
Cover unavailable
57
Mastering Embedded Linux Programming -
Chris Simmonds
4.2
Linux is a highly-respected open source operating system that can scale from small devices to large supercomputers. This book describes how to employ Linux at the bottom end of the scale to create efficient, secure, and cost-effective products.
Embedded Linux runs many of the devices we use every day, from smart TVs to WiFi routers, test equipment to industrial controllers - all of them have Linux at their heart. Linux is a core technology in the implementation of the inter-connected world of the Internet of Things.
The comprehensive guide shows you the technologies and techniques required to build Linux into embedded systems. You will begin by learning about the fundamental elements that underpin all embedded Linux projects: the toolchain, the bootloader, the kernel, and the root filesystem. You’ll see how to create each of these elements from scratch, and how to automate the process using Buildroot and the Yocto Project.
Moving on, you’ll find out how to implement an effective storage strategy for flash memory chips, and how to install updates to the device remotely once it is deployed. You’ll also get to know the key aspects of writing code for embedded Linux, such as how to access hardware from applications, the implications of writing multi-threaded code, and techniques to manage memory in an efficient way. The final chapters show you how to debug your code, both in applications and in the Linux kernel, and how to profile the system so that you can look out for performance bottlenecks.
By the end of the book, you will have a complete overview of the steps required to create a successful embedded Linux system.
…
Cover unavailable
58
Arm Assembly Language: Fundamentals and Techniques
William Hohl
4.2
Written by the director of ARM's worldwide academic program, this volume gives computer science professionals and students an edge, regardless of their preferred coding language. For those with some basic background in digital logic and high-level programming, the book examines code relevant to hardware and peripherals found on today's microcontrollers and looks at situations all programmers will eventually encounter.
The book's carefully chosen examples teach easily transferrable skills that will help readers optimize routines and significantly streamline coding, especially in the embedded space.
This book is easily adaptable for classroom use. Instructors can access features that include a solutions manual, assembly language basics, problems, and actual code. The book also provides access to a fully functional evaluation version of the RealView Microcontroller Development Kit from Keil.
While it is still an important skill, getting good instruction in assembly language is not easy. The availability of languages such as C and Java foster the belief that engineers and programmers need only address problems at the highest levels of a program's operation. Yet, even modern coding methods, when done well, require an understanding of basic assembly methods such as those gained by learning ARM. Certain features that are the product of today's hardware, such as coprocessors or saturated math operations, can be accessed only through the hardware's native instructions. For that matter, any programmer wishing to achieve results as exact as his or her intentions needs to possess a mastery of machine code basics as taught in the pages of this book.
Of the 13 billion microprocessor-based chips shipped in the last year, nearly 3 billion were ARM-based, making operational knowledge of ARM an essential component of any programmer's tool kit. That it can be applied with most any language makes it invaluable.
…
Cover unavailable
59
Embedded Robotics: Mobile Robot Design and Applications with Embedded Systems
Thomas Bräunl
4.2
This book presents a unique combination of mobile robots and embedded systems, from introductory to intermediate level. It is structured in three parts, dealing with embedded systems (hardware and software design, actuators, sensors, PID control, multitasking), mobile robot design (driving, balancing, walking, and flying robots), and mobile robot applications (mapping, robot soccer, genetic algorithms, neural networks, behavior-based systems, and simulation). The book is written as a text for courses in computer science, computer engineering, IT, electronic engineering, and mechatronics, as well as a guide for robot hobbyists and researchers.
…
Cover unavailable
60
MATLAB for Engineers
Adrian Biran, Moshe Breiner
4.2
Divided into two parts, this book provides an introduction to MATLAB, with the idea that the reader will learn the program by trying the commands described in the text and by further experimenting with them. The second part of the book covers applications to specific engineering fields - strength analysis, machine design, vibrations, signal processing and control engineering - and demonstrates how MATLAB can solve engineering problems in these areas.
…
Cover unavailable
61
Verilog Hdl
Samir Palnitkar
4.2
Cover unavailable
62
Embedded Systems Building Blocks
Jean J. Labrosse
4.2
This text provides basic, real-time systems modules and explains how to use and modify them. It provides common designs for all applications such as keyboard, interaction, date and time, and event timing.
Cover unavailable
63
The Art of Designing Embedded Systems
Jack Ganssle
4.2
Jack Ganssle has been forming the careers of embedded engineers for 20+ years. He has done this with four books, over 500 articles, a weekly column, and continuous lecturing. Technology moves fast and since the first edition of this best-selling classic much has changed. The new edition will reflect the author's new and ever evolving philosophy in the face of new technology and realities.
Now more than ever an overarching philosophy of development is needed before just sitting down to build an application. Practicing embedded engineers will find that Jack provides a high-level strategic plan of attack to the often times chaotic and ad hoc design and development process. He helps frame and solve the issues an engineer confronts with real-time code and applications, hardware and software coexistences, and streamlines detail management.
CONTENTS: Chapter 1 - Introduction Chapter 2 The Project Chapter 3 The Code Chapter 4 Real Time Chapter 5 The Real World Chapter 6 Disciplined Development Appendix A A Firmware Standard Appendix B - A Simple Drawing System Appendix C A Boss’s Guide to Process
*Authored by Jack Ganssle, Tech Editor of Embedded Systems Programming and weekly column on embedded.com *Keep schedules in check as projects and codes grow by taking time to understand the project beforehand *Understand how cost/benefit coexists with design and development
…
Cover unavailable
64
Embedded Software Development for Safety-Critical Systems, Second Edition
Chris Hobbs
4.2
This is a book about the development of dependable, embedded software. It is for systems designers, implementers, and verifiers who are experienced in general embedded software development, but who are now facing the prospect of delivering a software-based system for a safety-critical application. It is aimed at those creating a product that must satisfy one or more of the international standards relating to safety-critical applications, including IEC 61508, ISO 26262, EN 50128, EN 50657, IEC 62304, or related standards.
Of the first edition, Stephen Thomas, PE, Founder and Editor of FunctionalSafetyEngineer.com said, "I highly recommend Mr. Hobbs' book."
…
Cover unavailable
65
Designing Embedded Systems with PIC Microcontrollers: Principles and Applications
Tim Wilmshurst
4.2
PIC microcontrollers are used worldwide in commercial and industrial devices. The 8-bit PIC which this book focuses on is a versatile work horse that completes many designs. An engineer working with applications that include a microcontroller will no doubt come across the PIC sooner rather than later. It is a must to have a working knowledge of this 8-bit technology. This book takes the novice from introduction of embedded systems through to advanced development techniques for utilizing and optimizing the PIC family of microcontrollers in your device. To truly understand the PIC, assembly and C programming language must be understood. The author explains both with sample code and examples, and makes the transition from the former to the latter an easy one. This is a solid building block for future PIC endeavors. New to the 2nd Edition: *Include end of chapter questions/activities moving from introductory to advanced *More worked examples *Includes PowerPoint slides for instructors *Includes all code snips on a companion web site for ease of use *A survey of 16/32-bit PICs *A project using ZigBee
*Covers both assembly and C programming languages, essential for optimizing the PIC *Amazing breadth of coverage moving from introductory to advanced topics covering more and more complex microcontroller families *Details MPLAB and other Microchip design tools
…
Cover unavailable
66
Real-Time C++: Efficient Object-Oriented and Template Microcontroller Programming
Christopher Kormanyos
4.2
With this book, Christopher Kormanyos delivers a highly practical guide to programming real-time embedded microcontroller systems in C++. It is divided into three parts plus several appendices. Part I provides a foundation for real-time C++ by covering language technologies, including object-oriented methods, template programming and optimization. Next, part II presents detailed descriptions of a variety of C++ components that are widely used in microcontroller programming. It details some of C++ s most powerful language elements, such as class types, templates and the STL, to develop components for microcontroller register access, low-level drivers, custom memory management, embedded containers, multitasking, etc. Finally, part III describes mathematical methods and generic utilities that can be employed to solve recurring problems in real-time C++. The appendices include a brief C++ language tutorial, information on the real-time C++ development environment and instructions for building GNU GCC cross-compilers and a microcontroller circuit.
For this second edition, the most recent specification of C++14 in ISO/IEC 14882:2014 is used throughout the text. Several sections on new C++14 functionality have been added, and various others reworked to reflect changes in the standard. Also two new sample projects are introduced, and various user suggestions have been incorporated. To facilitate portability, no libraries other than those specified in the language standard itself are used. Efficiency is always in focus and numerous examples are backed up with real-time performance measurements and size analyses that quantify the true costs of the code down to the very last byte and microsecond.
The target audience of this book mainly consists of students and professionals interested in real-time C++. Readers should be familiar with C or another programming language and will benefit most if they have had some previous experience with microcontroller electronics and the performance and size issues prevalent in embedded systems programming.
"
…
Cover unavailable
67
Embedded Systems: Real-Time Operating Systems for Arm Cortex M Microcontrollers
Jonathan Valvano
4.2
This book is self-published and is printed on demand. The original ISBN was generated in 2012, but if you purchase the book new from CreateSpace or Amazon you will get the new version, which was uploaded January 3, 2019. This book, now in its fifth printing (January 2019), is the third in a series of three books that teach the fundamentals of embedded systems as applied to ARM Cortex-M microcontrollers. This book specifically covers the TM4C and MSP432 microcontrollers; however, it could be used with any Cortex-M microcontroller. This third volume is primarily written for senior undergraduate or first-year graduate electrical and computer engineering students. It could also be used for professionals wishing to design or deploy a real-time operating system onto an ARM platform. The first book Embedded Systems: Introduction to the ARM Cortex-M Microcontroller is an introduction to computers and interfacing focusing on assembly language and C programming. The second book Embedded Systems: Real-Time Interfacing to ARM Cortex-M Microcontroller focuses on interfacing and the design of embedded systems. This third book is an advanced book focusing on operating systems, high-speed interfacing, control systems, robotics, Bluetooth, and the Internet of Things (IoT). Rather than buying and deploying an existing OS, the focus is on fundamental principles, so readers can write their-own OS. Embedded systems are a ubiquitous component of our everyday lives. We interact with hundreds of tiny computers every day that are embedded into our houses, our cars, our toys, and our work. As our world has become more complex, so have the capabilities of the microcontrollers embedded into our devices. An embedded system is a system that performs a specific task and has a computer embedded inside. A system is comprised of components and interfaces connected together for a common purpose. Specific topics include microcontrollers, design, verification, hardware/software synchronization, interfacing devices to the computer, real-time operating systems, data collection and processing, motor control, analog filters, digital filters, and real-time signal processing. This book employs many approaches to learning. It will not include an exhaustive recapitulation of the information in data sheets. First, it begins with basic fundamentals, which allows the reader to solve new problems with new technology. Second, the book presents many detailed design examples. These examples illustrate the process of design. There are multiple structural components that assist learning. Checkpoints, with answers in the back, are short easy to answer questions providing immediate feedback while reading. Simple homework questions provide more detailed learning opportunities. The book includes an index and a glossary so that information can be searched. The most important learning experiences in a class like this are of course the laboratories. More detailed lab descriptions are available on the web. Specifically for Volume 1, look at the lab assignments for EE319K. For Volume 2 refer to the EE445L labs, and for this volume, look at the lab assignments for EE445M/EE380L.6. There is a web site accompanying this book http: //users.ece.utexas.edu/ valvano/arm. Posted here are Keil uVision projects for each the example programs in the book. You will also find data sheets and Excel spreadsheets relevant to the material in this book. The book will cover embedded systems for the ARM Cortex-M with specific details on the MSP432, TM4C123, and TM4C1294. Most of the topics can be run on any of these Texas Instruments LaunchPads. Ethernet examples can be run on the TM4C1294. Although the solutions are specific for the MSP432/TM4C families, it will be possible to use this book for other Cortex-M derivatives.
…
Cover unavailable
68
Principles of Cyber-Physical Systems
Rajeev Alur
4.2
A foundational text that offers a rigorous introduction to the principles of design, specification, modeling, and analysis of cyber-physical systems.
A cyber-physical system consists of a collection of computing devices communicating with one another and interacting with the physical world via sensors and actuators in a feedback loop. Increasingly, such systems are everywhere, from smart buildings to medical devices to automobiles. This textbook offers a rigorous and comprehensive introduction to the principles of design, specification, modeling, and analysis of cyber-physical systems. The book draws on a diverse set of subdisciplines, including model-based design, concurrency theory, distributed algorithms, formal methods of specification and verification, control theory, real-time systems, and hybrid systems, explaining the core ideas from each that are relevant to system design and analysis.
The book explains how formal models provide mathematical abstractions to manage the complexity of a system design. It covers both synchronous and asynchronous models for concurrent computation, continuous-time models for dynamical systems, and hybrid systems for integrating discrete and continuous evolution. The role of correctness requirements in the design of reliable systems is illustrated with a range of specification formalisms and the associated techniques for formal verification. The topics include safety and liveness requirements, temporal logic, model checking, deductive verification, stability analysis of linear systems, and real-time scheduling algorithms. Principles of modeling, specification, and analysis are illustrated by constructing solutions to representative design problems from distributed algorithms, network protocols, control design, and robotics.
This book provides the rapidly expanding field of cyber-physical systems with a long-needed foundational text by an established authority. It is suitable for classroom use or as a reference for professionals.
…
Cover unavailable
69
Arm Assembly Language: Fundamentals and Techniques, Second Edition
William Hohl, Christopher Hinds
4.2
Delivering a solid introduction to assembly language and embedded systems, ARM Assembly Language: Fundamentals and Techniques, Second Edition continues to support the popular ARM7TDMI, but also addresses the latest architectures from ARM, including Cortex(TM)-A, Cortex-R, and Cortex-M processors--all of which have slightly different instruction sets, programmer's models, and exception handling.
Featuring three brand-new chapters, a new appendix, and expanded coverage of the ARM7(TM), this edition:
Discusses IEEE 754 floating-point arithmetic and explains how to program with the IEEE standard notation Contains step-by-step directions for the use of Keil(TM) MDK-ARM and Texas Instruments (TI) Code Composer Studio(TM) Provides a resource to be used alongside a variety of hardware evaluation modules, such as TI's Tiva Launchpad, STMicroelectronics' iNemo and Discovery, and NXP Semiconductors' Xplorer boards Written by experienced ARM processor designers, ARM Assembly Language: Fundamentals and Techniques, Second Edition covers the topics essential to writing meaningful assembly programs, making it an ideal textbook and professional reference.
…
Cover unavailable
70
Getting Started with Bluetooth Low Energy: Tools and Techniques for Low-Power Networking
Kevin Townsend, Carles Cufí, Akiba, and Robert Davidson
4.2
With Bluetooth Low Energy (BLE), smart devices are about to become even smarter. This practical guide demonstrates how this exciting wireless technology helps developers build mobile apps that share data with external hardware, and how hardware engineers can gain easy and reliable access to mobile operating systems.
This book provides a solid, high-level overview of how devices use BLE to communicate with each other. You'll learn useful low-cost tools for developing and testing BLE-enabled mobile apps and embedded firmware and get examples using various development platforms--including iOS and Android for app developers and embedded platforms for product designers and hardware engineers.
Understand how data is organized and transferred by BLE devices Explore BLE's concepts, key limitations, and network topology Dig into the protocol stack to grasp how and why BLE operates Learn how BLE devices discover each other and establish secure connections Set up the tools and infrastructure for BLE application development Get examples for connecting BLE to iPhones, iPads, Android devices, and sensors Develop code for a simple device that transmits heart rate data to a mobile device
…
Cover unavailable
71
Programming and Customizing the Multicore Propeller Microcontroller: The Official Guide
André LaMothe
4.2
Publisher's Note: Products purchased from Third Party sellers are not guaranteed by the publisher for quality, authenticity, or access to any online entitlements included with the product.The Only Official Guide to the Parallax Multicore Propeller MicrocontrollerWritten by a team of Propeller experts, this authoritative guide shows you how to realize your design concepts by taking full advantage of the multicore Propeller microcontroller's unique architecture. The book begins with a review of the Propeller hardware, software, and Spin language so you can get started right away. Programming and Customizing the Multicore Propeller Microcontroller: The Official Guide is filled with a wide variety of step-by-step, hands-on projects. Put your ideas into production when you learn how to:
Debug code for multiple cores Understand how the Propeller interacts with different sensors Wirelessly network Propeller chips Build a balancing robot and control it with computer vision Develop networking applications using an off-the-shelf Ethernet chip Create a portable multivariable GPS tracking and data logging device Use the Propeller as a remote virtual peripheral for media applications Create a Propeller-powered HVAC green house model Synthesize speech with the Propeller Experience more of the process at mhprofessional.com/propeller
…
Cover unavailable
72
Embedded Systems Fundamentals with ARM Cortex-M based Microcontrollers: A Practical Approach
Alexander G Dean
4.1
Cover unavailable
73
Real-Time Systems
Jane W. S. Liu
4.1
Written by a renowned authority, this advanced text comprehensively covers the advances in real-time operating systems and communications networks, emphasizing research results that have been adopted in state-of-the-art systems.
Cover unavailable
74
Advanced C Programming by Example
John W. Perry
4.1
Cover unavailable
75
Real-Time Concepts for Embedded Systems
Qing Li and Caroline Yao
4.1
'... a very good balance between the theory and practice of real-time embedded system designs.' --Jun-ichiro itojun Hagino, Ph.D., Research Laboratory, Internet Initiative Japan Inc., IETF IPv6 Operations Working Group (v6ops) co-chair 'A cl
Cover unavailable
76
PIC Microcontroller and Embedded Systems
Muhammad Ali Mazidi, Rolin D. McKinlay, Janice G. Mazidi
4.1
"The 8051 Microprocessor: A Systems Approach" emphasizes the programming and interfacing of the 8051. Using a systematic, step-by-step approach, the text covers various aspects of 8051, including C and Assembly language programming and interfacing. Throughout each chapter, a wealth of examples and sample programs clarify the concepts, offering an opportunity to learn by doing. Review questions at the end of each section help reinforce the main points covered in the chapter.
…
Cover unavailable
77
FPGA Prototyping by VHDL Examples: Xilinx Microblaze MCS Soc
Pong P. Chu
4.1
A hands-on introduction to FPGA prototyping and SoC design
This Second Edition of the popular book follows the same "learning-by-doing" approach to teach the fundamentals and practices of VHDL synthesis and FPGA prototyping. It uses a coherent series of examples to demonstrate the process to develop sophisticated digital circuits and IP (intellectual property) cores, integrate them into an SoC (system on a chip) framework, realize the system on an FPGA prototyping board, and verify the hardware and software operation. The examples start with simple gate-level circuits, progress gradually through the RT (register transfer) level modules, and lead to a functional embedded system with custom I/O peripherals and hardware accelerators. Although it is an introductory text, the examples are developed in a rigorous manner, and the derivations follow strict design guidelines and coding practices used for large, complex digital systems.
The new edition is completely updated. It presents the hardware design in the SoC context and introduces the hardware-software co-design concept. Instead of treating examples as isolated entities, the book integrates them into a single coherent SoC platform that allows readers to explore both hardware and software "programmability" and develop complex and interesting embedded system projects. The revised edition:
Adds four general-purpose IP cores, which are multi-channel PWM (pulse width modulation) controller, I2C controller, SPI controller, and XADC (Xilinx analog-to-digital converter) controller. Introduces a music synthesizer constructed with a DDFS (direct digital frequency synthesis) module and an ADSR (attack-decay-sustain-release) envelop generator. Expands the original video controller into a complete stream-based video subsystem that incorporates a video synchronization circuit, a test pattern generator, an OSD (on-screen display) controller, a sprite generator, and a frame buffer. Introduces basic concepts of software-hardware co-design with Xilinx MicroBlaze MCS soft-core processor. Provides an overview of bus interconnect and interface circuit. Introduces basic embedded system software development. Suggests additional modules and peripherals for interesting and challenging projects. The FPGA Prototyping by VHDL Examples, Second Edition makes a natural companion text for introductory and advanced digital design courses and embedded system course. It also serves as an ideal self-teaching guide for practicing engineers who wish to learn more about this emerging area of interest.
…
Cover unavailable
78
Linux Device Drivers Development: Develop customized drivers for embedded Linux
John Madie
4.1
Cover unavailable
79
Real Time UML Workshop for Embedded Systems (Embedded Technology)
Bruce Powel Douglass
4.1
Cover unavailable
80
Practical Arduino: Cool Projects for Open Source Hardware
Jonathan Oxer
4.1
Create your own Arduino-based designs, gain in-depth knowledge of the architecture of Arduino, and learn the user-friendly Arduino language all in the context of practical projects that you can build yourself at home. Get hands-on experience using a variety of projects and recipes for everything from home automation to test equipment.
Arduino has taken off as an incredibly popular building block among ubicomp (ubiquitous computing) enthusiasts, robotics hobbyists, and DIY home automation developers. Authors Jonathan Oxer and Hugh Blemings provide detailed instructions for building a wide range of both practical and fun Arduino-related projects, covering areas such as hobbies, automotive, communications, home automation, and instrumentation.
Take Arduino beyond "blink" to a wide variety of projects from simple to challenging Hands-on recipes for everything from home automation to interfacing with your car engine management system Explanations of techniques and references to handy resources for ubiquitous computing projects Supplementary material includes a circuit schematic reference, introductions to a range of electronic engineering principles and general hints & tips. These combine with the projects themselves to make Practical Arduino: Cool Projects for Open Source Hardware an invaluable reference for Arduino users of all levels. You'll learn a wide variety of techniques that can be applied to your own projects.
…
Cover unavailable
81
Programming Embedded Systems in C and C++
Michael Barr
4.1
Embedded software is in almost every electronic device designed today. There is software hidden away inside our watches, microwaves, VCRs, cellular telephones, and pagers; the military uses embedded software to guide smart missiles and detect enemy aircraft; communications satellites, space probes, and modern medicine would be nearly impossible without it. Of course, someone has to write all that software, and there are thousands of computer scientists, electrical engineers, and other professionals who actually do.
Each embedded system is unique and highly customized to the application at hand. As a result, embedded systems programming is a widely varying field that can take years to master. However, if you have some programming experience and are familiar with C or C++, you're ready to learn how to write embedded software. The hands-on, no-nonsense style of this book will help you get started by offering practical advice from someone who's been in your shoes and wants to help you learn quickly.
The techniques and code examples presented here are directly applicable to real-world embedded software projects of all sorts. Even if you've done some embedded programming before, you'll still benefit from the topics in this book, which include:
Testing memory chips quickly and efficiently Writing and erasing Flash memory Verifying nonvolatile memory contents with CRCs Interfacing to on-chip and external peripherals Device driver design and implementation Optimizing embedded software for size and speed So whether you're writing your first embedded program, designing the latest generation of hand-held whatchamacalits, or simply managing the people who do, this book is for you.
…
Cover unavailable
82
Getting Started with Intel Galileo
Matt Richardson
4.1
Getting Started with the Intel Galileo gets you up and running with this new, x86-powered board that was developed in collaboration between Arduino and Intel. You'll learn how to set it up, connect it to your computer, and begin programming. You'll learn how to build electronics projects around the Galileo, and you'll explore the features and power that make it different from all the boards that came before.
Developed in collaboration with the Intel Galileo team, and in consultation with members of the Arduino team, this is the definitive introduction to Intel's new board for makers.
…
Cover unavailable
83
Mastering Kali Linux
Vijay Kumar Velu and Robert Begg
4.1
n this age, where online information is at its most vulnerable, knowing how to execute the same attacks that hackers use to break into your system or network helps you plug the loopholes before it's too late and can save you countless hours and money. Kali Linux is a Linux distribution designed for penetration testing and security auditing. It is the successor to BackTrack, the world's most popular penetration testing distribution. Discover a variety of popular tools of penetration testing, such as information gathering, vulnerability identification, exploitation, privilege escalation, and covering your tracks. Packed with practical recipes, this useful guide begins by covering the installation of Kali Linux and setting up a virtual environment to perform your tests. You will then learn how to eavesdrop and intercept traffic on wireless networks, bypass intrusion detection systems, and attack web applications, as well as checking for open ports, performing data forensics, and much more. The book follows the logical approach of a penetration test from start to finish with many screenshots and illustrations that help to explain each tool in detail.
…
Cover unavailable
84
Rapid Prototyping of Digital Systems: Sopc Edition
J. O. Hamblen, T. S. Hall, et al.
4.1
Here is a laboratory workbook filled with interesting and challenging projects for digital logic design and embedded systems classes. The workbook introduces you to fully integrated modern CAD tools, logic simulation, logic synthesis using hardware description languages, design hierarchy, current generation field programmable gate array technology, and SoPC design. Projects cover such areas as serial communications, state machines with video output, video games and graphics, robotics, pipelined RISC processor cores, and designing computer systems using a commercial processor core.
…
Cover unavailable
85
Design Patterns for Embedded Systems in C: An Embedded Software Engineering Toolkit
Bruce Powel Douglass
4.1
Cover unavailable
86
Embedded System Design on a Shoestring: Achieving High Performance with a Limited Budget
Lewin Edwards
4.1
In this practical guide, experienced embedded engineer Lewin Edwards demonstrates faster, lower-cost methods for developing high-end embedded systems. With today's tight schedules and lower budgets, embedded designers are under greater pressure to deliver prototypes and system designs faster and cheaper. Edwards demonstrates how the use of the right tools and operating systems can make seemingly impossible deadlines possible.
Designer's Guide to Embedded Systems Development shares many advanced, in-the-trenches design secrets to help engineers achieve better performance on the job. In particular, it covers many of the newer design tools supported by the GPL (GNU Public License) system. Code examples are given to provide concrete illustrations of tasks described in the text. The general procedures are applicable to many possible projects based on any 16/32-bit microcontroller. The book covers choosing the right architecture and development hardware to fit the project; choosing an operating system and developing a toolchain; evaluating software licenses and how they affect a project; step-by-step building instructions for gcc, binutils, gdb and newlib for the ARM7 core used in the case study project; prototyping techniques using a custom printed circuit board; debugging tips; and portability considerations.
…
Cover unavailable
87
Embedded Programming with Android: Bringing Up an Android System from Scratch (Android Deep Dive)
Roger Ye
4.1
The First Practical, Hands-On Guide to Embedded System Programming for Android Today, embedded systems programming is a more valuable discipline than ever, driven by fast-growing, new fields such as wearable technology and the Internet of Things. In this concise guide, Roger Ye teaches all the skills you'll need to write the efficient embedded code necessary to make tomorrow's Android devices work. The first title in Addison-Wesley's new Android(TM) Deep Dive series for intermediate and expert Android developers, "Embedded Programming with Android(TM)" draws on Roger Ye's extensive experience with advanced projects in telecommunications and mobile devices. Step by step, he guides you through building a system with all the key components Android hardware developers must deliver to manufacturing. By the time you're done, you'll have the key programming, compiler, and debugging skills you'll need for real-world projects. First, Ye introduces the essentials of bare-metal programming: creating assembly language code that runs directly on hardware. Then, building on this knowledge, he shows how to use C to create hardware interfaces for booting a Linux kernel with the popular U-Boot bootloader. Finally, he walks you through using filesystem images to boot Android and learning to build customized ROMs to support any new Android device. Throughout, Ye provides extensive downloadable code you can run, explore, and adapt. You will Build a complete virtualized environment for embedded development Understand the workflow of a modern embedded systems project Develop assembly programs, create binary images, and load and run them in the Android emulator Learn what it takes to bring up a bootloader and operating system Move from assembler to C, and explore Android's goldfish hardware interfaces Program serial ports, interrupt controllers, real time clocks, and NAND flash controllers Integrate C runtime libraries Support exception handling and timing Use U-Boot to boot the kernel via NOR or NAND flash processes Gain in-depth knowledge for porting U-Boot to new environments Integrate U-Boot and a Linux kernel into an AOSP and CyanogenMod source tree Create your own Android ROM on a virtual Android device
…
Cover unavailable
88
Linux Device Driver Development Cookbook: Develop custom drivers for your embedded Linux applications
Rodolfo Giometti
4.1
Cover unavailable
89
Algorithms for Image Processing and Computer Vision
J. R. Parker
4.1
Programmers and software engineers are always in need of newer techniques and algorithms to manipulate and interpret images, whether they are working with MRI data, computer animation or satellite images. During the last several years, advances in the computer hardware and software have lead to algorithms and programming languages that allow for relatively sophisticated image processing among non-mathematicians. This book is an accessible cookbook of algorithms for some of today's most wanted image processing applications including morphing, Optical Character Recognition (OCR), and Symbol Recognition, that will save graphics programmers from many hours of lengthy mathematical solutions. Includes CD-ROM with... • Complete code for examples in the book • A gallery of images illustrating the results of advanced techniques • Free GNU C compiler-- allows readers to run source code regardless of platform.
…
Cover unavailable
90
123 Robotics Experiments for the Evil Genius
Myke Predko
4.1
Cover unavailable
91
Embedded Firmware Solutions: Development Best Practices for the Internet of Things
Vincent Zimmer, Jiming Sun, et al
4.1
Embedded Firmware Solutions is the perfect introduction and daily-use field guide--for the thousands of firmware designers, hardware engineers, architects, managers, and developers--to Intel s new firmware direction (including Quark coverage), showing how to integrate Intel(r) Architecture designs into their plans.
Featuring hands-on examples and exercises using Open Source codebases, like Coreboot and EFI Development Kit (tianocore) and Chromebook, this is the first book that combines a timely and thorough overview of firmware solutions for the rapidly evolving embedded ecosystem with in-depth coverage of requirements and optimization. What you'll learn Understand the key differences between PC and embedded ecosystems in terms of firmware needs.Thorough underpinning of Intel s firmware solutions.How to build a firmware stack for Quark.How to integrate FSP with a bootloader, by studying the hands-on example of Coreboot and UEFI.How to make a smart "build-it or buy-it" decision when starting a new embedded project. Who this book is for
Firmware designers and engineers, hardware engineers, software architects, and product development managers."
…
Cover unavailable
92
Atmel Arm Programming for Embedded Systems
Muhammad Ali Mazidi
4.0
Why Atmel ARM? The AVR is the most popular 8-bit microcontroller designed and marketed by the Atmel (now part of Microchip). Due to the popularity of ARM architecture, many semiconductor design companies are adopting the ARM as the CPU of choice in all their designs. This is the case with Atmel ARM. The Atmel SAM D is a Cortex M0+ chip. A major feature of the Atmel SAM D is its lower power consumption which makes it an ideal microcontroller for use in designing low power devices with IoT. It is an attempt to "bring Atmel AVR Ease-of-Use to ARM Cortex M0+ Based Microcontrollers." Why this book? We have a very popular AVR book widely used by many universities. This book attempts to help students and practicing engineers to move from AVR to ARM programming. It shows programming for interfacing of Atmel ARM SAM D to LCD, Serial COM port, DC motor, stepper motor, sensors, and graphics LCD. It also covers the detailed programming of Interrupts, ADC, DAC, and Timer features of Atmel ARM SAM D21 chip. All the programs in this book are tested using the SAM D21 trainer board with Keil and Atmel Studio IDE compiler. It must be noted that while Arduino Uno uses the Atmel 8-bit AVR microcontroller, the Arduino Zero uses the Atmel ARM SAMD21 chip. See our website: www.MicroDigitalEd.com
…
Cover unavailable
93
Arm System-On-Chip Architecture
Steve Furber
4.0
The future of the computer and communications industries is converging on mobile information appliances - phones, PDAs, laptops and other devices. The ARM is at the heart of this trend, leading the way in system-on-chip (SoC) development and becoming the processor core of choice for many embedded applications. System-on-chip technology is changing the way we use computers, but it also sets designers the very challenging problem of getting a complex SoC design right first time. ARM System-on-Chip Architecture introduces the concepts and methodologies employed in designing a system-on-chip based around a microprocessor core, and in designing the core itself. Extensive illustrations, based on the ARM, give practical substance to the design principles set out in the book, reinforcing the reader's understanding of how and why SoCs and microprocessors are designed as they are. ARM System-on-Chip Architecture: - presents and discusses the major issues of system-on-chip design, including memory hierarchy, caches, memory management, on-chip buses, on-chip debug and production test - provides an overview of the ARM processor family, enabling the reader to decide which ARM is best for the job in hand - describes the ARM and Thumb programming models, enabling the designer to begin to develop applications - covers all the latest ARM products and developments, including StrongARM, the ARM9 and ARM10 series of cores, and the ARM-based SoC components at the heart of Ericsson's Bluetooth technology, the Psion Series 5 PDA and Samsung's SGH2400 GSM handset - includes details on the AMULET asynchronous ARM cores and the AMULET3H asynchronous SoC subsystem ARM System-on-Chip Architecture is an essential handbook for system-on-chip designers using ARM processor cores and engineers working with the ARM. It can also be used as a course text for undergraduate and masters students of computer science, computer engineering and electrical engineering.
…
Cover unavailable
94
Hands-On RTOS with Microcontrollers: Building real-time embedded systems using FreeRTOS, STM32 MCUs, and SEGGER debug tools
Brian Amos
4.0
Cover unavailable
95
Embedded Systems Design: An Introduction to Processes, Tools, and Techniques
Arnold S. Berger
4.0
• Hardware/Software Partitioning • Cross-Platform Development • Firmware Debugging • Performance Analysis • Testing & Integration Get into embedded systems programming with a clear understanding of the development cycle and the specialized aspects of
Cover unavailable
96
Embedded Systems: Arm Programming and Optimization
Jason D. Bakos
4.0
Embedded Systems: ARM Programming and Optimization combines an exploration of the ARM architecture with an examination of the facilities offered by the Linux operating system to explain how various features of program design can influence processor performance. It demonstrates methods by which a programmer can optimize program code in a way that does not impact its behavior but improves its performance. Several applications, including image transformations, fractal generation, image convolution, and computer vision tasks, are used to describe and demonstrate these methods. From this, the reader will gain insight into computer architecture and application design, as well as gain practical knowledge in the area of embedded software design for modern embedded systems.
Covers three ARM instruction set architectures, the ARMv6 and ARMv7-A, as well as three ARM cores, the ARM11 on the Raspberry Pi, Cortex-A9 on the Xilinx Zynq 7020, and Cortex-A15 on the NVIDIA Tegra K1 Describes how to fully leverage the facilities offered by the Linux operating system, including the Linux GCC compiler toolchain and debug tools, performance monitoring support, OpenMP multicore runtime environment, video frame buffer, and video capture capabilities Designed to accompany and work with most of the low cost Linux/ARM embedded development boards currently available
…
Cover unavailable
97
Real-Time Embedded Components And Systems: With Linux and RTOS
Sam Siewert
4.0
Cover unavailable
98
Introduction to Embedded Systems - A Cyber Physical Systems Approach - Second Edition
Edward Ashford Lee and Sanjit Arunkumar Seshia
4.0
This book strives to identify and introduce the durable intellectual ideas of embedded systems as a technology and as a subject of study. The emphasis is on modeling, design, and analysis of cyber-physical systems, which integrate computing, networking, and physical processes.
Cover unavailable
99
So You Wanna Be an Embedded Engineer: The Guide to Embedded Engineering, from Consultancy to the Corporate Ladder
Edwards Lewi
4.0
In this new, highly practical guide, expert embedded designer and manager Lewin Edwards answers the question, OC How do I become an embedded engineer Embedded professionals agree that there is a treacherous gap between graduating from school and becoming an effective engineer in the workplace, and that there are few resources available for newbies to turn to when in need of advice and direction. This book provides that much-needed guidance for engineers fresh out of school, and for the thousands of experienced engineers now migrating into the popular embedded arena. This book helps new embedded engineers to get ahead quickly by preparing them for the technical and professional challenges they will face. Detailed instructions on how to achieve successful designs using a broad spectrum of different microcontrollers and scripting languages are provided. The author shares insights from a lifetime of experience spent in-the-trenches, covering everything from small vs. large companies, and consultancy work vs. salaried positions, to which types of training will prove to be the most lucrative investments. This book provides an expertOCOs authoritative answers to questions that pop up constantly on Usenet newsgroups and in break rooms all over the world. * An approachable, friendly introduction to working in the world of embedded design * Full of design examples using the most common languages and hardware that new embedded engineers will be likely to use every day * Answers important basic questions on which are the best products to learn, trainings to get, and kinds of companies to work for"
…
Cover unavailable
100
Serial Port Complete: COM Ports, USB Virtual COM Ports, and Ports for Embedded Systems
Jan Axelson
4.0
PC COM ports, USB virtual COM ports, and ports in embedded systems are all addressed in this updated guide to programming, interfacing, and using serial ports. Topics include using .NET’s SerialPort class for COM-port communications on PCs; upgrading existing RS-232 designs to USB or wireless networks; and creating serial networks of embedded systems and PCs. Example circuits and code provide a quick start to projects. Installation and maintenance staff will also find tips for ensuring reliable operation and problem tracking.