7.13.29 Встроенные функции PRU
GCC предоставляет несколько специальных встроенных функций, помогающих использовать специальные инструкции PRU.
Поддерживаются следующие встроенные функции:
-
Встроенная функция:
void__delay_cycles(constant long long cycles) Эта функция вставляет последовательность инструкций, выполнение которой занимает ровно cycles тактов (от 0 до 0xffffffff). Вставленная последовательность может содержать переходы, циклы или инструкции no-op и не влияет на выполнение других инструкций. Обратите внимание, что cycles должно быть целочисленной константой времени компиляции — то есть необходимо передать число, а не переменную, которая позднее может быть оптимизирована до константы. Количество тактов задержки, создаваемой этой встроенной функцией, точно.
-
Встроенная функция:
void__halt(void) Эта функция вставляет инструкцию HALT, останавливающую выполнение процессора.
-
Встроенная функция:
unsigned int__lmbd(unsigned int wordval, unsigned int bitval) Эта функция вставляет инструкцию LMBD для вычисления позиции самого левого бита со значением bitval в значении wordval. Учитывается только младший бит bitval.
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-15.3.0/gcc/PRU-Built_002din-Functions.html