Цитата(Andy Mozzhevilov @ Aug 26 2009, 13:49)

Во-первых, пользуйтесь тегом code для вставки исходных текстов.
Во-вторых, вы не показали здесь функцию прерывания, в которой делается OSSemPost.
Попытаюсь проявить телепатические способности:
Вызов OSSemPost у вас происходит в другом модуле, а App_Sem в приведенном вами тексте объявлен как static, то есть его область видимости ограничена этим модулем (единицей компиляции).
Соответственно, переменная App_Sem, которую вы используете в OSSemPost - это другая переменная в другой области видимости, которая у вас не инициализируется.
Покажите свой код, как вы объявляете и импользуетет App_Sem в другом модуле.
Проследите в отладчике, по каким адресам у вас лежат эти переменные, чем и когда они инициализируются.
Спасибо за наводку. Сейчас попробую

Цитата(Andy Mozzhevilov @ Aug 26 2009, 13:49)

Во-первых, пользуйтесь тегом code для вставки исходных текстов.
Во-вторых, вы не показали здесь функцию прерывания, в которой делается OSSemPost.
Попытаюсь проявить телепатические способности:
Вызов OSSemPost у вас происходит в другом модуле, а App_Sem в приведенном вами тексте объявлен как static, то есть его область видимости ограничена этим модулем (единицей компиляции).
Соответственно, переменная App_Sem, которую вы используете в OSSemPost - это другая переменная в другой области видимости, которая у вас не инициализируется.
Покажите свой код, как вы объявляете и импользуете App_Sem в другом модуле.
Проследите в отладчике, по каким адресам у вас лежат эти переменные, чем и когда они инициализируются.
Вот обработчик, вызываемый из приведенного выше асмового обработчика. Эта процедура находится в файле bsp.c. App_Sem и задача объявляются в App.c. А не подскажете, как надо правильно объявлять App_Sem чтобы он всюду был виден?
Код
void BSP_USARTC0_RXC_IRQ_Hndlr (void)
{
CPU_INT08U temp;
temp = USARTC0.DATA;
OSSemPost(App_Sem);
BSP_LED_Toggle(8);
}