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

 
 
> mspgcc4 и MSP430F2132, Компилятор ругается на структуру TLV_bits
dimay192
сообщение Aug 23 2010, 17:23
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 28
Регистрация: 20-08-08
Пользователь №: 39 711



Вот собственно проблема...
Структура TLV_bits - структура, содержащая калибровочные константы в сегмента А флеш памяти.
Она описана в заголовочном файле msp430/include/msp430/tlv.h компилятора mspgcc4.
Само собой разумеется, что ее инициализировать не надо (она содержит заводские установки).
Но вот как это объяснить комлилятору, который на нее ругается следующими словами:

/opt/msp430-gcc-4.4.3/lib/gcc/msp430/4.4.3/../../../../msp430/include/msp430/tlv.h:125: ошибка: структура ‘TLV_bits’ с неинициализированными константными элементами
/opt/msp430-gcc-4.4.3/lib/gcc/msp430/4.4.3/../../../../msp430/include/msp430/tlv.h:125: ошибка: неинициализированная константа ‘TLV_bits’
make: *** [main.o] Ошибка 1

Может подсунуть компилятору опции какие?... но вот какие?
в make-файле я задаю следующие:

CC = msp430-gcc
CXX = msp430-g++
CFLAGS = -mmcu=${CPU} -O0 -Wall -g
CXXFLAGS = -mmcu=${CPU} -O0 -Wall -g -fno-rtti
что я делаю не так?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
dimay192
сообщение Aug 24 2010, 11:51
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 28
Регистрация: 20-08-08
Пользователь №: 39 711



Цитата(MrYuran @ Aug 24 2010, 17:14) *
Может, ключиками какими поиграть, чтобы эти ошибки отключить?
Или попробуйте g++ из старой версии


На сколько мне известно, ошибки отключить нельзя! Предупреждения можно...
На счет использовать предыдущую версию g++... тоже был бы не вариант...
нашел там как минимум две ошибки в хидерах для msp430x21x2... одна опечатка и одна ошибка типа past/copy...
Видать еще очень сырыми загововники были... В текущей версии исправлено...

Ой! че та не то наредактировал в собственных сообщениях...
короче, решение нашлось...
В заголовочный файл tlv.h нужно добавить три строчки

#ifdef __cplusplus
extern "C"
#endif //__cplusplus

перед структурой TLV_bits

Код
#ifdef __cplusplus
extern "C"
#endif //__cplusplus

struct
{
    unsigned int checksum;
    empty_tag_t  empty;
    unsigned int dummy[11];
    adc12_1_tag_t adc12_1;
    dco_30_tag_t dco_30;
} const volatile TLV_bits asm("0x10c0");

Эти три строчки в предыдущей версии mspgcc (3.2.3) присутствовали. В текущей (4.4.3) их убрали...
ЗАчем...?
Вопрос думаю следует адресовать автору заголовочного файла, Сергею Борщю

Сообщение отредактировал dimay192 - Aug 24 2010, 12:34
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 24th July 2025 - 17:01
Рейтинг@Mail.ru


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