Цитата(Bosicc @ Feb 14 2007, 11:34)

Хорошо.... Рассмотрение данного примера значительно расширило мой кругозор но так и не дало желаемых знаний.
Пример работает хорошо, задания запускаются и вроде бы его работа понятна.
Только вот немогу понять, когда писал свою программку на моменте выполнения функции os_init_context() из файла RTX_Config.c, на моменте
/* Allocate the memory space for the stack. */
p_TCB->stack = _alloc_box (m_stk);
программа подвисает.
Как можно понять и где почитать, как это все работает. Читал хелп, но из него понять что предварительно надо сделать для того что б это все заработало...
И что самое парадоксальное, использование работающих файлов из одного проекта, не дает работоспособности в другом. А лепить свой проект из заготовок, работу которых я не понимаю, очень не хочеться. Может есть хорошее описание всего этого дела?
Да действительно в хелпе не шибко подробно все описано.

Но если знать принципы работы операционных систем жесткого реального времени (ссылок на литературу об них этом форуме много ), то в общем то все более понятно становится.

Боле подробного описания на RTL-ARM Keil, я не нашел.
Чтобы все заработало нужно:
- В Target выбрать RTX Kernel
- Настроить Startup.s - здесь инициализация железяки
(Железяка описана в даташите на микросхему,настройка в хелпе, для филипса например есть еще книжка Тревора Мартина);
- Настроить RTX_Config - здесь инициализация RTOS(описание в хелпе) (нужно обратить внимание на выделение размера стека дело в том что printf требует большого стека до 1.5 K(если float пользуете));
- Настроить Retarget.c (если есть необходимость) (описание в хелпе);
- Создать задачу инициализации;
- В задаче инициализации
проинициализировать систему и
создать задачи;
- В конце задачи инициализации выполнить функцию удаления задачи инициализации;