реклама на сайте
подробности

 
 
> Вопросы по RTOS TNKernel 2.6
yurmala
сообщение May 13 2011, 03:55
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 65
Регистрация: 9-02-11
Из: Трехгорный
Пользователь №: 62 814



Здравствуйте! Есть Keil-овский проект на базе TNKernel. Через неопределенное время проект подвисает (причем не всегда), поэтому стал погружаться глубже в эту систему в поисках ответов.
Подскажите пожалуйста:
1) Проект построил на основе примеров входящих в дистрибутив TNKernel. Там везде проекты работают в режиме Supervisor. И мой проект соответственно тоже. Для чего? Правильно ли, что все происходит в этом режиме? Это обязательное условие для TNKernel?
2) Как можно программно отследить состояние стека? Или размер свободного ОЗУ. Хотелось бы в режиме #define DEBUG периодически выводить на терминал состояние памяти/стека...
Заранее спасибо за помощь.

p.s. проект в начальной стадии. пока просто :
-мигает светодиодами
-ведет свой календарь (время)
-выводит на ЖК это время (HH:MM:SS)
-опрос через АЦП одного датчика.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Vlad27
сообщение May 16 2011, 05:49
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 95
Регистрация: 31-07-05
Из: Полоцк Беларусь
Пользователь №: 7 227



Вроде бы для сброса флагов в прерывании предназначен сервис tn_event_iclear().
Go to the top of the page
 
+Quote Post
yurmala
сообщение May 16 2011, 09:51
Сообщение #3


Участник
*

Группа: Свой
Сообщений: 65
Регистрация: 9-02-11
Из: Трехгорный
Пользователь №: 62 814



Цитата(Vlad27 @ May 16 2011, 11:49) *
Вроде бы для сброса флагов в прерывании предназначен сервис tn_event_iclear().

пардон. моя ошибка. конечно, речь идет про установку флага. Но суть вопроса остается.
т.е. Задачи, ожидающие установку флага - запускаются не все, если флаг устанавливается "группой битов"
Код
tn_event_iset(&program_event,(_PE_FLAG_MENU_REFRESH_|_PE_FLAG_RUN_|_PE_ALLOW_LEDS_));

в этом случае запускается задача ожидающая флаг _PE_FLAG_MENU_REFRESH_ - и только она

в то время как установка флага побитно срабатывает корректно - все задачи запускаются.
Код
tn_event_iset(&program_event,_PE_FLAG_MENU_REFRESH_);
tn_event_iset(&program_event,_PE_FLAG_RUN_);
tn_event_iset(&program_event,_PE_ALLOW_LEDS_)
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd August 2025 - 23:46
Рейтинг@Mail.ru


Страница сгенерированна за 0.01361 секунд с 7
ELECTRONIX ©2004-2016