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

 
 
> IAR 6.4 Optimization Bug, изменение работы алгоритма при включении оптимизации
Sagittarius
сообщение Oct 3 2012, 05:50
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 207
Регистрация: 26-01-06
Из: СПб
Пользователь №: 13 659



Здравствуйте.

Была в проекте написана простая функция преобразования числа uint32 в строку, без оптимизации работает, при включении Optimization/High/Speed и наличии опции Function Inlining вместо всего числа в строку заносит только последнюю цифру. Функцию конечно поправил так чтоб работала и при оптимизации но как то все равно неприятно, где еще ждать косяков.
сам код:

CODE
//
///8*************************************************
// перевод числа i в строку символов в buf длиной = maxlen
uint32_t Int2Str(uint32_t i,uint8_t *buf,uint32_t maxlen){
uint32_t j;
uint32_t k,l;
uint32_t idx;

idx=0;
// используется только для преобразования даты
if((i<10000)&&(maxlen)&&(maxlen<=4)){
for(j=(maxlen-1);j;j--){
buf[idx]='0';
k=Pow10(j);
for(l=9;l;l--){
if(i>=k){
i-=k;
buf[idx]++;
}else l=1; // выход из цикла
}
idx++;
}
buf[idx]='0'+i;
idx++;
}
// buf[idx]=0;
return idx;
}

///8*************************************************
uint32_t Pow10(uint32_t p){// возвращает 10^p
uint32_t ret=1;
if(p>8)ret=0;
else{
for(;p;p--)ret*=10;
}
return ret;
}




Отдельный проект с этими функциями в IAR:
Прикрепленный файл  iarbug.rar ( 15.32 килобайт ) Кол-во скачиваний: 76

Было обнаружено на STM32F103, проверено наличие бага и для LPC2378

Спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
KRS
сообщение Oct 15 2012, 10:44
Сообщение #2


Профессионал
*****

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



В новом IAR 6.40.5
компилятор
IAR ANSI C/C++ Compiler V6.40.4.54170/W32 for ARM
бага осталась
Go to the top of the page
 
+Quote Post
Andy Mozzhevilov
сообщение Oct 15 2012, 10:51
Сообщение #3


Знающий
****

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



Цитата(KRS @ Oct 15 2012, 14:44) *
В новом IAR 6.40.5
компилятор
IAR ANSI C/C++ Compiler V6.40.4.54170/W32 for ARM
бага осталась

Чтобы поправили, надо бы им в поддержку отписать. А то ж они - не телепаты.


--------------------
Пасу котов...
Go to the top of the page
 
+Quote Post
KRS
сообщение Oct 15 2012, 13:18
Сообщение #4


Профессионал
*****

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Цитата(Andy Mozzhevilov @ Oct 15 2012, 14:51) *
Чтобы поправили, надо бы им в поддержку отписать. А то ж они - не телепаты.

ЕМНИП раньше кто то с электроникса им отправлял.
у кого нибудь есть активная поддержка?
Go to the top of the page
 
+Quote Post
ig_z
сообщение Oct 15 2012, 13:31
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 437
Регистрация: 27-08-04
Пользователь №: 551



QUOTE (KRS @ Oct 15 2012, 16:18) *
ЕМНИП раньше кто то с электроникса им отправлял.
у кого нибудь есть активная поддержка?

По моему на сахаре человек с ником ASDFS имеет тех поддержку для армов.
Не знаю как сейчас, но раньше иаровцы игнорили багрепорты от простых смертных. По крайней мере три моих репорта для MSP430 и ARM оставались без внимания, пока не послал их через немецкого кастомера.
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Oct 17 2012, 06:51
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(ig_z @ Oct 15 2012, 16:31) *
Не знаю как сейчас, но раньше иаровцы игнорили багрепорты от простых смертных.

