|
Версии IAR -> EWAVR 4.30A, Есть ли смысл апгрэдить? |
|
|
|
Jun 13 2007, 17:28
|

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

|
Цитата(rezident @ Jun 13 2007, 19:56)  Дык оно универсальное. Концентрацию только чуть увеличить нужно Да. Проверено. Новенькое: Код New features Improved handling of small aggregate types (structures and unions) and registers.
A new extended keyword __no_runtime_init has been added to the product. For more information, see manual corrections.
Known problems ..........................
Program corrections EW19158: struct copying, with variable clustering enabled could result in an internal error.
EW19095: On low optimization levels a MULS could be generated instead of a FMULS.
EW19066: A cast from a __generic pointer to a flash pointer could modify the __generic pointer. This has been corrected.
EW19048: The files iopwm2.h, iopwm3.h, iowm2b.h, and iopwm3b.h have been updated to match revision H of Atmel's specification of these devices.
EW18976: Nested loops with constant trip counts could be incorrectly optimized. Nested loops should now execute the correct number of iterations.
EW18966: The files lnkm644ps.xcl and cfgm644p.xcl now have a correct interrupt vector table size.
EW18847: The intrinsic __dgetexp did not generate correct code in all cases, this has now been corrected.
EW18827: The alternate bit names for UCSRnA, UCSRnB and UCSRnC when the USART is in SPI master mode has beem added to the files iom2560.h and iom2561.h.
EW18800: The erroneous transfer of a supplied memory type attribute to const parameters no longer occurrs.
EW18719: The call stack information was broken for code located above 0x4000 on the devices ATmega640, ATmega1280, and ATmega1281.
EW18047: A problem that could cause an internal error when the option --mfc was used has been corrected.
Miscellaneous The CBRA and SBRA instructions are supported. Related command line options are: --enable_cbra_sbra --set_cbra_sbra_address
__x, __z __x_z, __z_x The compiler defines the function type attributes __x, __z __x_z, and __z_x which are used by parts of the runtime library. These attributes can give very efficient code in a local perspective, but should be used with care as they change the calling convention and may have a negative effect on the size of the entire application.
Keyword Description __x The first pointer in the parameter list is placed in register X __z The first pointer in the parameter list is placed in register Z __x_z The first pointer in the parameter list is placed in register X and the second one in register Z __z_x The first pointer in the parameter list is placed in register Z and the second one in register X
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jun 13 2007, 18:07
|
Местный
  
Группа: Свой
Сообщений: 358
Регистрация: 27-06-06
Из: Новосибирск
Пользователь №: 18 410

