JeDay (25.09.2005 01:34, просмотров: 3759)
RTOS - uCOS-II (для AVR). Спецы помогите... Папу вопросиков интересует Осваиваю теорию написания прог под данную ОС. Еще ниразу не шил МК.
Юзаю ATmega64 и ОС 2.80. Порт под ATmega128.
Вот что я пока мне не понятно...
1. Из каких соображений выбирать глубину стека ? Из соображений вложенных прерываний ? Если не хочу вложенных то сколько резервировать стека ?
2. В примере Ex1-OS перед OSInit() присвоение значения размера стека. Это надо делать ? В даташите этого не нашел.
OSTaskStkSize = OS_TASK_IDLE_STK_SIZE; // ?
OSTaskStkSizeHard = OS_TASK_IDLE_STK_SIZE_HARD; // ?
OSInit();
3. В каталоге ядра есть исходник os_dbg_r.c, а в портах МК файл os_dbg.c. Какой подключать в проэкт надо ? И чем они отличаются ?
4. Как корректно вызвать OSTimeTick() из прерывания по совпадению от системного таймера? Насколько я понял, надо както хитро стек сохранять...и критические секции вводить...
5. Где правильнее всего инициализировать МК ? Перед OSInit(), перед OSStart() или гдето в другом месте ?
6. os_cpu_c.c - Листинг заблокирован. Как Hook функции переопределить ?
7. Нужны ли мемори блоки ? Или можно обойтись обычным выделением памяти ?
8. Когда разрешать прерывания ? Или OSStart() устанавливает сама ?
Зараннее спасибо.