Перейти к содержанию
    

Новая версия IAR EW430 4.10A

Появился свежий компилятор для MSP430 - перепрыгнул аж на 4 версию.

Но IDE, хоть и 4.0, но совсем не совместима с прочими IDE V4 - ставить отдельно. Приручение обычное.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Появился свежий компилятор для MSP430 - перепрыгнул аж на 4 версию.

Плиз, залей на FTP, что то не хочет он 30дневку мне отдавать..((

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

По наводке из пустыни обнаружил, что на сайте производителя появилась новая версия компилятора IAR Embedded Workbench version 4.10 for TI MSP430. Поскольку там высказывалось сомнение, то скачал. Действительно скачивается новая версия. Посему краткий отчет поверхностного исследования ее.

Зная какой самый первый вопрос интересует российских эмбеддеров, сообщаю - после увеличения дозы для версии на 1/10 таблетка по-прежнему работает. ;)

Далее. Дистриб на 13 Метров больше предыдущего. На этапе установки кроме собственно IAR EW дополнительно установился Microsoft Visual C++ 2005. :cranky: Не поэтому ли дистриб на 13 Метров потолстел? Версии проекта традиционно несовместимы, посему IDE при открытии его предлагает старый (созданный в 3.42а) конвертировать. Ну сконвертировал. Визуально IDE не изменилось. После этого сразу полез в опции проекта.

В опциях оптимизации вместо выпадающего списка чекбоксы. Кроме Speed и Size появилась Balanсed, но выбирать из них можно лишь при установленном уровне оптимизации High. При выборе других уровней оптимизации "лишнее" затенено/недоступно. Кстати, забегая вперед, при компиляции проекта выскочила ошибка, связанная с этим нововведением.

Error[e117]: Incompatible runtime models. Module acorr specifies that '__rt_version' must be '3', but module

math has the value '2'

Error while running Linker

Видимо все-таки конвертация проекта не совсем гладко проходит. Пришлось зайти в опции проекта и выбрать medium, потом снова high-speed. После этого скомпилировалось.

Далее. Заметил, что список поддерживаемых эмуляторов увеличился. Кроме TI (LPT-FET, USB-FET), J-Link и SoftBaugh (LPT, USB, USB Pro), поддерживаемых в 3.42A появились Olimex (USB, LPT) и Elprotronic USB-FPA. Соответственно в комплекте имеются драйвера для мостов USB-COM FDTI, SiLabs etc. Новых плагинов не добавилось, а версии имеющихся конечно же обновились. Больше ничего, нового/интересного в опциях не заметил. Окромя двух новых "Data20 heap size" там где Options->General options->Stack/Heap и Options->C/C++ compiler->Code "20-bit context save on interrupt". Обе e меня затенены, т.к. видимо предназначены для кристаллов со 100кБайтной Flash.

Попробовал скомпилировать проект. Компилируется. Но появились новые ремарки, которых не выдавала 3.42A.

На строки вида

uchLRC=~uchLRC;

и

if (((~P1IN)&BIT5)==0) stat0=0;

выдает ремарку

Remark[Pa091]: operator operates on value promoted to int (with possibly unexpected result)

Операция побитовой инверсии над char-овскими операндами не нравится? Ну да ладно. Результаты.

Версия 3.42a

уровень оптимизации medium-speed (оптимизация по скорости). Code motion выключена.

14 174 bytes of CODE memory

1 626 bytes of DATA memory (+ 348 absolute )

752 bytes of CONST memory

Версия 4.10a

уровень оптимизации medium (оптимизация по скорости не доступна для выбора). Code motion выключена.

14 104 bytes of CODE memory

1 626 bytes of DATA memory (+ 348 absolute )

720 bytes of CONST memory

Версия 3.42a

уровень оптимизации high-speed (оптимизация по скорости). Code motion выключена.

14 050 bytes of CODE memory

1 626 bytes of DATA memory (+ 348 absolute )

752 bytes of CONST memory

Версия 4.10a

уровень оптимизации high-speed (оптимизация по скорости). Code motion выключена.

14 036 bytes of CODE memory

1 626 bytes of DATA memory (+ 348 absolute )

720 bytes of CONST memory

Ну то, что размер кода уменьшился это хорошо и объяснимо, но почему констант меньше стало, не совсем понятно. :laughing: Компилятор их инлайнить перестал? Или что-то другое?

Запустил C-Cpy в режиме симулятора. Запускается. Внешний вид не изменился. Зато вновь заработала "ручная" симуляция вызова прерывания. :08: В 3.42A она почему-то не работала и симмитировать прерывания можно было только с помощью макросов.

Вот в общем пока и все. Реального устройства под рукой нет и работоспособность прошивки, скомпилированной в 4.10A проверить не могу. А хотелось бы проверить корректность оптимизации переменных типа volatile, находящихся в структуре. Глюк с оптимизацией для такого случая присутствует как в 3.30A, так и в 3.42A.

P.S. открыл еще один проект, созданный в 3.42A. Сконвертировал. Скомпилировал. Ошибки типа Error[e117]: описанной выше не выскочило, но на попытку запустить C-cpy приложение IAR тихо, без каких-то сообщений самостоятельно закрылось :) Запустил вновь, зашел в опции в там где задается оптимизация выбрал medium и снова high-speed. После этого все скомпилировалось и C-Cpy уже нормально запустился. Видимо именно в этом месте конвертация проектов все же глючит. Будьте внимательны!

 

