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

 
 
> Я боюсь IARа :-), Кто глючит - я или он?!?
GetSmart
сообщение May 27 2008, 17:40
Сообщение #1


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Недавно в теме "typedef" обнаружил нечто. Сначала думал у меня руки кривые. Потом создал простейший проект в IAR EWARM 4.20 и испугался не на шутку. Потому как уже много проектов делал на ИАРе с максимальной оптимизацией. Можно сказать, на кон поставлена моя репутация (smile.gif). Ведь все шишки от заказчиков повалятся на меня, а не на IAR.

Вобщем, прилагаю скриншот проекта. Ничего особенного. Всё что надо - видно на экране. Ассемблерные вставки применял в качестве volatile кода, чтобы наглядно и компилер не выкинул. Разумеется их можно заменить на любые другие действия. Всё чудесно работает на низких и средних оптимизациях, но не на максимальных (обоих). Самое интересное выделено красным. Зелёная полоса - начало main(). Проект тоже прикрепил на всякий пожарный.
Эскизы прикрепленных изображений
Прикрепленное изображение
 


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
GetSmart
сообщение May 27 2008, 18:02
Сообщение #2


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



А вот мой:
Код
   \                                 In segment CODE, align 4, keep-with-next
   \   00000000                      CODE32      
     17          void main()
     18          {
   \                     main:
   \   00000000   30402DE9           STMDB       SP!,{R4,R5,LR}    ;; Push
     19              init();
   \   00000004   ........           BL          init
     20              if (cnt >= 1024) asm("MOV R14,R15");
   \   00000008   ........           LDR         R4,??DataTable2   ;; cnt
   \   0000000C   000094E5           LDR         R0,[R4, #+0]
   \   00000010   0FE0A0E1           MOV R14,R15
     21              else asm("MOV R15,R14");
   \   00000014   0EF0A0E1           MOV R15,R14
     22              cnt = 1024;
   \   00000018   400EA0E3           MOV         R0,#+0x400
   \   0000001C   000084E5           STR         R0,[R4, #+0]
     23              stop();
   \   00000020   ........           LDR         R5,??DataTable3   ;; `?<Constant "\\375\\362\\356 \\352\\356\\355\\345\\366\\`
   \                     ??main_0:
   \   00000024   0510A0E1           MOV         R1,R5
   \   00000028   040084E2           ADD         R0,R4,#+0x4
   \   0000002C   ........           _BLF        sprintf,sprintf??rA
   \   00000030   FBFFFFEA           B           ??main_0
     24          }


Сообщение отредактировал GetSmart - May 27 2008, 18:06


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
zltigo
сообщение May 27 2008, 18:05
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(GetSmart @ May 27 2008, 20:02) *
А вот мой:

А сишный исходник для чего похерили???


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
GetSmart
сообщение May 27 2008, 18:15
Сообщение #4


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата(zltigo @ May 28 2008, 00:05) *
А сишный исходник для чего похерили???
Я их просто не включил. Вот архив вместе с листингами.


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 02:16
Рейтинг@Mail.ru


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