Ну не знаю, года два назад я переписывался с ИАРом по поводу того, что они перестали поддерживать неименнованные unions и убрали прямой доступ внутрь union.
Я прикинулся триал юзером, правда немецким sm.gif
Ответ был простой - пшол вон, у нас ANSI компилятор, что хотим, то делаем. А я уж порезвился тогда, корректируя проект.


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
jcxz
сообщение Oct 19 2012, 04:59
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Если кто отправлять будет, то напишите до кучи и про мой баг (писал о нём недавно сюда: http://electronix.ru/forum/index.php?showtopic=105402 )
Вдруг - поправят? wink.gif
А то сейчас по необходимости пользую IAR 6.21.1 (старый 5.50 который хорошо проверен на вшивость большими проектами с полной оптимизацией,
но к сожалению 5.50 не понимает через JTAG LPC1778) sad.gif(
И поэтому приходится ставить Low оптимизацию в 6.21.1.

ЗЫ: Проверил примеры из этой темы на своём IAR 6.21.1 - бага нет (ни с чётными ни с нечётными размерами циклов). Cortex-M3 High optimization (Size)


Go to the top of the page
 
+Quote Post
Andy Mozzhevilov
сообщение Oct 19 2012, 05:14
Сообщение #8


Знающий
****

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



Цитата(jcxz @ Oct 19 2012, 08:59) *
Если кто отправлять будет, то напишите до кучи и про мой баг (писал о нём недавно сюда: http://electronix.ru/forum/index.php?showtopic=105402 )
Вдруг - поправят? wink.gif

Чтобы послать баг с надеждой на его исправление и не имея тех.поддержки крайне желательно его локализовать в неком очень небольшом коде, который бы собрался в составе мелкого проекта, созданного в IDE IAR, архив которого им и отсылать. В вашем же коде просто кусок из программы, который не соберется. А если начать выкидывать что-то, может и баг исчезнуть.

Цитата
А то сейчас по необходимости пользую IAR 6.21.1 (старый 5.50 который хорошо проверен на вшивость большими проектами с полной оптимизацией,
но к сожалению 5.50 не понимает через JTAG LPC1778) sad.gif(
И поэтому приходится ставить Low оптимизацию в 6.21.1.

Собирайте проект в 5.50, а отладку запускайте хоть в 6.40. Там все совместимо по форматам out файлов. Главное, чтобы сам компилятор мог делать код для нужного ядра.

Цитата
ЗЫ: Проверил примеры из этой темы на своём IAR 6.21.1 - бага нет (ни с чётными ни с нечётными размерами циклов). Cortex-M3 High optimization (Size)

на 6.30 тоже его нет.


--------------------
Пасу котов...
Go to the top of the page
 
+Quote Post
jcxz
сообщение Oct 19 2012, 06:43
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(Andy Mozzhevilov @ Oct 19 2012, 11:14) *
В вашем же коде просто кусок из программы, который не соберется. А если начать выкидывать что-то, может и баг исчезнуть.

Если бы Вы хотя-бы открыли ту тему прежде чем отвечать, Вы бы заметили, что я цеплял там полностью проект.
Цитата(Andy Mozzhevilov @ Oct 19 2012, 11:14) *
Собирайте проект в 5.50, а отладку запускайте хоть в 6.40. Там все совместимо по форматам out файлов. Главное, чтобы сам компилятор мог делать код для нужного ядра.

Это понятно. Но хочется работать без гемора с постоянным переключением между компиляторами.....
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Sagittarius   IAR 6.4 Optimization Bug   Oct 3 2012, 05:50
- - Lotor   Что Вы хотели донести до общественности? Правильне...   Oct 3 2012, 06:01
|- - Sagittarius   Цитата(Lotor @ Oct 3 2012, 10:01) Что Вы ...   Oct 3 2012, 06:17
|- - Lotor   Цитата(Sagittarius @ Oct 3 2012, 10:17) 1...   Oct 3 2012, 06:50
- - VslavX   Цитата(Sagittarius @ Oct 3 2012, 08:50) Б...   Oct 3 2012, 06:55
|- - Sagittarius   Цитата(VslavX @ Oct 3 2012, 10:55) Вы мен...   Oct 3 2012, 07:43
|- - Lotor   Цитата(Sagittarius @ Oct 3 2012, 11:43) э...   Oct 3 2012, 08:31
|- - VslavX   Цитата(Sagittarius @ Oct 3 2012, 10:43) Р...   Oct 3 2012, 09:01
- - scifi   Кстати, и мне интересно. Без доказательств всё это...   Oct 3 2012, 10:14
|- - Sagittarius   в архиве проект под IAR, оптимизация включена. Зап...   Oct 3 2012, 11:21
- - KRS   Так вы бы листинг и привели с указанием ошибки...   Oct 3 2012, 11:44
- - scifi   Может быть, кому-то захочется покопаться: Исходник...   Oct 3 2012, 11:47
- - KRS   Видно что buf[idx]++; компилятор выкинул Кстати е...   Oct 3 2012, 12:30
- - chernenko   Может я не то что-то делаю, но у меня на 6.10 (дру...   Oct 3 2012, 12:40
- - KRS   так писали про 6.4 у меня IAR ANSI C/C++ Compiler...   Oct 3 2012, 12:52
|- - chernenko   Цитата(KRS @ Oct 3 2012, 16:52) так писал...   Oct 3 2012, 13:03
- - Lotor   Таки глюк компилятора... PS: Как действовать авто...   Oct 3 2012, 13:42
- - KRS   а новый компилер 6.40.4 (кажется) кто нибудь испол...   Oct 3 2012, 14:21
|- - Sagittarius   Цитата(KRS @ Oct 3 2012, 17:21) а новый к...   Oct 4 2012, 07:24
- - KRS   Глючат именно циклы с предусловием (и не только ци...   Oct 4 2012, 07:29
- - VslavX   Версия 5.41 - генерирует нормально. Мда, никак оно...   Oct 4 2012, 07:38
- - grisha_scorpion   Используйте квалификатор volatile. И будет вам сча...   Oct 10 2012, 07:33
|- - Сергей Борщ   QUOTE (grisha_scorpion @ Oct 10 2012, 10...   Oct 10 2012, 08:04
|- - grisha_scorpion   Цитата(Сергей Борщ @ Oct 10 2012, 12:04) ...   Oct 10 2012, 10:58
|- - scifi   Цитата(grisha_scorpion @ Oct 10 2012, 14...   Oct 10 2012, 11:09
|- - Сергей Борщ   QUOTE (grisha_scorpion @ Oct 10 2012, 13...   Oct 10 2012, 12:55
- - KRS   кстати с volatile тоже не все в порядке! при ц...   Oct 10 2012, 18:45
|- - scifi   Цитата(KRS @ Oct 10 2012, 22:45) кстати с...   Oct 10 2012, 19:26
- - MrAlex   а что уже можно тип не указывать? только unsigned?   Oct 11 2012, 08:35
|- - scifi   Цитата(MrAlex @ Oct 11 2012, 12:35) а что...   Oct 11 2012, 08:47
||- - IgorKossak   Цитата(jcxz @ Oct 19 2012, 09:43) Если бы...   Oct 19 2012, 07:31
||- - jcxz   При дальнейшем уменьшении проблемной функции, баг ...   Oct 19 2012, 12:21
|- - Sagittarius   Цитата(jcxz @ Oct 19 2012, 08:59) ЗЫ: Про...   Oct 22 2012, 06:21
- - Andy Mozzhevilov   Я достаточно давно ловил баг еще в какой-то 4-й ве...   Oct 15 2012, 16:03
- - KRS   Про бак IAR так и не узнал, по крайней мере в V6....   Nov 13 2012, 06:30
- - Nixon   А в новой, 6.50.2 версии он не вылечен?   Dec 24 2012, 14:19
|- - KRS   Цитата(Nixon @ Dec 24 2012, 18:19) А в но...   Dec 24 2012, 18:48
- - MK2   Еще один возможно прикол версии 6.4 Кодstatic clas...   Jan 30 2013, 10:07
- - Сергей Борщ   QUOTE (MK2 @ Jan 30 2013, 12:07) подобное...   Jan 30 2013, 10:19
- - MK2   Цитата(Сергей Борщ @ Jan 30 2013, 13:19) ...   Jan 30 2013, 11:45
- - zhz   В версии 6.50.5 баг с оптимизацией вроде бы исправ...   Apr 17 2013, 23:48
- - jcxz   Цитата(zhz @ Apr 18 2013, 05:48) В версии...   Apr 18 2013, 01:42
- - jcxz   И точно!!! Мой баг исправили, о котор...   Apr 18 2013, 04:58


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

 


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


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