Advertisement

ARM Architecture and Programming

  • K. C. WangEmail author
Chapter

Abstract

This chapter covers the ARM architecture, ARM instructions, ARM programming and development of programs for execution on ARM virtual machines. These include ARM processor modes, register banks in different modes, instructions and basic programming in ARM assembly. It introduces the ARM toolchain under Ubuntu (15.10) Linux and emulated ARM virtual machines under QEMU. It shows how to use the ARM toolchain to develop programs for execution on the ARM Versatilepb virtual machine by a series of programming examples. It explains the function call convention in C and shows how to interface assembly code with C programs. Then it develops a simple UART driver for I/O on serial ports, and a LCD driver for displaying both graphic images and text. It also shows the implementation of a generic printf() function for formatted printing to output devices that support the basic print char operation.

Keywords

Serial Port Program Counter Assembly Code Frame Buffer Base Address 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

References

  1. ARM Architectures: http://www.arm.products/processors/instruction-set-architectures, ARM Information Center, 2016
  2. ARM Cortex-A8: “ARM Cortex-A8 Technical Reference Manual”, ARM Information Center, 2010Google Scholar
  3. ARM Cortex A9 MPcore: “Cortex A9 MPcore Technical Reference Manual”, ARM Information Center, 2016Google Scholar
  4. ARM926EJ-ST: “ARM926EJ-S Technical Reference Manual”, ARM Information Center, 2008Google Scholar
  5. ARM926EJ-ST: “Versatile Application Baseboard for ARM926EJ-S User guide”, ARM Information Center, 2010Google Scholar
  6. ARM PL011: “PrimeCell UART (PL011) Technical Reference Manual”, ARM Information Center, 2016Google Scholar
  7. ARM PrimeCell Color LCD Controller PL110: “ARM Versatile Application Baseboard for ARM926EF-S”, ARM Information Center, 2016Google Scholar
  8. ARM Programming: “ARM Assembly Language Programming”, http://www.peter-cockerell.net/aalp/html/frames.html
  9. QEMU Emulators: “QEMU Emulator User Documentation”, http://wiki.qemu.org/download/qemu-doc.htm, 2010

Copyright information

© Springer International Publishing AG 2017

Authors and Affiliations

  1. 1.School of Electrical Engineering and Computer ScienceWashington State UniversityPullmanUSA

Personalised recommendations