ReAl 0 13 апреля, 2013 Опубликовано 13 апреля, 2013 · Жалоба Проверил, прерывания USART1 обрабатываются корректно при scmRTOS_CONTEXT_SWITCH_SCHEME 1 если в конфигурации RTOS установить scmRTOS_CONTEXT_SWITCH_USER_HOOK_ENABLE 1Да, увы, ошибка в примерах в файле scmRTOS_CONFIG.h. Произошла из-за ложной уверенности, что она уже невозможна — благодаря проверке в scmRTOS_TARGET_CFG.h https://groups.google.com/group/scmrtos-ru/...53647bfc8?hl=ru (и письма туда упадут и мне в почту) (только туда писать нужно аккуратно) Разница в скорости в 20 с лишним раз.Похоже,из-за постоянного висения в прерывании SPM_READY.Именно так. Между прерываниями по одной команде основного кода. Проверяется влёгкую включением хуков, но заменой имеющегося на INLINE void context_switch_user_hook() { CPL(SPM_ISR_DBG_PIN); } где SPM_ISR_DBG_PIN — любая свободная ножка. Да, где-то говорилось, что «раз так, может этот хук системным должен быть, а не пользовательским». Нет, он именно пользовательский. Система не знает, какое прерывание будет использовано и что для него нужно. В примере AVR/GCC/MEGA/2-Message используется прерывание аналогового компаратора и никакие хуки не нужны, оно сбрасывается при входе в обработчик. Так что хук должен определяться попроектно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться