https://github.com/dinuxbg/gnuprumcu
Linker scripts and device specs for PRU MCU variants
https://github.com/dinuxbg/gnuprumcu
beaglebone pru
Last synced: 6 months ago
JSON representation
Linker scripts and device specs for PRU MCU variants
- Host: GitHub
- URL: https://github.com/dinuxbg/gnuprumcu
- Owner: dinuxbg
- License: other
- Created: 2019-09-02T19:20:00.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2025-11-30T19:24:51.000Z (7 months ago)
- Last Synced: 2025-12-02T00:12:18.077Z (7 months ago)
- Topics: beaglebone, pru
- Language: C
- Size: 156 KB
- Stars: 5
- Watchers: 1
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: COPYING
Awesome Lists containing this project
README

# Device specs and I/O headers for PRU MCU variants
## Introduction
This package contains the device [specs](https://gcc.gnu.org/onlinedocs/gcc/Spec-Files.html) and I/O headers for the different PRU variants in different TI SoCs.
Install this package to allow the `-mmcu=` GCC compiler option to pick the correct settings for your board.
## Usage
Let's say that we're building firmware for PRU0 core from the ICSSG1 instance on [Beagleboard-AI64](https://www.beagleboard.org/boards/beaglebone-ai-64). In such case you must pass the `tda4vm.icssg1.pru0` spec to the GCC's `-mmcu=` command line option, e.g.:
pru-gcc -mmcu=tda4vm.icssg1.pru0 -Os -Wall main.c -o firmware.elf
The above spec would in turn provide the correct IMEM and DMEM memory sizes to the linker. It would also add preprocessor defines to allow distinguishing PRU cores in C and ASM programs. Example:
#if defined(__TDA4VM_ICSSG1_PRU0__)
/* This C code section will be compiled only
* for PRU0 from ICSSG1 on Beaglebone-AI64. */
#endif
#if defined(__TDA4VM_ICSSG1__)
/* This C code section will be compiled for any
* PRU core from ICSSG1 on Beaglebone-AI64. */
#endif
#if defined(__TDA4VM__)
/* This C code section will be compiled for any
* PRU core from any ICSSG on Beaglebone-AI64. */
#endif
For a full list of supported specs see [here](./MCU-LIST.md).
## Building from GIT
The autoconf and automake tools are needed to bootstrap the build scripts.
autoreconf -vfi
./configure --prefix=/usr/local --host=pru
make
make install
## Building from a released tarball
Use the standard configure and make steps.
./configure --prefix=/usr/local --host=pru
make
make install
## Creating Debian Package
debuild -i -us -uc -b
ls -l ../gnuprumcu_*.deb