File Size: 28126 KB
Print Length: 689 pages
Publisher: Morgan Kaufmann; 1 edition (May 10, 2004)
Publication Date: May 10, 2004
Sold by: Digital Services LLC
X-Ray: Not Enabled
Word Wise: Not Enabled
Lending: Not Enabled
Enhanced Typesetting: Not Enabled
Best Sellers Rank: #932,892 Paid in Kindle Store (See Top 100 Paid in Kindle Store) #183 in Books > Computers & Technology > Hardware & DIY > Microprocessors & System Design > Microprocessor Design #740 in Books > Computers & Technology > Hardware & DIY > Design & Architecture #1228 in Kindle Store > Kindle eBooks > Computers & Technology > Programming > Software Design > Software Development
In the ARM tradition of charging for everything, the firmware guide by Sloss is easy to read, and comprehensive up to ARM10/StrongARM XScale/926/940. That said, the book looks like the notes from a firmware lecture delivered by an Arm Apps engineer. The book is strongest in coverage of MMU and cache, but weak on ARM11 (1136 only and as a final chapter) and essentially non-existent in Jazelle coverage. Nice features are the toy RTOS which appears early at reappears with more features (memory protection, and MMU, for example). That this book is so quickly out of date brings the point that MDR bulleted last year, that the ARM family needs birth control but that is a topic for another discussion. Sloss' book has 'non-commercial license' for all the sourcecode. huh? Regarding this book, Freescale for example publishes equivalent information (old ESS manuals) in the 860/8260 training manuals for free, on their website. If your company pays for your books, by all means have them get the sloss book for you it makes a great read on the john, but if you are a student or independent developer, you would be as well served by studying the ARM ARM and applicable ARM source code for U-Boot, Redboot and the L4 microkernel, or even Ed Sutter's book, with the added benefit that you would have a license to use the code in your project.
There are many books on ARM's architecture or manual references. So far, this book is the only book which concentrates on the firmware development side. Both assembly language and C are discussed, which is a relief for embedded/firmware engineers like me who like to combine both languages in a project.The 15 chapters in the book are:1- ARM Embedded Systems2- ARM Processor Fundamentals3- Introduction to the ARM instruction set4- Introduction to the Thumb instruction set5- Efficient C Programming6- Writing and Optimizing ARM assembly code7- Optimized Primitives8- Digital Signal Processing9- Exception and Interrupt Handling10- Firmware11- Embedded Operating Systems12- Cache13- Memory Protection Units14- Memory Management Units15- The Future of the ArchitectureThe strength of this book lies on the extensive examples on how to program ARM effectively. It is a nice guide for those who want to learn ARM programming style.
This book covers many aspects of programming the ARM familiy, including a surprisingly thorough discussion on fixed-point DSP computation.Having come from another architecture, this book really got me going on ARM. It complements the documentation manufacturers usually provide for their ARM chips in that it covers the ARM core much more in-depth.The book discusses everything from register usage to memory management units. If you want to become an expert programmer in C/Assembly on ARM systems, you must buy this book.Also included is a nice comparison of the ARM and Gnu assembler directives, which came in handy when I converted an ARM assembly file to the Gnu syntax.
The authors have done a wonderful job of taking something complicated and making it very simple, without dumbing it down. They explain why and how, and the material is well organized. There are useful reference tables scattered throughout. There is no attempt at humor, and I'm grateful for it.Highlights include discussions about registers, Arm multiple load/store instructions, the Arm function calling convention, tactics for writing fast C and assembler, DSP implementation, memory management, and assembler code for things like division. The chapters on firmware and basic OS implementation each show a simple yet functional implementation.My only complaint is that there's nothing practical in here about IO, not even JTAG. The authors have limited themselves to the ARM core only, perhaps because there are many differences between the microprocessors that use it. This makes the title a bit misleading - in my view a System Developer's Guide should have enough information so that you can at least write a "Hello World" program of some sort, even if it doesn't work on everybody's hardware.So to do anything practical, you'll have to track down a lot more documentation for your specific microcontroller. Still, five stars for the clear, detailed information on the topics it does cover. I will certainly be using it as a reference.
Simply put, this is the must-have-book for any ARM programmer as I think this is the best or perhaps the only useful book of its kind available.I like the chapter "Efficient C Programming" that tells you how to optimize your code in general and specifically for ARM architecture. However, I do not like the idea of making some complicated tricks in assembly language just to get rid of one instruction in a function. The working assembly code optimized for mathematics calculation and signal processing application could be valuable for those pursuing high computation power. The explanation of cache and MMU are very detailed and clear. Whereas the walkthrough on assembly language is quite an easy one.However, it is quite a shame that less focus has been given to some general but essential features such as exception handling, bootloading and real time operating system. There was little or no word on the compilation, linking, tools, simulator which will be of great help for the user to kickstart an ARM project.Some complained the lacking of information in ARM11 and later processor, well, that is reasonable if you take a look at the publishing date. Anyway, the content of this book is still relevant and useful for many ARM7/9-powered microprocessor being used in the market.
ARM System Developer's Guide: Designing and Optimizing System Software (The Morgan Kaufmann Series in Computer Architecture and Design) Computer Organization and Design: The Hardware Software Interface: ARM Edition (The Morgan Kaufmann Series in Computer Architecture and Design) Computer Organization and Design, Fourth Edition: The Hardware/Software Interface (The Morgan Kaufmann Series in Computer Architecture and Design) Computer Organization and Design, Third Edition: The Hardware/Software Interface, Third Edition (The Morgan Kaufmann Series in Computer Architecture and Design) Computer Architecture, Fifth Edition: A Quantitative Approach (The Morgan Kaufmann Series in Computer Architecture and Design) Computer Architecture: A Quantitative Approach (The Morgan Kaufmann Series in Computer Architecture and Design) Computers as Components, Third Edition: Principles of Embedded Computing System Design (The Morgan Kaufmann Series in Computer Architecture and Design) Computers as Components: Principles of Embedded Computing System Design (The Morgan Kaufmann Series in Computer Architecture and Design) Skew-Tolerant Circuit Design (The Morgan Kaufmann Series in Computer Architecture and Design) Foundations of Analog and Digital Electronic Circuits (The Morgan Kaufmann Series in Computer Architecture and Design) See MIPS Run, Second Edition (The Morgan Kaufmann Series in Computer Architecture and Design) Arm Action, Arm Path, and the Perfect Pitch: Building a Million-Dollar Arm Routing, Flow, and Capacity Design in Communication and Computer Networks (The Morgan Kaufmann Series in Networking) ARM Assembly Language Programming & Architecture: Second Edition (Mazidi & Naimi ARM Books Book 1) Object-Oriented Reengineering Patterns (The Morgan Kaufmann Series in Software Engineering and Programming) Learning Processing, Second Edition: A Beginner's Guide to Programming Images, Animation, and Interaction (The Morgan Kaufmann Series in Computer Graphics) Real-Time Shader Programming (The Morgan Kaufmann Series in Computer Graphics) MEL Scripting for Maya Animators, Second Edition (The Morgan Kaufmann Series in Computer Graphics) Pervasive Games: Theory and Design (Morgan Kaufmann Game Design Books) VLSI Test Principles and Architectures: Design for Testability (The Morgan Kaufmann Series in Systems on Silicon)