Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
02.05.2012, 17:17
|
|
Частый гость
Регистрация: 22.04.2007
Сообщений: 26
Сказал спасибо: 10
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
|
Констовая инициализация структуры
Всем добрый день.
Столкнулся с такой проблемой.
Хочу хранить некоторую структуру во флэш-памяти контроллера (stm32F103RG), написал следующий код:
Код:
|
// Список параметров.
typedef struct{
uint16 maxVoltage;
uint16 minVoltage;
// Размер структуры должен быть кратен размеру странице.
#if defined (STM32F10X_HD) || defined (STM32F10X_HD_VL) || defined (STM32F10X_CL) || defined (STM32F10X_XL)
byte mas[2044];
#else
byte mas[1020];
#endif
}Config_structureParameters;
#if defined (STM32F10X_HD) || defined (STM32F10X_HD_VL) || defined (STM32F10X_CL) || defined (STM32F10X_XL)
const Config_structureParameters Config_parameters __attribute__ ((aligned(2048))) = {10,10};
#else
const Config_structureParameters Config_parameters __attribute__ ((aligned(1024))) = {10,10};
#endif |
Выдает следующую ошибку:
Код:
|
[cc] ..\obj\configuration.o:(.rodata+0x0): multiple definition of `Config_parameters'
[cc] ..\obj\main.o:(.rodata+0x0): first defined here
[cc] collect2: ld returned 1 exit status |
Среда разработки CooCox CoIDE. Кто знает в чем ошибка?
|
|
|
Сказали "Спасибо" Nik_UFO
|
|
|
02.05.2012, 20:15
|
|
Гражданин KAZUS.RU
Регистрация: 25.11.2010
Сообщений: 516
Сказал спасибо: 1
Сказали Спасибо 126 раз(а) в 109 сообщении(ях)
|
Re: Констовая инициализация структуры
а ты объявление констант что, тоже в h-ник запихал?
|
|
|
Эти 2 пользователя(ей) сказали Спасибо Hives за это сообщение:
|
|
|
02.05.2012, 21:44
|
|
Гражданин KAZUS.RU
Регистрация: 12.10.2009
Сообщений: 576
Сказал спасибо: 30
Сказали Спасибо 138 раз(а) в 110 сообщении(ях)
|
Re: Констовая инициализация структуры
О,ъявление структуры перенести в 'c' файл.
В хидере написать extern const Config_structureParameters Config_parameters;
Тут еще возможно играет роль то, что файл не cpp, т.к. в режиме C++ компилятор/линкер допускает множественные объявления констант и inline функций.
|
|
|
Эти 2 пользователя(ей) сказали Спасибо tanq за это сообщение:
|
|
|
03.05.2012, 08:52
|
|
Частый гость
Регистрация: 22.04.2007
Сообщений: 26
Сказал спасибо: 10
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
|
Re: Констовая инициализация структуры
Объявление констант в 'c' файле помогло. Всем спасибо.
|
|
|
Сказали "Спасибо" Nik_UFO
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
Структуры как аргументы функций
|
Sagitariuss |
Микроконтроллеры, АЦП, память и т.д |
7 |
21.01.2012 13:38 |
Как получить адрес элемента структуры?
|
k0stya_ |
Микроконтроллеры, АЦП, память и т.д |
9 |
14.11.2011 23:07 |
Инициализация DG-16080
|
urry |
Микроконтроллеры, АЦП, память и т.д |
8 |
15.08.2011 16:26 |
Структуры в CVAVR
|
ua_gruzin |
Микроконтроллеры, АЦП, память и т.д |
9 |
04.02.2009 12:58 |
Инициализация портов
|
tuart |
Микроконтроллеры, АЦП, память и т.д |
4 |
15.04.2007 19:44 |
Часовой пояс GMT +4, время: 03:04.
|
|