реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Ошибка компиляции в IAR
Pavel V.
сообщение Oct 29 2010, 13:56
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 211
Регистрация: 3-06-06
Пользователь №: 17 742



Пытаюсь собрать демонстрационный проект из порта на 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 - результат один и тот же.


--------------------
Good News Everyone!
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Oct 29 2010, 16:01
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(Pavel V. @ Oct 29 2010, 16:56) *
Пробовал качать из архива релизов и из SVN - результат один и тот же.
Так Internal же Error. Исходник ни при чем - это ошибка внутри компилятора. Пишите в техподдержку ИАРа и ждите, пока авторы компилятора ее исправят. Или откатывайтесь на ту версию компилятора, в которой этой ошибки не возникает.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
rezident
сообщение Oct 29 2010, 16:16
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



У вас похоже апдейты вообще не стоят? Версия 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)

Сообщение отредактировал rezident - Oct 29 2010, 16:32
Go to the top of the page
 
+Quote Post
zltigo
сообщение Oct 30 2010, 20:03
Сообщение #4


Гуру
******

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



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

Ну вообще-то компилятор ломается при разборках с конкретным исходником, так-что исходник можно и подкрутить при необходимости.
Я тут пару в с месяц назад с латал PIC исходники под Hi-Tech компилятор, так и не таких приколов насмотрелся sad.gif - пришлось "объяснять другими словами".


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Oct 31 2010, 07:14
Сообщение #5


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(zltigo @ Oct 31 2010, 00:03) *
Ну вообще-то компилятор ломается при разборках с конкретным исходником, так-что исходник можно и подкрутить при необходимости.

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

Конкретный пример:
Условие
if(expr1 || expr2 || expr3 || expr4)
работает неправильно.
а вот так
if((expr1 || expr2) || (expr3 || expr4))
-нормально.
maniac.gif
Хороший [казалось бы] компилятор ИАР, но я предпочитаю GCC


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
rezident
сообщение Oct 31 2010, 17:26
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



А зачем скобки экономить-то? Небось еще и эти expr без достаточного количества скобок? Честно говоря, я что-то не припомню глюков с if-ами в IAR cranky.gif А может у меня просто немного получше выходит объяснить компилятору, что именно я от него хочу. laughing.gif
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Nov 1 2010, 07:03
Сообщение #7


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(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

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


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
Pavel V.
сообщение Nov 1 2010, 07:31
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 211
Регистрация: 3-06-06
Пользователь №: 17 742



Спасибо за ответы! Претензий к IAR-у у меня никаких нет, описанных MrYuran вещей ни разу не наблюдал. Попробую накатить сервиспаки, отпишусь по результатам..


--------------------
Good News Everyone!
Go to the top of the page
 
+Quote Post
jorikdima
сообщение Nov 1 2010, 07:56
Сообщение #9


тут может быть ваша реклама
*****

Группа: Свой
Сообщений: 1 164
Регистрация: 15-03-06
Из: Санкт-Петербург/CA
Пользователь №: 15 280



Цитата(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, а так же учавствующих порогов (дефайны?).
Спасибо.
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Nov 1 2010, 08:08
Сообщение #10


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(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)

Может, его обновлять надо время от времени, но всё равно...
"Исправлены старые баги, добавлены новые" ©


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
Pavel V.
сообщение Nov 1 2010, 08:13
Сообщение #11


Местный
***

Группа: Свой
Сообщений: 211
Регистрация: 3-06-06
Пользователь №: 17 742



Накатил 6-й сервиспак, проблема ушла, все скомпилировалось. Спасибо за помощь!


--------------------
Good News Everyone!
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st June 2025 - 14:48
Рейтинг@Mail.ru


Страница сгенерированна за 0.01494 секунд с 7
ELECTRONIX ©2004-2016