5 ms·
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
by AceJohnny2 10y ago
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.
- fest 10y ago> I'm kind of shocked that the way to program these is still just through assembly, but really not that surprised. This is not true anymore (was in the beginning though)- there is a C/C++ compiler available.
- hackcasual 10y agoThey'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
- mkj 10y agoThere'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).