hpr1630 :: Bare Metal Programming on the Raspberry Pi (Part 2)
This episode discusses interrupt handling, and program loading using the Xmodem protocol
Hosted by Gabriel Evenfire on Friday, 2014-10-31 is flagged as Clean and is released under a CC-BY-SA license.
programming, embedded systems, raspberry pi.
3.
The show is available on the Internet Archive at: https://archive.org/details/hpr1630
Listen in ogg,
spx,
or mp3 format. Play now:
Duration: 00:50:24
Programming 101.
A series focusing on concepts and the basics of programming
The second episode in a series on bare metal programming on the Raspberry Pi. This episode builds on part 1 by showing how interrupts work on the RPIs ARM chip and the framework I created to manage them. It then goes on to describe how an interrupt-enabled serial driver works. From there, the episode shows how we can use the serial cable in conjunction with a loader program to enable us to load bare-metal programs onto the RPI without having to copy them to the SD card each time. In the process, the episode describes the XMODEM protocol that the loader users for the file transfer process.
Here is some of the source material that I used while working on this little learning experience.
Links
- dwelch67's bare metal repository
- https://github.com/dwelch67/raspberrypi
- The best guide I know on this topic. Very thorough and what I used as my starting point.
- 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.
- XMODEM Protocol
- https://textfiles.com/programming/ymodem.txt
- Says YMODEM but also includes specification for XMODEM.
- Adafruit USB to TTL cable
- Script to build the ARM toolchain
- ARM ARM
- https://morrow.ece.wisc.edu/ECE353/arm_reference/ddi0100e_arm_arm.pdf
- Contains the ARM assembly language as well as chip architecture overview.
- You'll need the ARM 11 Architecture Reference Manual
- ARM TRM
- https://infocenter.arm.com/help/topic/com.arm.doc.ddi0301h/DDI0301H_arm1176jzfs_r0p7_trm.pdf
- Contains info about the specific SOC that the Raspberry PI uses
- RPI Schematics
- https://www.raspberrypi.org/wp-content/uploads/2012/04/Raspberry-Pi-Schematics-R1.0.pdf
- Shows how the Raspberry Pi is wired up
- RPI Peripherals
- https://www.raspberrypi.org/wp-content/uploads/2012/02/BCM2835-ARM-Peripherals.pdf
- Describes functionality and programming model for the various Raspberry Pi peripherals.