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

 
 
> IAR ARM C 4.20a - bug
Andy Mozzhevilov
сообщение May 25 2005, 03:28
Сообщение #1


Знающий
****

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



Потратил день времени на вылавливание следующего бага:

short mamont[128];
char slon1;
char slon2;

void mamont_init(void)
{
mamont[0] = 1;
slon1 = 0;
slon2 = 0;
}
\ mamont:
\ 00000000 DS8 256
2 char slon1;
\ slon1:
\ 00000100 DS8 1
3 char slon2;
\ slon2:
\ 00000101 DS8 1
4
...
5 void mamont_init(void)
6 {
7 mamont[0] = 1;
\ ??mamont_init:
\ 00000000 10009FE5 LDR R0,??mamont_init_1 ;; mamont
\ 00000004 0110A0E3 MOV R1,#+0x1
\ 00000008 B010C0E1 STRH R1,[R0, #+0]
8 slon1 = 0;
\ 0000000C 0010A0E3 MOV R1,#+0x0
\ 00000010 B010C0E1 STRH R1,[R0, #+256]
9 slon2 = 0;

slon1 и slon2 располагаются в памяти рядом. Компилятор, начиная с уровня оптимизации 6, считает, что раздельное обнуление этих переменных через STRB можно соптимизировать в одно обращение через STRH сразу для обеих переменных. При этом несколько забывая, что для STRH максимальный оффсет задается 8 битами и не может превышать 255. Баг проявляется, если нужно смещение 256,
если оффсет нужен больше, то там все нормально. В 4.11a этого бага нет.
regexp для поиска этого бага в lst файлах :
STRH R.+,\[R.+, #\+256\]


--------------------
Пасу котов...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Andy Mozzhevilov
сообщение Jun 1 2005, 05:56
Сообщение #2


Знающий
****

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



Ответ IAR:

Thank for letting us know about this bug. The bug report have
been filed and the ID is EW16885. As we are going to make a
new version (4.30A) late in June, will we be able to correct this
bug quickly. Thank you once more.

-----

The Product Manager for EWARM got back to me and told
me that the work around is to turn of clustering when using
the higher optimizations.

Ну это понятно, но тогда код пухнет значительно.


--------------------
Пасу котов...
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Jun 1 2005, 14:46
Сообщение #3


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Цитата(Andy Mozzhevilov @ Jun 1 2005, 08:56)
Ответ IAR:
...
*

Ну надо же, как повезло!
А вот мои сообщения о багах (их уже с десяток) иаровцы высокомерно игнорируют. Правда я им на их же форуме сообщал, и даже под разными никами. Ноль внимания. Они что, свой форум не читают?
А как Вы им сообщили о баге?
Go to the top of the page
 
+Quote Post
Andy Mozzhevilov
сообщение Jun 2 2005, 03:34
Сообщение #4


Знающий
****

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



Цитата(IgorKossak @ Jun 1 2005, 19:46)
Цитата(Andy Mozzhevilov @ Jun 1 2005, 08:56)
Ответ IAR:
...
*

А как Вы им сообщили о баге?
*



на support@iar.se


--------------------
Пасу котов...
Go to the top of the page
 
+Quote Post
Andy Mozzhevilov
сообщение Jun 29 2005, 05:50
Сообщение #5


Знающий
****

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



Проверил - в 4.30a этот баг исправлен


--------------------
Пасу котов...
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Jun 29 2005, 12:57
Сообщение #6


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Цитата(Andy Mozzhevilov @ Jun 29 2005, 08:50)
Проверил - в 4.30a этот баг исправлен
*

Так потому и релиз вышел, что весьма серьёзный баг обнаружили.
Хотя в релиз ноте пишут, что вдобавок ко всему, библиотеку плавающей точки ускорили вдвое. Это приятно, т. к. раньше мелькали посты, в которых именно по этому пункту народ отдавал предпочтение Кейлу.
Go to the top of the page
 
+Quote Post



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

 


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


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