Re:How to run C programs on the BeagleBone's PRU microcontro...
by kens on Tuesday September 20, 2016 @01:00PM
(#12541029)
The PRU is a proprietary TI architecture that is totally different from the Cortex M3. The PRU is a low-level deterministic real-time 32-bit microcontroller, while the Cortex M3 is a "real processor" with interrupts, memory management and so forth. The instruction sets and architectures have nothing in common.
Maybe you're thinking of the Cortex M3 that's on the chip for power management?
Re:How to run C programs on the BeagleBone's PRU microcontro...
by thom_nic on Tuesday September 20, 2016 @02:50PM
(#12542153)
Different chip/vendor but Freescale's i.mx7 is an AMP design with a Cortex A7 + an M4 presumably for the realtime bits. I had the same thought w/r/t development on the PRU.
http://www.nxp.com/products/microcontrollers-and-processors/...
Re:How to run C programs on the BeagleBone's PRU microcontro...
by codys on Tuesday September 20, 2016 @01:02PM
(#12541045)
Ah, you're right, it does look like that's the case. It's a shame it's not something better supported (like a cortex variant).
Re:How to run C programs on the BeagleBone's PRU microcontro...
by zokier on Tuesday September 20, 2016 @01:25PM
(#12541234)
I think newer chips have the option for CortexM companion. This goes bit beyond my skillset, but I think the point of proprietary PRU ISA was that they could ensure super specific and regular instruction timings, every instruction being executed in single cycle with no pipelining or other stuff that can make real-time programming more tricky. That is something that afaik you simply can't do with Cortex M cores.
Re:How to run C programs on the BeagleBone's PRU microcontro...
by TickleSteve on Tuesday September 20, 2016 @02:56PM
(#12542222)
Cortex-R series is the equivalent to the PRU.
'R' for realtime.... in-order scheduing, highly optimised for determinism over performance.
(Having said that.... 'M' series is pretty good too really).
Rather than using CCS, one can use gcc or clang targeted to cortex-m3 (gcc target: arm-none-eabi + `-march=cortex-m3`, clang:thumbv7-eabi) to build the code (with the usual caveats that you're targeting a bare metal system).
The PRU is just a cortex-m3 core which is connected in interesting ways to the cortex-a8 on which linux runs. Nothing too exotic.