How sysplay/bbb works
This repository is a BeagleBone Black learning collection, not one application: its main workflow is experimenting with Linux drivers through small user-space apps, alongside bootloader and bare-metal exercises. The graph preserves the documented boot, kernel-driver, USB-gadget, app, and firmware areas, plus representative I2C, GPIO, and interrupt modules. The README supports the broad Apps-to-Drivers relationship; other edges are limited to relationships shown in excerpts or the source index, so unsampled subsystems have no guessed call paths.
Main entry points: interrupt.c Interrupt Handling · f_mass_storage.c Storage Function · board.c Board Setup · g_mass_storage.c Mass Storage Gadget
Components 21
Bootloaders
- Board Setup
Bootloaders/XloaderMod/board.c - Pin Mux
Bootloaders/XloaderMod/mux.c - Board Identity
Bootloaders/u-boot/board/ti/am335x/board.h
Linux Drivers
- GPIO LED ioctl
Drivers/CharDrivers/led_ioctl.c - I2C Character Driver
Drivers/I2CDrivers/i2c_char_client.c - I2C Definitions
Drivers/I2CDrivers/i2c_char.h - GPIO Debounce
Drivers/Interrupts/gpio_debounce.c - GPIO Select
Drivers/Select/gpio_select.c - TTY Serial
Drivers/TTYDrivers/s3.c
USB Gadget
- Mass Storage Gadget
Drivers/USBGadgetDrivers/g_mass_storage.c - Storage Function
Drivers/USBGadgetDrivers/f_mass_storage.c - Storage Common
Drivers/USBGadgetDrivers/storage_common.c - Gadget Quirks
Drivers/USBGadgetDrivers/gadget_chips.h
User Apps
- GPIO Apps
Apps/select_gpio.c - I2C Apps
Apps/i2c_client_app.c - SPI ADC App
Apps/spi_adc.c
Bare Metal
- Peripheral Registers
EmbC/bbb.h - Firmware Types
EmbC/common.h - Interrupt Handling
EmbC/interrupt.c
Other components
- Workshop Learner
- BeagleBone Black
Connections 17
- Workshop Learner → GPIO Apps: experiments with
- Workshop Learner → I2C Apps: experiments with
- GPIO Apps → GPIO LED ioctl: plays with drivers
- I2C Apps → I2C Character Driver: plays with drivers
- Mass Storage Gadget → Storage Function: configures
Drivers/USBGadgetDrivers/g_mass_storage.c - Storage Function → Storage Common: uses definitions
Drivers/USBGadgetDrivers/f_mass_storage.c - Storage Function → Gadget Quirks: checks quirks
Drivers/USBGadgetDrivers/f_mass_storage.c - I2C Character Driver → I2C Definitions: includes
Drivers/I2CDrivers/i2c_char_client.c - Interrupt Handling → Peripheral Registers: accesses registers
EmbC/interrupt.c - Interrupt Handling → Firmware Types: uses types
EmbC/interrupt.c - Board Setup → Board Identity: uses board identity
Bootloaders/XloaderMod/board.c - Board Setup → BeagleBone Black: initializes
- Pin Mux → BeagleBone Black: configures pins
- GPIO LED ioctl → BeagleBone Black: controls GPIO
- GPIO Debounce → BeagleBone Black: handles GPIO events
- Mass Storage Gadget → BeagleBone Black: exposes storage
- Interrupt Handling → BeagleBone Black: handles interrupts