Releases: dinuxbg/gnupru
Release 2024.05
Release 2023.05
- Updated to GCC 13.1.
- Updated gnuprumcu to v0.9.4.
- Added C header with AM62x I/O register definitions. Tested with HC-SR04 example on BeaglePlay.
- Fixed an incorrect field member size in I/O header for AM587x.
Release 2023.01
Release 2022.05
Not much changes since the 2021.12-beta release:
- Bumped gnuprumcu to v0.8.0. This includes preliminary AM62x specs.
- Bumped GCC to the official 12.1 release.
- Bumped Binutils to official 2.38 release.
As usual, prebuilt cross toolchains are provided for Linux x86_64
and armhf
hosts, as well as an experimental one for Windows.
Release 2021.12-beta
This is a Beta release from snapshots of the GNU development trees. It brings new features:
- Support for
.pru_irq_map
section, as required by remoteproc in Linux kernel versons 5.10 and later. - Allow direct access to
__R30
and__R31
from C:
#include <pru/io.h>
...
__R30 |= (1 << 4);
Component versions:
- GCC 12-rc snapshot from commit aeedb00a1a (NOT AN OFFICIAL GCC RELEASE).
- Binutils 2.38-rc snapshot from commit 2749ac13397 (NOT AN OFFICIAL BINUTILS RELEASE)
- Newlib v4.1.0
- Gnuprumcu v0.7.0
As usual, prebuilt cross toolchains are provided for x86_64
and armhf
hosts. As well as an experimental one for Windows
.
Release 2021.10
This is a bug fix release. It fixes an issue in the 2021.07 default linker script which can corrupt the remoteproc resource table.
Changes since 2021.07:
- Include patch in https://sourceware.org/pipermail/binutils/2021-September/118057.html
As usual, prebuilt binaries for amd64
and armhf
Linux hosts are provided. They have been prepared with https://github.com/dinuxbg/crosstool-ng/releases/tag/gnupru.2021.10 .
Experimental prebuilts for Windows hosts are also provided. They have been prepared using 2ef9573
Release 2021.07
DO NOT USE
This release includes Binutils 2.37, which has a bug in the PRU port which does not handle resource_table properly. See https://sourceware.org/pipermail/binutils/2021-September/118057.html .
PRU support has been mainlined for quite a while. So let's make an official release to commemorate it.
Build scripts no longer apply out-of-tree patches. You build what you download from official mainline releases:
- gcc-11.1.0
- binutils-2.37
- newlib-4.1.0
- gnuprumcu-0.6.0
I'm also releasing prebuilt tarballs for amd64 and armhf hosts.
BETA RC3 release
- When linking object files from GCC and TI toolchains, you must use the -mabi=ti option.
- GCC PRU port has been overhauled to better support TI ABI. With some care, GCC/Binutils can now link against TI proprietary object files.
- GCC now supports register packing for function arguments.
- GCC now efficiently stores 8-bit variables into 8-bit subregisters.
- LD has been fixed to support both RELA and REL relocations, since TI tools tend to randomly pick one or another for their output.
- LD and GAS have fixed LDI32 relocation to be compliant with TI toolchain.
- LD linker script has been updated.
- Documented instructions to execute ABI checking testsuite.
- You must clean your object files from previous releases, and rebuild your projects. This is necessary due to incompatible changes in ELF implemented for ABI compatibility.
BETA RC2.2 release
- Optimized arithmetic shift right. Fixes github issue #25.
- Rebased to respective upstream projects.
BETA RC2.1 release
Changes since BETA RC2:
- Fixes for 32-bit hosts.
Changes since BETA RC1.1:
- ld: Switched relocations to be more compatible with TI's toolchain. YOU MUST RECOMPILE ALL YOUR SOURCE FILES - object files from old and new binutils cannot be linked together.
- gas: Added WBC and WBS pseudo ops to GAS.
- gas: Added optional & prefix for addressed registers
- gas/ld: Removed %hi/%lo/%hi_rlz assembler constructs and instead implemented LDI32 pseudo instruction.
- gas: Switched to r3.w2 as Return Address Register for the call and ret pseudos.
- gas: Added %label() construct to allow disambiguating register from label JMP operands.
- Fixed invalid-syntax assembler generation on 32bit hosts.
- Removed leading underscore for symbols for better TI ABI compatibility.