CERT® C Coding Standard, Second Edition, The: 98 Rules for Developing Safe, Reliable, and Secure Systems (SEI Series in
“At Cisco, we have adopted the CERT C Coding Standard as the internal secure coding standard for all C developers. It is a core component of our secure development lifecycle. The coding standard described in this book breaks down complex software security topics into easy-to-follow rules with excellent real-world examples. It is an essential reference for any developer who wishes to write secure and resilient software in C and C++.” —Edward D. Paradise, vice president, engineering,...
Linux Device Drivers, 3rd Edition
Device drivers literally drive everything you're interested in--disks, monitors, keyboards, modems--everything outside the computer chip and memory. And writing device drivers is one of the few areas of programming for the Linux operating system that calls for unique, Linux-specific knowledge. For years now, programmers have relied on the classic Linux Device Drivers from O'Reilly to master this critical subject. Now in its third edition, this bestselling guide provides all the information...
Linux Driver Development for Embedded Processors - Second Edition: Learn to develop Linux embedded drivers with kernel 4
LINUX DRIVER DEVELOPMENT FOR EMBEDDED PROCESSORS - SECOND EDITION - The flexibility of Linux embedded, the availability of powerful, energy efficient processors designed for embedded computing and the low cost of new processors are encouraging many industrial companies to come up with new developments based on embedded processors. Current engineers have in their hands powerful tools for developing applications previously unimagined, but they need to understand the countless features that...
Mastering Embedded Linux Programming: Unleash the full potential of Embedded Linux
Key Features
- Discover how to build and configure reliable embedded Linux devices
- This book has been updated to include Linux 4.9 and Yocto Project 2.2 (Morty)
- This comprehensive guide covers the remote update of devices in the field and power management
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...
Test-Driven Development for Embedded C (Pragmatic Programmers)
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...
C Programming Language, 2nd Edition
The authors present the complete guide to ANSI standard C language programming. Written by the developers of C, this new version helps readers keep up with the finalized ANSI standard for C while showing how to take advantage of C's rich set of operators, economy of expression, improved control flow, and data structures. The 2/E has been completely rewritten with additional examples and problem sets to clarify the implementation of difficult language constructs. For years, C programmers have...
Inside the Arm Cortex Core: Microcontroller Architecture, Execution Flow, and Firmware Engineering (Systems Engineering
The Definitive Guide to the ARM Cortex-M0
The Definitive Guide to the ARM Cortex-M0 is a guide for users of ARM Cortex-M0 microcontrollers. It presents many examples to make it easy for novice embedded-software developers to use the full 32-bit ARM Cortex-M0 processor. It provides an overview of ARM and ARM processors and discusses the benefits of ARM Cortex-M0 over 8-bit or 16-bit devices in terms of energy efficiency, code density, and ease of use, as well as their features and applications. The book describes the architecture of...
Understanding and Using C Pointers: Core Techniques for Memory Management
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...
Hands-On Embedded Programming with C++17: Create versatile and robust embedded solutions for MCUs and RTOSes with modern
Build safety-critical and memory-safe stand-alone and networked embedded systems
Key Features- Know how C++ works and compares to other languages used for embedded development
- Create advanced GUIs for embedded devices to design an attractive and functional UI
- Integrate proven strategies into your design for optimum hardware performance
C++ is a great choice for embedded development, most notably, because it does not add any bloat, extends maintainability, and offers many...
Software Engineering for Embedded Systems: Methods, Practical Techniques, and Applications
Software Engineering for Embedded Systems: Methods, Practical Techniques, and Applications, Second Edition provides the techniques and technologies in software engineering to optimally design and implement an embedded system. Written by experts with a solution focus, this encyclopedic reference gives an indispensable aid on how to tackle the day-to-day problems encountered when using software engineering methods to develop embedded systems. New sections cover peripheral programming, Internet...
Real-Time C++: Efficient Object-Oriented and Template Microcontroller Programming
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...
Linux Driver Development for Embedded Processors - Second Edition: Learn to develop Linux embedded drivers with kernel 4
LINUX DRIVER DEVELOPMENT FOR EMBEDDED PROCESSORS - SECOND EDITION - The flexibility of Linux embedded, the availability of powerful, energy efficient processors designed for embedded computing and the low cost of new processors are encouraging many industrial companies to come up with new developments based on embedded processors. Current engineers have in their hands powerful tools for developing applications previously unimagined, but they need to understand the countless features that...
STM32 Arm Programming for Embedded Systems (Mazidi & Naimi ARM)
This book covers the peripheral programming of the STM32 Arm chip. Throughout this book, we use C language to program the STM32F4xx chip peripherals such as I/O ports, ADCs, Timers, DACs, SPIs, I2Cs and UARTs. We use STM32F446RE NUCLEO Development Board which is based on ARM® Cortex®-M4 MCU. Volume 1 of this series is dedicated to Arm Assembly Language Programming and Architecture. See our website for other titles in this series: www.MicroDigitalEd.com You can also find the tutorials,...
USB: The Universal Serial Bus
Have you ever wondered how to use the USB hardware to send and receive data from an attached device? Wondered how to detect and initialize the controller, retrieve the device's descriptors, configure the device, and then communicate with it to send or retrieve its data? This book explains the ins and outs of the four major controllers, starting with the UHCI, OHCI, EHCI, and then the new Super Speed xHCI Controller. It explains in detail how to communicate with the various devices such as...
Reusable Firmware Development: A Practical Approach to APIs, HALs and Drivers
Gain the knowledge and skills necessary to improve your embedded software and benefit from author Jacob Beningo’s more than 15 years developing reusable and portable software for resource-constrained microcontroller-based systems. You will explore APIs, HALs, and driver development among other topics to acquire a solid foundation for improving your own software. Reusable Firmware Development: A Practical Approach to APIs, HALs and Drivers not only explains critical concepts, but also...
ARM A32 Assembly Language: 32-Bit ARM, Neon, VFP, Thumb
ARM A32 ASSEMBLY LANGUAGE is your hands-on guide to learning how to program in ARM machine code using the world’s most modern microprocessor. Ideal for the novice, this book will take you from first principles through to becoming a competent ARM programmer. It covers all aspects of the ARM instruction set including Thumb, Neon, Advanced SIMD and Vector Floating Point Programming. The book covers the new Unified Assembly Language (UAL) and the use of AArch32 State in the latest range of ARM...
The RISC-V Reader: An Open Architecture Atlas
The RISC-V Reader is a concise introduction and reference for embedded systems programmers, students, and the curious to a modern, popular, open architecture. RISC-V spans from the cheapest 32-bit embedded microcontroller to the fastest 64-bit cloud computer. The text shows how RISC-V followed the good ideas of past architectures while avoiding their mistake.
Highlights include:
Linux Device Drivers Development: Develop customized drivers for embedded Linux
Key Features
- Learn to develop customized Linux device drivers
- Learn the core concepts of device drivers such as memory management, kernel caching, advanced IRQ management, and so on.
- Practical experience on the embedded side of Linux
Linux kernel is a complex, portable, modular and widely used piece of software, running on around 80% of servers and embedded systems in more than half of devices throughout the world. Device drivers play a critical role in how well a Linux system...









