Site Map - skip to main content - dyslexic font - mobile - text - print

Hacker Public Radio

Your ideas, projects, opinions - podcasted.

New episodes Monday through Friday.


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 >>

Host Image
Hosted by Gabriel Evenfire on 2014-12-22 is flagged as Clean and is released under a CC-BY-SA license.
Listen in ogg, spx, or mp3 format. | Comments (2)

Part of the series: 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.

CATRPI

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

Hacker's Delight by Henry S. Warren Jr.

  • http://www.hackersdelight.org/
  • 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".

ARM ARM

ARM TRM

dwelch67's bare metal repository


Comments

Subscribe to the comments RSS feed.

Comment #1 posted on 2014-12-22T14:41:21Z 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-24T17:50:44Z 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

Powered by Comment Script