Оп-па! zltigo уже успел присоединить мое сообщение к своей малоинформативной ветке, хотя на мой взгляд следовало бы наоборот сделать ;) Ну да ладно, хозяин-барин и кто не успел, тот опоздал :smile3009:

Для diper. Ваша просьба выполнена.

Изменено пользователем rezident

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Оп-па! zltigo уже успел присоединить мое сообщение к своей малоинформативной ветке, хотя на мой взгляд следовало бы наоборот сделать ;)

Спокойно! Cделано именно наоборот, но сортировка, естественно, работает по времени создания постов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если кого интересует лекарство (генератор ключа), то его можно сделать из electronix.ru/forum/index.php?act=Attach&type=post&id=2254

Для этого достаточно прочитать инструкцию в lz0.nfo.rus с небольшими дополнениями: менять ..... на 9.

Изменено пользователем zltigo

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

После этого все скомпилировалось и C-Cpy уже нормально запустился. Видимо именно в этом месте конвертация проектов все же глючит. Будьте внимательны!

А прибор то работает? :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А прибор то работает? :)

Не знаю. Готового устройства, для которого была написана именно эта прога, сейчас нету, закончились. Как изготовят, так я и проверю. С другими проектами, написанными в 3.30A, пока экспериментировать некогда. Если только на следующей неделе.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если кого интересует лекарство (генератор ключа), то его можно сделать из electronix.ru/forum/index.php?act=Attach&type=post&id=2254

Для этого достаточно прочитать инструкцию в lz0.nfo.rus с небольшими дополнениями: менять ..... на 9.

Решил таки попробовать - не получается у меня правильно пропатчить - программа при запуске говорит, что "программа не умещается в памяти". Помогите, люди добрые, приобщиться к разумному, доброму, вечному.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

...говорит, что "программа не умещается в памяти".

Редактор "плохой". Видимо что лишнее патчит, напрмер табуляции пробелами заменяет или перводы строки. Возьми например типа www.hhdsoftware.com/Products/home/hex-editor-free.html

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 Dog Pawlowa

А Вы не текстовым редактором пытаетесь патчить исполняемый файл?

Вам нуден редактор бинарных файлов.

Я использую "Hiew". Поищите в гугле. У него нет ограничения на объём редактируемого файла.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 Dog Pawlowa

Если не осилите правку бинарных файлов, можете воспользоваться патчем для генератора, ссылку на который(генератор) я приводил выше.

Удачи.

iarkgpatch.zip

Изменено пользователем gotty

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо всем, не оставившим наедине с хакерской наукой :)

 

Уже получил результаты:

 

Fatal Error[e106]: Syntax error or bad argument in  x.xcl 70 
-Z(DATA)DATA16_I,DATA16_Z,DATA16_N,HEAP+_HEAP_SIZE=0200-0300 

Fatal! Execution terminated... 
Error while running Linker

 

Разбираться буду завтра, но кажется, что именно эту строчку я исправлял при переходе с 2.XX на 3.XX.

Никакой фантазии у них нет... "Храм-бассейн-храм.."

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Fatal Error[e106]: Syntax error or bad argument in  x.xcl 70 
-Z(DATA)DATA16_I,DATA16_Z,DATA16_N,HEAP+_HEAP_SIZE=0200-0300 

Fatal! Execution terminated... 
Error while running Linker

Вы, наверное, используете свой (не тот, что по-умолчанию) XCL файл, а он у Вас заточен под предыдущую версию.

Найдите в папке $TOOLKIT_DIR$\CONFIG\ нового ИАРа файл XCL для Вашего проца и подправьте свой XCL по аналогии.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Fatal Error[e106]: Syntax error or bad argument in  x.xcl 70 
-Z(DATA)DATA16_I,DATA16_Z,DATA16_N,HEAP+_HEAP_SIZE=0200-0300 
Fatal! Execution terminated... 
Error while running Linker

 

Вроде _HEAP_SIZE заменить на _DATA16_HEAP_SIZE.

Или посмотреть в новых xcl файлах как уже рекомендовали выше....

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Продолжаю переводить проекты на 4.10.

В одном из проектов новая версия обнаружила, что дважды описана функция прерывания по передаче порта :( Посмотрел - точно, в модуле uart - рабочее прерывание, в main - заглушка.

Возник риторический вопрос - а что же там молча компилировала версия 3.ХХ ? :07:

Еще одна галка в пользу перехода на новые версии.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...