A Port of GCC to the Parallax Propeller
Clone or download
Permalink
Failed to load latest commit information.
binutils move the LMM (and CMM) kernel so that it overlaps with the bss sectio… Apr 2, 2015
dejagnu updated thread library documentation to reflect that multiple XMMC co… Mar 6, 2014
demos Added new multi-cog xmmc demo. Jul 11, 2015
doc updated CMM documentation Aug 11, 2014
gcc fixed float to integer conversion functions Dec 22, 2015
gdb updated thread library documentation to reflect that multiple XMMC co… Mar 6, 2014
gdbstub updated thread library documentation to reflect that multiple XMMC co… Mar 6, 2014
ldscripts updated thread library documentation to reflect that multiple XMMC co… Mar 6, 2014
lib Fix more hardcoded instances of installation path Mar 16, 2015
loader Fix more hardcoded instances of installation path Mar 16, 2015
ncurses Adding the FSF ncurses release (see ncurses/COPYING for the copyright; Mar 19, 2015
newlib/src updated thread library documentation to reflect that multiple XMMC co… Mar 6, 2014
p2load updated thread library documentation to reflect that multiple XMMC co… Mar 6, 2014
release updated thread library documentation to reflect that multiple XMMC co… Mar 6, 2014
spin2cpp Fix more hardcoded instances of installation path Mar 16, 2015
spinsim updated thread library documentation to reflect that multiple XMMC co… Mar 6, 2014
tools updated thread library documentation to reflect that multiple XMMC co… Mar 6, 2014
.gitignore Added new multi-cog xmmc demo. Jul 11, 2015
LICENSE.txt updated thread library documentation to reflect that multiple XMMC co… Mar 6, 2014
Makefile Allow for more configurable build Mar 16, 2015
README.cross updated notes on cross compilation Mar 25, 2014
README.gdb added a README.gdb Mar 11, 2014
README.md Rename README.txt to README.md so it will be displayed by github. Mar 15, 2015
fix-xcode-warnings.sh updated thread library documentation to reflect that multiple XMMC co… Mar 6, 2014
gnu-oids.texi updated thread library documentation to reflect that multiple XMMC co… Mar 6, 2014
jbuild.sh update raspberry pi build so gdb and spin2cpp build, and remove the o… Mar 11, 2014

README.md

This is a project for the port of GCC (the GNU Compiler Collection) to the Parallax Propeller.

Please use the Makefile to build Propeller GCC.

To build from scratch use: $ make

All the files will be placed in a ../build directory. You can also build individual components, e.g "make gdb" to build gdb.

Cross compilation from Linux to Windows or Raspberry Pi is also supported by the Makefile, e.g. "make CROSS=win32" or "make CROSS=rpi". See README.cross for more details.

Output is placed in /opt/parallax by default (/opt/parallax-win32 or /opt/parallax-rpi for cross compiles). You can change this by saying "make PREFIX=".


Directory organization is as follows:

binutils - binutils 2.23.1 (complete) plus propeller changes demos - some demos for the compiler (see below) doc - some propeller specific library documentation gcc - gcc 4.6.1 (complete) plus propeller changes gdb - gdb 7.3.1 plus propeller changes gdbstub - interface between gdb and the propeller lib - propeller libraries loader - propeller-load serial loader and communications program ncurses - terminal library; needed to build gdb on Raspberry Pi newlib - a different C library (not currently used) spin2cpp - a tool to convert Spin programs to C or C++ spinsim - Dave Hein's Propeller simulator

--------------------------- demos ---------------------------------

A number of demos are provided. In each directory there should be a Makefile. To build the demo do "make"; to run it do "make run".

Of particular interest is the demo/toggle directory, containing a number of different ways of toggling an LED, using one or multiple COGs.

--------------------------- test suites ---------------------------------

Copy the contents of propgcc/dejagnu to /opt/parallax/share/dejagnu.

Set the environment variable DEJAGNU to /opt/parallax/share/dejagnu/site.exp.

If you are not using a C3 board, edit /opt/parallax/share/dejagnu/board/propeller-sim.exp to reflect the actual board you are using. The propeller-load options are given in the line that reads: set_board_info sim,options "-bc3 -r -t -q" Modify the command line to whatever you need to run XMM programs with propeller-load on your system.

Make sure that your Propeller board is connected and turned on, then in build/gcc, do: make check-gcc RUNTESTFLAGS="--target_board=propeller-sim"

--------------------------- .pdf documentation --------------------------

in build/gcc do: make pdf make install-pdf

This will copy various .pdf files to the /opt/parallax/share/doc directory. The ones in the root of that directory (gmp.pdf, libiberty.pdf, libquadmath.pdf, mpc.pdf, and mpfr.pdf) are not really interesting, since they are for libraries used in building the compiler.

The ones in the gcc/ subdirectory, in particular gcc/cpp.pdf and gcc/gcc.pdf, are the "real" compiler documents. They do have some propeller specific information in them, although more is needed.