Jump to content

    

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

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

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

Share this post


Link to post
Share on other sites
Появился свежий компилятор для MSP430 - перепрыгнул аж на 4 версию.

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

Share this post


Link to post
Share on other sites

По наводке из пустыни обнаружил, что на сайте производителя появилась новая версия компилятора 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. Ваша просьба выполнена.

Edited by rezident

Share this post


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

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

Share this post


Link to post
Share on other sites

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

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

Edited by zltigo

Share this post


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

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

Share this post


Link to post
Share on other sites
А прибор то работает? :)

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

Share this post


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

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

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

Share this post


Link to post
Share on other sites
...говорит, что "программа не умещается в памяти".

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

Share this post


Link to post
Share on other sites

2 Dog Pawlowa

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

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

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

Share this post


Link to post
Share on other sites

2 Dog Pawlowa

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

Удачи.

iarkgpatch.zip

Edited by gotty

Share this post


Link to post
Share on other sites

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

 

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

 

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.

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

Share this post


Link to post
Share on other sites
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 по аналогии.

Share this post


Link to post
Share on other sites
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 файлах как уже рекомендовали выше....

Share this post


Link to post
Share on other sites

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

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

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

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this