Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как работает UCOS
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Операционные системы > uC/OS-II
Exstreem
Всем доброго времени суток.
Решил посмотреть беглым взглядом как написана ucos_ii. Меня удивила одна вещь, заключающаяся в следующем.
Например, функция создания задачи.
#if OS_TASK_CREATE_EN > 0
INT8U OSTaskCreate (void (*task)(void *p_arg),
void *p_arg,
OS_STK *ptos,
INT8U prio).
OS_TASK_CREATE_EN всеречается только 2 раза:
#define OS_TASK_CREATE_EN 1 /* Include code for OSTaskCreate() и
INT16U const OSTaskCreateEn = OS_TASK_CREATE_EN;
Вопрос в следующем: зачем проверяют #if OS_TASK_CREATE_EN > 0, если он всегда равен 1, т.к. нет отмены определения этого идентификатора?
AlexandrY
Так этот дефайн вы и должны сами вручную переопределить если решите что функция OSTaskCreate вам не нужна.
Это и есть нормальный стиль конфигурирования uCOS.


Цитата(Exstreem @ Aug 6 2009, 09:15) *
Всем доброго времени суток.
Решил посмотреть беглым взглядом как написана ucos_ii. Меня удивила одна вещь, заключающаяся в следующем.
Например, функция создания задачи.
#if OS_TASK_CREATE_EN > 0
INT8U OSTaskCreate (void (*task)(void *p_arg),
void *p_arg,
OS_STK *ptos,
INT8U prio).
OS_TASK_CREATE_EN всеречается только 2 раза:
#define OS_TASK_CREATE_EN 1 /* Include code for OSTaskCreate() и
INT16U const OSTaskCreateEn = OS_TASK_CREATE_EN;
Вопрос в следующем: зачем проверяют #if OS_TASK_CREATE_EN > 0, если он всегда равен 1, т.к. нет отмены определения этого идентификатора?
Exstreem
Но там много таких дефайнов. Надо вручную "отключать" неиспользуемые функции?
(Извините, если показался вопрос глупым, но я еще на начальной стадии освоения).

Спасибо, AlexandrY.
Сейчас глубже поковырялся в инете и нашел ответ на свой вопрос. Как раз ими можно отключить, что не нужно.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.