Overview
Fundamentals of Embedded Software: Where C and Assembly Meet is a refreshing alternative to the traditional sophomore text on computer organization and assembly language programming. The text approaches assembly the way it is commonly used in practice¾to implement small, fast, or special-purpose routines called from a main program written in a high-level language such as C. By using an embedded software context, the text introduces multi-threaded programming, preemptive and non-preemptive systems, shared resources, and scheduling, thus providing a solid foundation for subsequent courses on operating systems, real-time systems, networking, and microprocessor-based design.
The text will help you:
- appreciate the often overlooked consequences and limitations of binary representation.
- implement fast real-number arithmetic using fixed-point reals instead of floating-point.
- reinforce your comprehension of scope, parameter passing, recursion, and memory allocation.
- employ features of C (such as bit-manipulation and variant access) commonly used in embedded software.
- write functions in Intel x86 protected mode assembly to be called from C.
- estimate maximum data rate and latency for various styles of I/O programming.
- manage multiple threads, shared resources, and critical sections.
- develop programming practices that avoid priority inversions, deadlocks, and shared memory problems.
Fundamentals of Embedded Software: Where C and Assembly Meet comes with a CD-ROM containing all the software tools needed to build simple stand-alone embedded applications on an ordinary Pentium-class PC: a C compiler, assembler, linker, boot loader, library, and both preemptive and non-preemptive real-time kernels. Also included are major portions of the source code for a number of programming assignments found in an appendix of the text.
Synopsis
Reflecting current industrial applications and programming practice, this book lays a foundation that supports the multi-threaded style of programming and high-reliability requirements of embedded software. Using a non-product specific approach and a programming (versus hardware) perspective, it focuses on the 32-bit protected mode processors and on C as the dominant programming languagewith coverage of Assembly and how it can be used in conjunction with, and support of, C. Features an abundance of examples in C and an accompanying CD-ROM with software tools.
Data Representation. Getting the Most Out of C. A Programmer's View of Computer Organization. Mixing C and Assembly. Input/Output Programming. Concurrent Software. Scheduling. Memory Management. Shared Memory. System Initialization.
For Computer Scientists, Computer Engineers, and Electrical Engineers involved with embedded software applications.
Booknews
A sophomore-level textbook on programming the myriad microprocessors that are now ubiquitous throughout modern life, tucked away in hidden places that should not even be mentioned in polite company. It lays a foundation to support the multi-threaded style of programming and high-reliability requirements of embedded software. The disk provides most of the source code for each of the programming assignments in the text. Annotation c. Book News, Inc., Portland, OR (booknews.com)