Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Ошибка компиляции в IAR
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Операционные системы > scmRTOS
Pavel V.
Пытаюсь собрать демонстрационный проект из порта на MSP430, при компиляции получаю ошибку:
Код
Building configuration: slon - Debug
Updating build tree...

11  file(s) deleted.
Updating build tree...
usrlib.cpp  
main.cpp  
OS_Kernel.cpp  
OS_Services.cpp  
OS_Target_asm.s43
OS_Target_cpp.cpp  
Internal Error: [CoreUtil/General]: Access violation (0xc0000005) at 0095B323 (reading from address 0x0)
Error while running C/C++ compiler

Total number of errors: 1
Total number of warnings: 0


Версия IAR:
IAR C/C++ Compiler for MSP430
5.10.1 (5.10.1.50144)

Пробовал качать из архива релизов и из SVN - результат один и тот же.
Сергей Борщ
Цитата(Pavel V. @ Oct 29 2010, 16:56) *
Пробовал качать из архива релизов и из SVN - результат один и тот же.
Так Internal же Error. Исходник ни при чем - это ошибка внутри компилятора. Пишите в техподдержку ИАРа и ждите, пока авторы компилятора ее исправят. Или откатывайтесь на ту версию компилятора, в которой этой ошибки не возникает.
rezident
У вас похоже апдейты вообще не стоят? Версия eval или full? Если full, то попробуйте 6-й сервсипак накатать.
У меня, напрмиер, сообщает
IAR C/C++ Compiler for MSP430
5.10.4 (5.10.4.50168)

Update. Хо-хо! У меня у самого видимо 6-й сервиспак не был установлен. После его установки номера изменились.

IAR Assembler for MSP430
5.10.4 (5.10.4.50168)

IAR C/C++ Compiler for MSP430
5.10.6 (5.10.6.50180)
zltigo
QUOTE (Сергей Борщ @ Oct 29 2010, 19:01) *
Исходник ни при чем - это ошибка внутри компилятора.

Ну вообще-то компилятор ломается при разборках с конкретным исходником, так-что исходник можно и подкрутить при необходимости.
Я тут пару в с месяц назад с латал PIC исходники под Hi-Tech компилятор, так и не таких приколов насмотрелся sad.gif - пришлось "объяснять другими словами".
MrYuran
Цитата(zltigo @ Oct 31 2010, 00:03) *
Ну вообще-то компилятор ломается при разборках с конкретным исходником, так-что исходник можно и подкрутить при необходимости.

У меня лично к ИАРу для МСП очень большие претензии.
В основном касаются глюков в условиях if()
Очень часто замечал, что не все условия отрабатываются правильно.
Причём системы так и не обнаружил, происходит это спонтанно и независимо, то есть, трогаю один конец, и вдруг внезапно перестаёт работать какой-нибудь if() совершенно в другом месте.
И это достало, чёрт возьми!
Все новые проекты у меня в mspgcc, а вот старые приходится поддерживать как есть.
Труднее всего объяснить начальнику, откуда в отработанном годами проекте берутся "чудеса".

Конкретный пример:
Условие
if(expr1 || expr2 || expr3 || expr4)
работает неправильно.
а вот так
if((expr1 || expr2) || (expr3 || expr4))
-нормально.
maniac.gif
Хороший [казалось бы] компилятор ИАР, но я предпочитаю GCC
rezident
А зачем скобки экономить-то? Небось еще и эти expr без достаточного количества скобок? Честно говоря, я что-то не припомню глюков с if-ами в IAR cranky.gif А может у меня просто немного получше выходит объяснить компилятору, что именно я от него хочу. laughing.gif
MrYuran
Цитата(rezident @ Oct 31 2010, 21:26) *
А зачем скобки экономить-то? Небось еще и эти expr без достаточного количества скобок? Честно говоря, я что-то не припомню глюков с if-ами в IAR cranky.gif

Вот это место:
Код
if( ((Ei > Ei_MAX_LIM)||(Ei < Ei_MIN_LIM))
|| ((SpH < SpH_MAX_LIM)||(SpH > SpH_MIN_LIM)) )
        {
            SetErrSensor;
        }
        else
        {
            ClrErrSensor;
        }

Раньше было написано в 4 строки и без промежуточных попарнообъединяющих скобок.
Вроде бы никакого криминала.
Однако же, SetErrSensor срабатывал при нормальных значениях параметра Ei.
Вот буквально на прошлой неделе всю голову сломал, выискивал у себя подобный глюк.
Нашёл, у напарника в блоке. Абсолютно такая же 4-строчная конструкция, 3 условия отрабатывались, четвёртое - игнорировалось.

Цитата
А может у меня просто немного получше выходит объяснить компилятору, что именно я от него хочу. laughing.gif

Возможно. У меня с ИАРом как-то с самого начала отношения не сложились...
Pavel V.
Спасибо за ответы! Претензий к IAR-у у меня никаких нет, описанных MrYuran вещей ни разу не наблюдал. Попробую накатить сервиспаки, отпишусь по результатам..
jorikdima
Цитата(MrYuran @ Nov 1 2010, 11:03) *
Вот это место:
Код
if( ((Ei > Ei_MAX_LIM)||(Ei < Ei_MIN_LIM))
|| ((SpH < SpH_MAX_LIM)||(SpH > SpH_MIN_LIM)) )
        {
            SetErrSensor;
        }
        else
        {
            ClrErrSensor;
        }

Раньше было написано в 4 строки и без промежуточных попарнообъединяющих скобок.
Вроде бы никакого криминала.
Однако же, SetErrSensor срабатывал при нормальных значениях параметра Ei.
Вот буквально на прошлой неделе всю голову сломал, выискивал у себя подобный глюк.
Нашёл, у напарника в блоке. Абсолютно такая же 4-строчная конструкция, 3 условия отрабатывались, четвёртое - игнорировалось.


Возможно. У меня с ИАРом как-то с самого начала отношения не сложились...

У меня тоже с ифами вопросов никогда не было. Не могли бы привести определение Ei и SpH, а так же учавствующих порогов (дефайны?).
Спасибо.
MrYuran
Цитата(jorikdima @ Nov 1 2010, 11:56) *
У меня тоже с ифами вопросов никогда не было. Не могли бы привести определение Ei и SpH, а так же учавствующих порогов (дефайны?).
Спасибо.

Мог бы, конечно. жалко чтоли...
Код
#define Ei Params.E_i

struct PARAMS {
  float E_i;
  float Slope;    
  long Op_Amp0;
  float termo_coef;
  float U_coef;
  float pHmeter_coef;
  unsigned int AvgPeriod;
};

struct PARAMS Params;

#define Ei_MAX_LIM          150.0        
#define Ei_MIN_LIM          -150.0        
#define SpH_MAX_LIM      (-0.1984*1.01)
#define SpH_MIN_LIM      (-0.1984*0.75)


IAR C/C++ Compiler for MSP430
V3.40A/W32 [Evaluation] (3.40.1.1)

Может, его обновлять надо время от времени, но всё равно...
"Исправлены старые баги, добавлены новые" ©
Pavel V.
Накатил 6-й сервиспак, проблема ушла, все скомпилировалось. Спасибо за помощь!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.