Бука: Fundamentals of Embedded Software: Where C and Assembly Meet. Не самая свежая, упор на х86, но многие тонкие моменты (которые будут актуальны всегда и не любой архитектуре) С очень хорошо обсосаны. -> http://upload.caxapa.ru/books/fundamentals_of_embedded_softwar.djvu
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. About the Author Daniel W. Lewis received his BSEE from Ga. Tech in 1968, and his MS, Engineer's, and PhD degrees in EE from Syracuse in 1972, 1974, and 1975, respectively. He is now the Chair of the Computer Engineering department at Santa Clara University in Silicon Valley, California where he has been since 1975.
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. About the Author Daniel W. Lewis received his BSEE from Ga. Tech in 1968, and his MS, Engineer's, and PhD degrees in EE from Syracuse in 1972, 1974, and 1975, respectively. He is now the Chair of the Computer Engineering department at Santa Clara University in Silicon Valley, California where he has been since 1975.