Modern SoCs are a circus of various CPU cores, and there's a huge amount of work going on at the companies that design them to make them work together. Even for those SoCs that run open-source software, many of those secondary cores aren't visible to people outside the company creating the SoC. They're hidden behind binary blob "firmware". One of the systems I worked on over 5 years ago had ARM Cortex-A7s running the main OS (could be Linux), talking to a proprietary DSP running some in-house RTOS, talking to an 6502... The systems I'm currently working on have way more and more modern cores than that. As a user, or even as a developper, you wouldn't know.
Kudos to Ken for lifting the curtain a bit on the Sitara's PRUs!
It's a shame there isn't more developer availability of these cores. I'm kind of shocked that the way to program these is still just through assembly, but really not that surprised.
There's actually a cortex-m3 core also hiding in the Beaglebone's chip, doing power management.
Regarding C vs asm, I started writing some 8mhz 4-bit capture code in C but found asm was easier to reason about timings. One line of code is 5ns, done. (apart from some memory access).
They're really limited in terms of instruction set, making getting a compiler working tough. Programs are generally short and not too tricky to program with asm
Kudos to Ken for lifting the curtain a bit on the Sitara's PRUs!
It's a shame there isn't more developer availability of these cores. I'm kind of shocked that the way to program these is still just through assembly, but really not that surprised.