Lab 1: Raspberry Pi
- 1.0 Disclaimer
- 1.1 Why the Raspberry Pi?
- 1.2 Raspberry Pi Hardware
- 1.3 Protect the Pi
- Important
- 1.4 Connect the Pi
- 1.5 Create a Linux Installer
- Important
- 1.6 Power the Pi
- Warning
- Important
- Important
- 1.7 The development system
Lab 2: Command Shell and Editors
- 2.1 Why the Command Prompt or Shell?
- 2.2 Exploring file systems from the command line
- 2.3 Viewing and editing source code files
- 2.4 Command line assembling
- Important
- 2.5 Command line disassemble
- 2.6 Assembly language branch instructions
- 2.7 Integer variable roll overs
Lab 3: GCC Tool Chain for ARM
- 3.1 Why GNU C for the Raspberry Pi?
- 3.2 Create a cross compiled executable
- Information
- 3.3 Execute a binary on the Raspberry Pi
- Warning
- 3.4 Cross compiler development PC
- 3.5 Consistent cross compiler development
- 3.6 Compile and link executable for bare metal
- Information
Lab 4: GPIO and LED
- 4.1 Why the GPIO and LED?
- 4.2 Raspberry Pi memory map
- 4.3 Create/Edit board.h definitions file
- 4.4 Configuring the GPIO Pull up/down Enable register
- 4.5 Operating a GPIO with software on the RPi
- 4.6 Peripheral and GPIO sharing with Function Select
- Reminder
- 4.7 Turn on or off the LED
- 4.8 Blinking LED
- 4.9 GDB and OpenOCD
- Information
- 4.10 Wiring and Configuring JTAG
- Warning
- Information
- Reminder
- 4.11 Debugging with GDB
Lab 5: System Timers
- 5.1 Why is a timer important?
- 5.2 Configure board.h for Raspberry Pi timer
- 5.3 System Software Interface to LED
- 5.4 New application “errorcodes”
- 5.5 Using Make to create an executable binary
- 5.6 Complete 64 bit timer for RPi
Lab 6: UART Peripheral
- 6.1 Why the UART?
- 6.2 Raspberry Pi UART Register Address Map
- 6.3 Raspberry Pi UART Register Details
- 6.4 GPIO configuration for RPi UART
- 6.5 Command line application
- 6.6 USB to serial TTL connection
- Warning
- 6.6.1 Connect UART between two RPi’s
- Information
- 6.6.2 UART software for Linux development PC
- Important
- 6.6.3 Connect UART from RPi to PC
- Important
- 6.6.4 UART Software for Windows development PC
- 6.7 UART Troubleshooting
Lab 7: Boot Loader
- 7.1 Why use a boot loader on Raspberry Pi?
- 7.2 Configure the Boot Loader
- 7.3 Xmodem shell command
- 7.4 Run and quit shell commands
- 7.5 Xmodem through the development PC
- 7.6 Editing files and Building software with Geany
- 7.7 Cleaning up the RPi Boot Loader
Lab 8: Periodically Executed Task Scheduler
- 8.1 Why an OS?
- 8.2 Speed up LED blink during shell command
- 8.3 Periodically executed Xmodem protocol
- 8.4 Comparing Source Code
- 8.5 Dynamic tasks
Lab 9: Video Screen
- 9.1 Why a Video Screen?
- 9.2 Mail Box Interface
- 9.3 Property Tags
- 9.4 Multiple Property Tags
- 9.5 Framebuffer
- 9.7 Screen
Lab 10: Video Console
- 10.1 Why a Video Console?
- 10.2 Font Map
- 10.3 Color conversion
- 10.4 Binary Images
Lab 11: Virtual Worlds
- 11.1 Virtual World Design Overview
- 11.2 Game Layout
- 11.3 Virtual World Discovery
- 11.4 Creatures and Items
- 11.5 Game Randomness
- 11.6 Player Movement
- 11.7 Experience and Levels
Chapter 12: Players and Creatures
- 12.0 Learning Through Code Review
- 12.1 Creature Movement
- 12.2 Player and Creature Actions
- 12.3 Damage and Defeated Creatures
- 12.4 Sprite Behavior
- 12.5 Sprite Actions
- 12.6 Game Flow
- 12.7 Sprite Randomness
- 12.8 Game Rounds