Code Monkey home page Code Monkey logo

gnupru's Introduction

Port of GNU GCC and Binutils for the TI PRU I/O processor.

Introduction

This is an unofficial GCC/Binutils port for the PRU I/O CPU core that is present in TI Sitara AM33xx SoCs. Older PRU core versions are not supported.

The release is ready for cautious usage. A simulator is used to execute the GCC C regression test suite. Results for this release are:

# of expected passes		91636
# of unexpected failures	71
# of unexpected successes	9
# of expected failures		206
# of unsupported tests		2960

Results from the GCC ABI test suite:

# of expected passes		686
# of unexpected failures	7
# of unresolved testcases	38
# of unsupported tests		18

There are several examples to get started:

Bug reports should be filed in https://github.com/dinuxbg/gnupru/issues . For general questions please use http://beagleboard.org/Community/Forums .

This project has no relation to the TI PRU C compiler. ABI differences between GCC PRU and TI PRU C are tracked in https://github.com/dinuxbg/gnupru/wiki

Installing On Debian Jessie

If you are running Beaglebone Debian Jessie image, then installation is simple:

sudo apt-get update
sudo apt-get install gcc-pru

For other Debian Jessie images, you'll need to add Robert Nelson's package repository. Open /etc/apt/sources.list and add the following line:

deb [arch=armhf] http://repos.rcn-ee.com/debian/ jessie main

Building From Sources

The toolchain is published as a series of patches inside the patches subdirectory. The build scripts are tested on a Debian host, but should work on any recent distro.

You'll need some prerequisites. For a Debian host:

sudo apt-get install build-essential libmpfr-dev libgmp-dev libmpc-dev texinfo libncurses5-dev bison flex

Then it should be a simple matter of:

export PREFIX=$HOME/bin/pru-gcc   # Define where to install the toolchain
./download-and-patch.sh           # Download and patch the sources
./build.sh                        # Build

Creating Debian Packages From Scratch

There are experimental scripts for packaging binutils and gcc+newlib.

Installing the prerequisites:

sudo apt-get install dh-autoreconf libgmp-dev libmpfr-dev libmpc-dev libzip-dev autoconf2.64 lsb-release patchutils

Building and packaging:

./download-and-patch.sh           # Download and patch the sources
./package-binutils.sh
sudo dpkg -i packaging/binutils-pru*.deb
./package-gcc-newlib.sh
sudo dpkg -i packaging/gcc-pru*.deb

Testing the output:

pru-as --version
pru-gcc --version

Acknowledgements

  • GCC/Binutils Nios2 port was taken as a base for the PRU port.

gnupru's People

Contributors

dinuxbg avatar waddlesplash avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.