Hey Giuliomoro!
Thanks for your fast reply! :-D
giuliomoro Why? It is not the ideal processor for performing arithmetics beyond simple integer additions and subtractions.
I'm trying evaluate every possible way of a complex multiplication (both, the imaginary and the real value are stored as float) and compare the runtime of each implementation method as a part of my masters thesis. I am aware that the PRU has a limited instruction set and that it's not designed for this purpose. Anyhow, if possible, I want to give it a try, at least just for the comparison purpose. (Other implementations: softfp (in assembly), hardfp (in assembly), and neon (not implamented yet))
giuliomoro How is the part before the parenthesis different from the one within parentheses?
I meant that I'm trying to initialize and communicate with the PRU first and afterwards figure out a way to implement floating point multiplication with the limited instruction set.
giuliomoro Keep in mind that PRU assembly is a different language from the ARM assembly used there.
I'm aware of the different instruction set. I'm struggling with the directives. Are the directives (at least syntax-wise) similar to ARM? Sorry, I'm a complete assembly noob not knowing where to start :-/
giuliomoro To use PRU assembly in a Bela project and communicate back and forth with ARM, see Bela examples such as Extras/second-pru and Extras/pru-pwm. These are admittedly dated in that the communication between PRU and ARM takes place via shared memory and there is none of the remoteproc messaging and interrupt stuff that is possible with more modern toolchains, but which is also not particularly real time friendly.
Great, thanks! I already had a look at those but was not aware that part of it was designed in Assembly. Is the Assembly part available online? Couldn't find it..
I guess that the shared values are loaded using a load operator and the pointer address?
Again, thanks for your fast & informative answer! :-D