1) В прерываниях вызываю taskYIELD();
а в portmacro.h
такое:
/* Scheduler utilities. */
extern void vPortYieldFromISR( void );
#define portYIELD() vPortYieldFromISR()
#define portEND_SWITCHING_ISR( xSwitchRequired ) if( xSwitchRequired ) vPortYieldFromISR()
/*-----------------------------------------------------------*/
т.е. посути taskYIELD(); равносильно portEND_SWITCHING_ISR( xSwitchRequired ) если xSwitchRequired
только не понял что за параметр - xSwitchRequired
2) Есть три канала АЦП их приоритеты прерываний 150, 149, 148
xSemaphoreGiveFromISR() вызывается в прерывании с приоритетом 148,
вываливается вот сюда где написано:
/* *** NOTE ***********************************************************
If you find your application is crashing here then likely causes are:
1) Stack overflow -
see
http://www.freertos.org/Stacks-and-stack-o...w-checking.html 2) Incorrect interrupt priority assignment, especially on Cortex M3
parts where numerically high priority values denote low actual
interrupt priories, which can seem counter intuitive. See
configMAX_SYSCALL_INTERRUPT_PRIORITY on
http://www.freertos.org/a00110.html 3) Calling an API function from within a critical section or when
the scheduler is suspended.
4) Using a queue or semaphore before it has been initialised or
before the scheduler has been started (are interrupts firing
before vTaskStartScheduler() has been called?).
See
http://www.freertos.org/FAQHelp.html for more tips.
**********************************************************************/
кроме этих трех прерываний прерываний больше нет
не знаю на что и грешить ((