Site Map - skip to main content

Hacker Public Radio

Your ideas, projects, opinions - podcasted.

New episodes every weekday Monday through Friday.
This page was generated by The HPR Robot at

hpr1666 :: Bare Metal Programming on the Raspberry Pi (Part 3)

This episode, embedded programming, ARM co-processors and the ARM memory management unit.

<< First, < Previous, , Latest >>

Thumbnail of Gabriel Evenfire
Hosted by Gabriel Evenfire on 2014-12-22 is flagged as Clean and is released under a CC-BY-SA license.
Raspberry Pi, programming, ARM, co-processor, memory management unit. 2.
The show is available on the Internet Archive at:

Listen in ogg, spx, or mp3 format. Play now:

Duration: 01:09:18

Programming 101.

A series focusing on concepts and the basics of programming

This is the third episode in a series on bare metal programming on the Raspberry Pi. This episode rounds out my initial stab at doing a series on RPI embedded programming based on my summer vacation project. This episode discusses how to write code with an eye towards using it in an embedded environment. It continues with a discussion of how coprocessors fit into the ARM architecture. It also describes how to manage coprocessors programatically in a very hackerish way using self-modifying code. Finally, the episode describes how to enable the virtual memory subsystem in the ARM as well as the cache. It includes some performance measurements of my code both with and without the cache enabled.

Here is some of the source material that I reference in this episode. See the previous episode show notes for information on how to get your own bare metal Raspberry Pi setup up and running.


  • Homepage:
  • Git repo: git://
  • My own repository of code that I wrote during this little project.

Hacker's Delight by Henry S. Warren Jr.

  • A fantastic book on low level computer mathematics. I find it a joy to read. I cannot recommend it highly enough. It belongs on anyone's shelf next to Knuth and other "programming bibles".



dwelch67's bare metal repository


Subscribe to the comments RSS feed.

Comment #1 posted on 2014-12-22 14:41:21 by Mike Ray

Another great episode

Thanks for another great episode Gabriel. I've been looking forward to this one.

I hope there are more in the series and I'm particularly curious about sound rendering via the GPU

Comment #2 posted on 2014-12-24 17:50:44 by Gabriel Evenfire

Re: Another great episode

Thanks for the feedback, especially letting me know what you'd like to hear next. I greatly enjoyed your episode on how to fix the sound by sending directly into the driver.

Now I may be wrong, but good use of the sound or GPU may first require me figuring out how to use the floating point unit, at least to use it well.

To be honest, it's an area that I've learned very little about. That makes it a great topic to explore, but it also means it may take me a bit longer to pull it together.

Cheers, -- Gabriel Evenfire

Leave Comment

Note to Verbose Commenters
If you can't fit everything you want to say in the comment below then you really should record a response show instead.

Note to Spammers
All comments are moderated. All links are checked by humans. We strip out all html. Feel free to record a show about yourself, or your industry, or any other topic we may find interesting. We also check shows for spam :).

Provide feedback
Your Name/Handle:
Anti Spam Question: What does the letter P in HPR stand for?
Are you a spammer?
What is the HOST_ID for the host of this show?
What does HPR mean to you?