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

 
 
> Я боюсь 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
Ответов
zltigo
сообщение May 27 2008, 17:59
Сообщение #2


Гуру
******

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



Картинки какие-то, ну очень цветные...
Предпочитаю листинги читать.
Код
     17          void main()
     18          {
   \                     main:
   \   00000000   30402DE9           PUSH     {R4,R5,LR}
     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   400E50E3           CMP      R0,#+1024
   \   00000014   010000BA           BLT      ??main_0
   \   00000018   0FE0A0E1           MOV R14,R15      
   \   0000001C   000000EA           B        ??main_1
     21              else asm("MOV R15,R14");
   \                     ??main_0:
   \   00000020   0EF0A0E1           MOV R15,R14      
     22              cnt = 1024;
   \                     ??main_1:
   \   00000024   400EA0E3           MOV      R0,#+1024
   \   00000028   000084E5           STR      R0,[R4, #+0]
     23              stop();
   \   0000002C   ........           LDR      R5,??DataTable3 ;; `?<Constant "\\375\\362\\356 \\352\\356\\355\\345\\366\\`
   \                     ??main_2:
   \   00000030   0510A0E1           MOV      R1,R5
   \   00000034   040084E2           ADD      R0,R4,#+4
   \   00000038   ........           _BLF     sprintf,??sprintf??rA
   \   0000003C   FBFFFFEA           B        ??main_2
     24          }

Это правда 4.42, и раритетных не коллекционирую, посему рассмотреть подробно не могу.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post



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

 


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


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