ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
19 мая
122514 Топик полностью
Alex B. (09.06.2008 18:55, просмотров: 184) ответил abivan на 1.Как убить динамически созданную задачу? 2.Где сбрасывать WDT?
ответы: http://caxapa.ru/91777.html
http://wiki.pic24.ru/doku.php/tnkernel/ref/task/tn_task_exit
1. для того чтобы задача убила сама себя нужно вызвать сервис tn_task_exit() с параметром TN_EXIT_AND_DELETE_TASK. Однако! Память при этом не освобождается - сервис (как впрочем и сама задача) не знает, как ты выделил память - статически или динамически. Т.е. просто обнуляется TCB и задача удаляется из всех очередей. Обнуленный TCB потом можно использовать для создания другой задачи или освободить другой задачей (если используется malloc). 2. по второй ссылке некое обсуждение... p.s. если используешь динамическое выделение с вытесняющей ртос, то надо помнить, что все функции работы с кучей не thread-safe. Т.е. нужно либо мютекс вводить, либо запрещать переключение контекста http://wiki.pic24. …/tn_sys_enter_critical
Согласуйте импеданс!