winniethepooh 0 19 мая, 2016 Опубликовано 19 мая, 2016 · Жалоба Здравствуйте. извините за сумбур. есть библиотека драйверов и функция Mfs_Write(mfs*, int buffer, bool flag) имеется функция для создания очереди xQueueCreate (freertos). если Mfs_Write вызывается до xQueueCreate то программа работает, если наоборот то не работает (застревает в цикле). выход из цикла по условию что буфер для передачи опустел, но этого не происходит т.к. не вызывается обработчик прерываний Tx uart. не понятно почему, если Mfs_Write после xQueueCreate, то обработчик перестает вызываться? (флаги разрешения прерывания стоят) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
golf2109 0 19 мая, 2016 Опубликовано 19 мая, 2016 · Жалоба дело наверное в приоритетах Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
winniethepooh 0 20 мая, 2016 Опубликовано 20 мая, 2016 (изменено) · Жалоба дело наверное в приоритетах вы были правы, в момент создания очереди происходит вход в критическую секцию и запрет прерываний уровнем ниже configMAX_SYSCALL_INTERRUPT_PRIORITY по этому обработчик не вызывался. Изменено 20 мая, 2016 пользователем winniethepooh Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться