How we did it:
For any feedback, any questions, any notes or just for chat - feel free to follow us on social networks
John L. Hennessy, David A. Patterson
The computing world today is in the middle of a revolution: mobile clients and cloud computing have emerged as the dominant paradigms driving programming and hardware innovation today. The Fifth Edition of Computer Architecture focuses on this dramatic shift, exploring the ways in which software and technology in the cloud are accessed by cell phones, tablets, laptops, and other mobile computing devices. Each chapter includes two real-world examples, one mobile and one datacenter, to illustrate this revolutionary change. Updated to cover the mobile computing revolution Emphasizes the two most important topics in architecture today: memory hierarchy and parallelism in all its forms. Develops common themes throughout each chapter: power, performance, cost, dependability, protection, programming models, and emerging trends ("What's Next") Includes three review appendices in the printed text. Additional reference appendices are available online. Includes updated Case Studies and completely new exercises.
Andrew N. Sloss, Dominic Symes, Chris Wright
This book provides a comprehensive description of the operation of the ARM core from a developer's perspective with a clear emphasis on software. It demonstrates not only how to write efficient ARM software in C and assembly but also how to optimize code. Example code throughout the book can be integrated into commercial products or used as templates to enable quick creation of productive software.
Explains how to streamline an embedded code project through the use of UML (unified modeling language) statecharts as a framework for creating and maintaining efficient and maintainable systems, describing the new features and functions of the open-source software framework, while discussing statecharts, design applications, and how to code directly into C/C++. Original. (Advanced)
Teach your students to design, develop, and validate USB systems with ease, using this valuable resource that provides a detailed bootstrap session on the Linux-USB design and implementation. BOOTSTRAP YOURSELF WITH LINUX-USB STACK: DESIGN, DEVELOP, DEBUG, AND VALIDATE EMBEDDED USB SYSTEMS offers an in-depth tour of the Linux USB stack, clearly and meticulously explaining how to develop drivers for USB device and host controllers on Linux. It moves on to explore the interfaces and data structures of USB module with UML diagrams, concluding each chapter with a sample implementation that applies the information just covered. A comprehensive look at the various tools and methods available on Linux to validate a USB system is also provided. Using a clear, straightforward writing style, this will be a powerful tool for students as they learn to develop a protocol stack with proper architecture and design, ultimately leading to better quality, maintainability, and testability.
This user's guide does far more than simply outline the ARM Cortex-M3 CPU features; it explains step-by-step how to program and implement the processor in real-world designs. It teaches readers how to utilize the complete and thumb instruction sets in order to obtain the best functionality, efficiency, and reuseability. The author, an ARM engineer who helped develop the core, provides many examples and diagrams that aid understanding. Quick reference appendices make locating specific details a snap! Whole chapters are dedicated to: Debugging using the new CoreSight technology Migrating effectively from the ARM7 The Memory Protection Unit Interfaces, Exceptions,Interrupts ...and much more! *The only available guide to programming and using the groundbreaking ARM Cortex-M3 processor *Easy-to-understand examples, diagrams, quick reference appendices, full instruction and Thumb-2 instruction sets are all included *The author, an ARM engineer on the M3 development team, teaches end users how to start from the ground up with the M3, and how to migrate from the ARM7
Warwick A. Smith
Technology is constantly changing. New microcontrollers become available every year and old ones become redundant. The one thing that has stayed the same is the C programming language used to program these microcontrollers. If you would like to learn this standard language to program microcontrollers, then this book is for you! ARM microcontrollers are available from a large number of manufacturers. They are 32-bit microcontrollers and usually contain a decent amount of memory and a large number of on-chip peripherals. Although this book concentrates on ARM microcontrollers from Atmel, the C programming language applies equally to other manufacturers ARMs as well as other microcontrollers. The book features: Use only free or open source software; Learn how to download, set up and use free C programming tools; Start learning the C language to write simple PC programs before tackling embedded programming -- no need to buy an embedded system right away!; Start learning to program from the very first chapter with simple programs and slowly build from there; No programming experience is necessary!; Learn by doing -- type and run the example programs and exercises; Sample programs and exercises can be downloaded from the Internet; A fun way to learn the C programming language; Ideal for electronic hobbyists, students and engineers wanting to learn the C programming language in an embedded environment on ARM microcontrollers.
Today, embedded systems programming is a more valuable discipline than ever, driven by entirely new fields such as wearable technology and the "Internet of Things." Now, for the first time, there's a complete guide to bare-metal embedded system programming using the Android Emulator virtual environment. Embedded systems expert Roger Ye teaches all the skills you need to program directly to hardware: gaining performance and efficiency benefits you can't achieve any other way. Since this hands-on guide utilizes the widely accessible Android Emulator, you can now learn bare-metal programming without access to the hardware itself. Ye guides you through setting up your complete development environment, and then builds your skills through several realistic projects. First, you'll construct a complete bootloader: one of the most common and useful embedded systems programming projects. Ye covers implementing U-Boot from start to finish: loading the first instruction on your target hardware platform, programming in assembly language for the ARM processor, programming in the higher level C language, adding C library support, adding hardware support, and more. As you master the workflow of an embedded systems project, you'll gain essential skills for diverse tasks ranging from error handling to integrating hardware interfaces. Then, you'll deepen your knowledge through additional real-world projects: serial ports, NAND flash devices, real time clocks, interrupt controllers, and more. These projects show how to decouple hardware interface handling tasks from other tasks associated with the software framework or OS support. They also give you deep insights into the internals of the Android emulator: insights that can help you use it far more effectively in embedded development.