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

 
 
> Неправильно отрабатывают условия ">" и "<" в IAR-е (микроконтроллер AT91SAM7X256)
Igor_F
сообщение Apr 10 2008, 06:51
Сообщение #1





Группа: Новичок
Сообщений: 5
Регистрация: 18-12-07
Пользователь №: 33 392



Подскажите, сталкивался ли кто-нибудь с подобной проблемой: при проверки условий "больше-меньше" (видим это в отладчике) программа явно неправильно проверяет эти условия в for-ах, if-ах и т.п.

Например:

for( uxPriority = 0; uxPriority <configMAX_PRIORITIES; uxPriority++ ) // здесь configMAX_PRIORITIES=255
{
vListInitialise( ( xList * ) &( pxReadyTasksLists[ uxPriority ] ) );
}

В отладчике видим, что uxPriority дествительно =0, но в цикл мы не попадаем.
С подобной проблемой сталкиваемся постоянно в разных частях программы, хотя вся оптимизация выключена.

Если кто-то встречался с данной проблемой, подскажите, как с ней бороться.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
richie
сообщение Apr 10 2008, 07:13
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 147
Регистрация: 5-07-04
Из: Обнинск
Пользователь №: 261



Цитата(Igor_F @ Apr 10 2008, 09:51) *
for( uxPriority = 0; uxPriority <configMAX_PRIORITIES; uxPriority++ )


uxPriority как догадываюсь имеет тип "signed char" ?
Go to the top of the page
 
+Quote Post
Dir
сообщение Apr 10 2008, 11:09
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 201
Регистрация: 6-01-05
Пользователь №: 1 830



Цитата(richie @ Apr 10 2008, 10:13) *
uxPriority как догадываюсь имеет тип "signed char" ?


wink.gif Тоже так думаю, что напутано с объявлениями (или присвоениями) типа char по умолчанию (radio button "plain char is" в настройке компилятора). Вот и путает 255 с -1;
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 20th August 2025 - 04:27
Рейтинг@Mail.ru


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