Daniel W. Lewis
FUNDAMENTAL OF EMBEDDED SOFTWARE:
Where C and Assembly Meet
Prentice Hall, Upper Saddle River, NJ 07458, 2002
Hardcover, pp. 266, plus XVI, $ 50,99
ISBN 0-13-061589-2
http://www.pearsoneduc.com
In general about book
Embedded systems (ES) are computers incorporated in consumer or other devices in order to perform application specific functions. ESs can contain a variety of computing devices, such as microcontrollers, application specific integrated circuits (ASICs), application specific integrated processors (ASIPs), and digital signal processors (DSPs). Unlike computers, the electronics used in these applications are deeply embedded and must interact with the user and real word through sensors and actuators. A key requirement is that these computing devices continually respond to external events in real-time (RT). The design of complex ESs is a difficult problem, requiring designers with skills and experience to identify the best solution. Because of performance and cost pressures ESs are built using a wide variety of techniques including software, firmware, ASICs, ASIPs, general purpose and domain specific processors, analog circuits, and sensors and actuators.
The main goal of this book is to give the reader a fundamental understanding of ESs' principles and to provide a foundation that supports the multithreading style of programming of embedded software.
The text uses a PC as a platform for learning processor architecture and creating software for actual embedded systems. On the accompanying CD-ROM, anyone seeking for understanding the problem of ES design will find the software tools needed to develop embedded applications under Microsoft Windows 9X, 2000, and NT. The book is divided into 11 chapters, six appendices, and index.
Chapter content
Chapter 1 introduces the reader with the basics of ESs structure. Chapter 2 gives an introduction to data presentation, such as fixed point binary numbers, binary representation of integers and real numbers, ASCII representation of text, and binary coded decimal. Standard techniques for manipulating with these data are presented. Writing software for RT- ESs requires a solid understanding of integer data types and the facilities for manipulating bits and bytes. Chapter 3 describes, in details, how these facilities are implemented using features of C. Chapter 4 deals with programmer's view of computer organization. Concretely Intel x86 architecture is considered. It includes memory, CPU, input/output, real and protected mode architectures, and data manipulation instructions. Bearing in mind that most RT embedded programs are mix of C and assembly language, Chapter 5 gives details how to implement functions in assembly language that are called from C. Chapter 6 is devoted to input/output programming. The important aspects of synchronization, interrupt handling and direct memory access are discussed. A short description of concurrent software is presented in Chapter 7. Multithreaded programming, as a good strategy for managing processor time, and critical section as a sequence of instructions that manipulates a shared resource, are also involved. Chapter 8 builds the framework for scheduling as a strategy how the threads compete for their share of processor time. In Chapter 9 the memory management model is explained. The main topics discussed here are with memory-data allocation scheme. Chapter 10 presents the concept of shared memory as a crucial aspect that allows interthread or intertas communication and coordination in embedded software. Chapter 11 describes variations of how system initialization can or should be done. The book also includes a number of useful appendices that focus on specific software tools: the DJGPP C/C++ compiler, the NASM assembler, programming projects, the libepc library, and the boot loader.
Useful book
I find this book well written, interesting, timely and appropriate. It clearly gives a convenient view of currently hottest topics in the field of ES design. This book can serve as a good reference for students, beginners, as well as for experienced professionals working in the field of design ES, based on the platform of PC machine with Intel installed processors. Overall, this book is a solid textbook on this important topic. Having in mind all mentioned above, I highly recommend this book.
Mile Stojcev