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

Далее. Дистриб на 13 Метров больше предыдущего. На этапе установки кроме собственно IAR EW дополнительно установился Microsoft Visual C++ 2005.

Не поэтому ли дистриб на 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
Ну то, что размер кода уменьшился это хорошо и объяснимо, но почему констант меньше стало, не совсем понятно.

Компилятор их инлайнить перестал? Или что-то другое?
Запустил C-Cpy в режиме симулятора. Запускается. Внешний вид не изменился. Зато вновь заработала "ручная" симуляция вызова прерывания.

В 3.42A она почему-то не работала и симмитировать прерывания можно было только с помощью макросов.
Вот в общем пока и все. Реального устройства под рукой нет и работоспособность прошивки, скомпилированной в 4.10A проверить не могу. А хотелось бы проверить корректность оптимизации переменных типа volatile, находящихся в структуре. Глюк с оптимизацией для такого случая присутствует как в 3.30A, так и в 3.42A.
P.S. открыл еще один проект, созданный в 3.42A. Сконвертировал. Скомпилировал. Ошибки типа Error[e117]: описанной выше не выскочило, но на попытку запустить C-cpy приложение IAR тихо, без каких-то сообщений самостоятельно закрылось

Запустил вновь, зашел в опции в там где задается оптимизация выбрал medium и снова high-speed. После этого все скомпилировалось и C-Cpy уже нормально запустился. Видимо именно в этом месте конвертация проектов все же глючит. Будьте внимательны!
Оп-па! zltigo уже успел присоединить мое сообщение к своей малоинформативной ветке, хотя на мой взгляд следовало бы наоборот сделать

Ну да ладно, хозяин-барин и кто не успел, тот опоздал
Для
diper. Ваша просьба выполнена.