PRU Built-in Functions (Using the GNU Compiler Collection (GCC))

#### 7.13.29 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:

Built-in Function: `void` __delay_cycles `(constant 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 that cycles 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.

Built-in Function: `void` __halt `(void)` ¶

  This inserts a HALT instruction to stop processor execution.

Built-in Function: `unsigned int` __lmbd `(unsigned int wordval, unsigned int bitval)` ¶

  This inserts LMBD instruction to calculate the left-most bit with value bitval in value wordval. Only the least significant bit of bitval is taken into account.