Home > Community > Blogs > System Design and Verification > a must read the arm cortex a programmer s guide
 
Login with a Cadence account.
Not a member yet?
Create a permanent login account to make interactions with Cadence more conveniennt.

Register | Membership benefits
Get email delivery of the System Design and Verification blog (individual posts).
 

Email

* Required Fields

Recipients email * (separate multiple addresses with commas)

Your name *

Your email *

Message *

Contact Us

* Required Fields
First Name *

Last Name *

Email *

Company / Institution *

Comments: *

A Must Read: the ARM Cortex-A Programmer's Guide

Comments(1)Filed under: ARM, virual platform, linux, System Design and Verification, virtual platforms, virtual prototypes, Cortex-A, ARM Architecture, ARM Cortex-A, programmer's guide

For the last couple of years, I have been getting a lot of e-mail from different LinkedIn groups. I'm interested in groups like Android, Embedded Linux, ARM, EDA Bloggers, and more. A majority of the days I don't have time to read much (or any) of the information and end up deleting a lot of e-mail. Today, I found a wonderful link that makes all of the time spent deleting e-mail worth it.

In the ARM group, I found a link to a document (really a book) called ARM Cortex-A Programmer's Guide that is available from ARM. Getting the document requires a login on the ARM website, but it's the same account used for many other things (like commenting on blogs) so I highly recommend taking a few minutes to do it.

The Cortex-A Programmer's Guide is 400+ pages and is a wonderful mix of practical information combined with a lot of the ARM architecture details. I'm sure some of the information can be found in other places, but now it's combined in a central place and in a much easier to read format compared to reading technical reference manuals. It will also save a lot of time spent searching the web and the ARM Infocenter.

In my daily work on Virtual Platforms, there are many times I need to port software to different platforms and processors. I also need to bring up new platforms with various types of software including test software, boot loaders, and operating systems. More specifically, I spend a lot of time on ARM Linux bring-up. It's great to have an OS like Linux, but it always takes time to configure and do the bring-up on many different ARM systems, each of which has different CPU types, a different memory map, and different hardware that requires different device drivers.

As a Virtual Platform creator my primary task is not to create brand new software, so I spend time running a lot of software I'm not that familiar with. Of course, this unfamiliar software usually doesn't work the first time, and requires debugging. The best way to minimize debugging time is a combination of good debugging tools and a systematic debugging approach. A good understanding of the material in this book definitely helps with the systematic approach because it makes it easier to identify correct and incorrect behavior.

The ARM Cortex-A Programmers Guide clarifies many topics that can be learned using a Virtual Platform because of the excellent visibility provided by simulation. Maybe in the future I can show some of book topics in action running on a Virtual Platform simulation.

For any Cadence people reading this, expect me to ask you if you read this programmer's guide when you ask questions about how things work!

Congratulations to the fine people at ARM for writing this book and making it available.

Jason Andrews

 

Comments(1)

By Alban Rampon on September 7, 2011
Thank you very much for the nice article Jason!
The team has now released a new revision of this document. Adding Cortex-A15, Large Physical Address Extension (LPAE) and also a new chapter on virtualization...
Feedback received from readers was also integrated :)
Kind regards,
Alban Rampon
ARM Connected Community

Leave a Comment


Name
E-mail (will not be published)
Comment
 I have read and agree to the Terms of use and Community Guidelines.
Community Guidelines
The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.