List of books:
- Clean code
- Code complete
- Embedded system coding reference guide
- Embedded system processing reference guide
- Reusable Firmware Development
- Design Patterns for Embedded Systems in C
- Embedded Systems Architecture
- Refactoring: Improving the Design of Existing Code
- Data Structures Using c
Clean code by Robert C. Martin
Clean Codeis divided into three parts. The first describes the principles, patterns, and practices of writing clean code. The second part consists of several case studies of increasing complexity. Each case study is an exercise in cleaning up code―of transforming a code base that has some problems into one that is sound and efficient. The third part is the payoff: a single chapter containing a list of heuristics and “smells” gathered while creating the case studies. The result is a knowledge base that describes the way we think when we write, read, and clean code.
Readers will come away from this book understanding
- How to tell the difference between good and bad code
- How to write good code and how to transform bad code into good code
- How to create good names, good functions, good objects, and good classes
- How to format code for maximum readability
- How to implement complete error handling without obscuring code logic
- How to unit test and practice test-driven development
- What “smells” and heuristics can help you identify bad code
This book is a must for any developer, software engineer, project manager, team lead, or systems analyst with an interest in producing better code.
Code Complete by Steve McConnell
Widely considered one of the best practical guides to programming, Steve McConnell’s original code complete has been helping developers write better software for more than a decade. Now this classic book has been fully updated and revised with leading-edge practices—and hundreds of new code samples—illustrating the art and science of software construction. Capturing the body of knowledge available from research, academia, and everyday commercial practice, McConnell synthesizes the most effective techniques and must-know principles into clear, pragmatic guidance. No matter what your experience level, development environment, or project size, this book will inform and stimulate your thinking—and help you build the highest quality code.
Discover the timeless techniques and strategies that help you:
- Design for minimum complexity and maximum creativity
- Reap the benefits of collaborative development
- Apply defensive programming techniques to reduce and flush out errors
- Exploit opportunities to refactor—or evolve—code, and do it safely
- Use construction practices that are right-weight for your project
- Debug problems quickly and effectively
- Resolve critical construction issues early and correctly
- Build quality into the beginning, middle, and end of your project .
Embedded System coding reference guide by Software Reliability Enhancement Center (Japan)
It is intended to be used as a reference guide for establishing coding conventions in organizations and groups developing embedded software using C language, and for promoting the standardization of coding styles and uniformity of source code quality.
Embedded System Processing reference guide by Software Reliability Enhancement Center (Japan)
This document is intended to be used by leaders and managers responsible of embedded software
development projects as a reference material to examine the development processes that should be carried
out by the organizations and/or in the projects that they are supervising.
This document is comprised of the following three sections:
Part 1 Development Process Guide for Embedded Software: Descriptive Section
Part 2 Development Process Guide for Embedded Software: Technical Section
Part 3 Development Process Guide for Embedded Software: Practical Section
Reusable Firmware Development by Jacob Beningo
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 provides a plethora of examples, exercises, and case studies on how to use and implement the concepts.
What You’ll Learn
- Develop portable firmware using the C programming language
- Discover APIs and HALs, explore their differences, and see why they are important to developers of resource-constrained software
- Master microcontroller driver development concepts, strategies, and examples
- Write drivers that are reusable across multiple MCU families and vendors
- Improve the way software documented
- Design APIs and HALs for microcontroller-based systems
Design Patterns for Embedded Systems in C: An Embedded Software Engineering Toolkit by Bruce Powel Douglass, PhD
A basic C knowledge is a prerequisite for the book while UML notation and terminology is included. General C programming books do not include discussion of the contraints found within embedded system design. The practical examples give the reader an understanding of the use of UML and OO (Object Oriented) designs in a resource-limited environment. Also included are two chapters on state machines. The beauty of this book is that it can help you today. .
- Design Patterns within these pages are immediately applicable to your project
- Addresses embedded system design concerns such as concurrency, communication, and memory usage
- Examples contain ANSI C for ease of use with C programming code
Embedded Systems Architecture: Explore architectural concepts, pragmatic design patterns, and best practices to produce robust systems by Daniele Lacamera
Embedded systems are self-contained devices with a dedicated purpose. We come across a variety of fields of applications for embedded systems in industries such as automotive, telecommunications, healthcare and consumer electronics, just to name a few.
Embedded Systems Architecture begins with a bird’s eye view of embedded development and how it differs from the other systems that you may be familiar with. You will first be guided to set up an optimal development environment, then move on to software tools and methodologies to improve the work flow. You will explore the boot-up mechanisms and the memory management strategies typical of a real-time embedded system. Through the analysis of the programming interface of the reference microcontroller, you’ll look at the implementation of the features and the device drivers. Next, you’ll learn about the techniques used to reduce power consumption. Then you will be introduced to the technologies, protocols and security aspects related to integrating the system into IoT solutions.
By the end of the book, you will have explored various aspects of embedded architecture, including task synchronization in a multi-threading environment, and the safety models adopted by modern real-time operating systems.
Refactoring: Improving the Design of Existing Code by Martin fowler
“Whenever you read [Refactoring ], it’s time to read it again. And if you haven’t read it yet, please do before writing another line of code.” –David Heinemeier Hansson, Creator of Ruby on Rails, Founder & CTO at Basecamp Fully Revised and Updated―Includes New Refactorings and Code Examples “Any fool can write code that a computer can understand. Good programmers write code that humans can understand.” –M. Fowler (1999) For more than twenty years, experienced programmers worldwide have relied on Martin Fowler’s Refactoring to improve the design of existing code and to enhance software maintainability, as well as to make existing code easier to understand. This eagerly awaited new edition has been fully updated to reflect crucial changes in the programming landscape.
Data Structures Using c by Reema Thareja
This book is aimed at serving as a textbook for undergraduate engineering students of computer
science and postgraduate level courses of computer applications. The objective of this book is to
introduce the concepts of data structures and apply these concepts in problem solving. The book
provides a thorough and comprehensive coverage of the fundamentals of data structures and the
principles of algorithm analysis. The main focus has been to explain the principles required to
select or design the data structure that will best solve the problem.
A structured approach is followed to explain the process of problem solving. A theoretical
description of the problem is followed by the underlying technique. These are then ably supported
by an example followed by an algorithm, and finally the corresponding program in C language.
The salient features of the book include:
- Explanation of the concepts using diagrams
- Numerous solved examples within the chapters
- Glossary of important terms at the end of each chapter
- Comprehensive exercises at the end of each chapter
- Practical implementation of the algorithms using tested C programs
- Objective type questions to enhance the analytical ability of the students
If you enjoyed this article, share your feedback.