PRU Built-in Functions#
GCC provides a couple of special builtin functions to aid in utilizing special PRU instructions.
The built-in functions supported are:
-
__delay_cycles(long long cycles)#
This inserts an instruction sequence that takes exactly
cycles
cycles (between 0 and 0xffffffff) to complete. The inserted sequence may use jumps, loops, or no-ops, and does not interfere with any other instructions. Note thatcycles
must be a compile-time constant integer - that is, you must pass a number, not a variable that may be optimized to a constant later. The number of cycles delayed by this builtin is exact.
-
__halt(void)#
This inserts a HALT instruction to stop processor execution.
-
unsigned int __lmbd(unsigned int wordval, unsigned int bitval)#
This inserts LMBD instruction to calculate the left-most bit with value
bitval
in valuewordval
. Only the least significant bit ofbitval
is taken into account.