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

 
 
> Помогите! Не работают OS*Post из прерываний
vitek101
сообщение Aug 25 2009, 11:09
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 24-08-09
Пользователь №: 52 013



Пишу для XMega128, IAR 5.20. Не работают вызовы OSMboxPost, OSSemPost и OSQPost из обработчика прерывания. Между задачами вызовы работают прекрасно, сами прерывания тоже работают (диоды моргают, байты в UART бегают). Что делать ума не приложу 07.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Andy Mozzhevilov
сообщение Aug 26 2009, 09:49
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 877
Регистрация: 26-01-05
Из: Екатеринбург
Пользователь №: 2 206



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


--------------------
Пасу котов...
Go to the top of the page
 
+Quote Post
vitek101
сообщение Aug 26 2009, 10:21
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 24-08-09
Пользователь №: 52 013



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


Спасибо за наводку. Сейчас попробую rolleyes.gif

Цитата(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 чтобы он всюду был виден? blush.gif

Код
void  BSP_USARTC0_RXC_IRQ_Hndlr (void)
{
  CPU_INT08U temp;
  temp = USARTC0.DATA;

  OSSemPost(App_Sem);
  BSP_LED_Toggle(8);
}
Go to the top of the page
 
+Quote Post
Andy Mozzhevilov
сообщение Aug 26 2009, 10:31
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 877
Регистрация: 26-01-05
Из: Екатеринбург
Пользователь №: 2 206



Цитата(vitek101 @ Aug 26 2009, 14:21) *
Вот обработчик, вызываемый из приведенного выше асмового обработчика. Эта процедура находится в файле bsp.c. App_Sem и задача объявляются в App.c. А не подскажете, как надо правильно объявлять App_Sem чтобы он всюду был виден? blush.gif

Говорю же, у вас проблемы с Си, а вы сразу за ОС.
Читайте о ключевом слове extern.


--------------------
Пасу котов...
Go to the top of the page
 
+Quote Post
vitek101
сообщение Aug 26 2009, 10:55
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 24-08-09
Пользователь №: 52 013



Цитата(Andy Mozzhevilov @ Aug 26 2009, 14:31) *
Говорю же, у вас проблемы с Си, а вы сразу за ОС.
Читайте о ключевом слове extern.


Заработало! Спасибо!!! 08.gif
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 24th July 2025 - 15:56
Рейтинг@Mail.ru


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