|
Цитата Дык оно универсальное. Концентрацию только чуть увеличить нужно. В ридми все описано. Вместо 10_WIN видимо 11_WIN нужно. Спасибо! Пациент лекарство принял, теперь готов к подвигам (:
|
|
|
|
|
Jun 13 2007, 18:36
|

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

|
Первое впечатление от теста положительное. Проект на С++ достаточно большой (выходной код ~120kB). Всё работает. Но! При том же уровне оптимизации (макс. по скорости) код увеличился ~2kB. стал анализировать и обнаружил в числе прочего, что компилятор позаменял вызов некоторых функций (в основном это короткие прологи/эпилоги) инлайновыми вставками. Таким образом получается даже немного быстрее. При открытии старого (версии 4.21) воркспейса с проектами воркбенч сказал, что они старого??? формата и перевёл их на новый, хотя я в сравнении особой разницы не заметил. Новые фичи в pdf так и не внесены, так что надо читать manuals.htm. Наконец то легализовали __x __x_z и др., но предостерегают ими злоупотреблять. Глюк с __eeput64_16 в eeprom.s90 (я уже писал о нём) так и не исправили, ему уже скоро пять лет исполнится
|
|
|
|
|
Jun 13 2007, 22:54
|

Местный
  
Группа: Свой
Сообщений: 386
Регистрация: 1-12-05
Пользователь №: 11 639

|
Цитата(IgorKossak @ Jun 13 2007, 21:36)  Первое впечатление от теста положительное. А у меня первое впечатление отрицательное: При попытке откомпилировать старый проект (максимальная оптимизация по размеру) были получены заметно различные результаты оптимизации: Цитата Версия 4.21А:
7 747 bytes of CODE memory (+ 24 bytes shared) 667 bytes of DATA memory (+ 26 bytes shared) 25 bytes of XDATA memory
Errors: none Warnings: none
Версия 4.30A
7 821 bytes of CODE memory (+ 24 bytes shared) 667 bytes of DATA memory (+ 26 bytes shared) 25 bytes of XDATA memory
Errors: none Warnings: none Тоесть разница составляет 74 байта.... Хотя помнится мне что в версии 4.21А чтобы получить "7 747 bytes of CODE" пришлось попотеть в битве за парочку байтов.... А тут разница в 74 байта !!!
|
|
|
|
|
Jun 20 2007, 09:07
|
Участник

Группа: Свой
Сообщений: 43
Регистрация: 17-10-06
Из: Санкт Петербург
Пользователь №: 21 387

|
Цитата(OLEG_BOS @ Jun 14 2007, 02:54)  А у меня первое впечатление отрицательное: При попытке откомпилировать старый проект (максимальная оптимизация по размеру) были получены заметно различные результаты оптимизации: Тоесть разница составляет 74 байта.... Хотя помнится мне что в версии 4.21А чтобы получить "7 747 bytes of CODE" пришлось попотеть в битве за парочку байтов.... А тут разница в 74 байта !!!  Может это связано с: Цитата EW18976: Nested loops with constant trip counts could be incorrectly optimized. Nested loops should now execute the correct number of iterations. Исправили глюк в оптимизации, вот код нормально стал генерироваться и как следствие стал больше.
|
|
|
|
|
Jun 20 2007, 11:40
|

Местный
  
Группа: Свой
Сообщений: 386
Регистрация: 1-12-05
Пользователь №: 11 639

|
Цитата(IceS @ Jun 20 2007, 12:07)  ....как следствие стал больше. Уважаемый IceS, я что- непойму: это есть хорошо или это есть плохо ? Цитата Исправили глюк в оптимизации, вот код нормально стал генерироваться А Вы думаете в Версии 4.21A у меня получился по Вашей логике "не нормальный" код ? А как же тогда устройство работает и успешно реализуется ? Цитата Может это связано с: А что тут думать и гадать - возьмите в обоих версиях включите галочку Linker -> List-> Generate linker listing и посмотрите какой код генерит одна и другая версия... Возможно у Вас еще появятся предположения и философские мысли по поводу того с какой ноги надо встать что бы IAR генерил правильный код Незнаю как Вас, Уважаемый IceS, а лично меня в первую очередь интересует конечный результат - это законченное рабочее устройство, а не диссертации на нему "Недостатки и преимущества различных версий IAR". В моем предыдущем посте я высказал сугубо мое субъективное мнение которое не является "словом в последней инстанции" - каждый волен выбирать сам что ему по душе и с чем ему работать.
|
|
|
|
|
Jun 20 2007, 13:40
|

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

|
Цитата(OLEG_BOS @ Jun 20 2007, 14:40)  В моем предыдущем посте я высказал сугубо мое субъективное мнение которое не является "словом в последней инстанции" - каждый волен выбирать сам что ему по душе и с чем ему работать. Ну и чего было так волноваться? Здесь не только Вы имеете право высказывать субьективное мнение. А у IceS оно оказалось весьма правдоподобным. Что касается работоспособности и продаваемости изделий, то неоднократно приходилось видеть и исправлять подобные программы, где глюк на глюке. Ибо под работоспособностью чаще понимается удовлетворительный результат, а далеко не всегда правильный. А о том, что зачастую "продают" я вообще молчу.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|