7.13.21 Встроенные функции MSP430
GCC предоставляет несколько специальных встроенных функций, помогающих писать обработчики прерываний на C.
__bic_SR_register_on_exit (int mask)-
Эта функция сбрасывает указанные биты в сохранённой копии регистра состояния, которая в данный момент находится в стеке. Она работает только внутри обработчиков прерываний, а изменения регистра состояния вступают в силу только после возврата из обработчика.
__bis_SR_register_on_exit (int mask)-
Эта функция устанавливает указанные биты в сохранённой копии регистра состояния, которая в данный момент находится в стеке. Она работает только внутри обработчиков прерываний, а изменения регистра состояния вступают в силу только после возврата из обработчика.
__delay_cycles (long long cycles)Эта функция вставляет последовательность инструкций, выполнение которой занимает ровно cycles циклов (от 0 до примерно 17E9). Вставленная последовательность может содержать переходы, циклы или пустые инструкции и не мешает выполнению других инструкций. Обратите внимание, что cycles должно быть целочисленной константой времени компиляции — то есть необходимо передать число, а не переменную, которая впоследствии может быть оптимизирована до константы. Число циклов задержки, создаваемой этой встроенной функцией, точно.
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-15.3.0/gcc/MSP430-Built_002din-Functions.html