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

 
 
> Инициализация структуры. Что не так?, Обращаюсь к коллективному разуму
SasaVitebsk
сообщение Sep 6 2012, 11:59
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Написал симулятор и отладил в QT4. Всё работает, достаточно объёмный проект.
Начал переносить на целевую платформу в IAR.
Споткнулся на ровном месте. Хотелось бы решить "в лоб", так как по-другому очень большой кусок работы.
Помогите.
Есть объявление структуры:
Код
// хранится во флэши
typedef struct
{
  int8_t               *Index;         // Указатель на редактируемый параметр/ смещение для каналов
  uint16_t              Number;         // Число пунктов
  uint16_t                Ch;                // 0/ Указатель на канал
  uint8_t               *ItemName[];    // Указатели на имена пунктов
} RadioBtn_t;

Есть строки:
Код
uint8_t const    sFlowControlComport[3][9] = {"None","Hard","Xon/Xoff"};

Есть объявление:
Код
//***************************************************************
// @@ 1312. Управление потоком
RadioBtn_t rbtFlowControl =
{
    0,                                            // Указатель на редактируемое значение
    3,                                            // Всего 3 пункта,
    ((uint32_t)&ComSetting[0].flowcontrol- (uint32_t)ComSetting),    // flowcontrol
    {sFlowControlComport[NONE], sFlowControlComport[HARD], sFlowControlComport[SOFT]}
};

Qt компилирует правильно и никаких вопросов у него это не вызывает
У IAR ARM 6.4.02 возникает 2 ошибки
1 - в строке 4 структуры у него претензия, что это не константа, но на самом деле это смещение адресов и должно вычислятся на этапе компиляции. Не вижу здесь проблемы и QT тоже не видит. Как это объяснить IAR?
2 - IAR в строке 5 пишет: слишком много параметров инициализации. Честно говоря, тоже не вижу проблемы.
Понятно что я могу указать лишь только имя масива и смещаться на длину элемента, но здесь я привожу только частный случай. Есть места, где это разные строки произвольной длины, так что такой метод не предлагать. Хотелось бы поэкономить место. Не хотелось бы также создавать отдельный масив указателей - тоже + 4 байта на один радиобутон. Поскольку элементов очень много, то будет набегать. Ну и QT почемуто понимает меня и работает как нужно. Поэтому непонятно ...
Какие будут предложения?
Заранее благодарю всех откликнувшихся ...
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- SasaVitebsk   Инициализация структуры. Что не так?   Sep 6 2012, 11:59
- - MrYuran   Цитатаuint8_t const sFlowControlComport[3][9] =...   Sep 6 2012, 12:22
- - GetSmart   По поводу ошибки номер раз. Воспользуйтесь дефайно...   Sep 6 2012, 12:39
|- - SasaVitebsk   Цитата(GetSmart @ Sep 6 2012, 16:39) По п...   Sep 6 2012, 13:08
|- - MrYuran   Цитата(SasaVitebsk @ Sep 6 2012, 17:08) И...   Sep 6 2012, 13:21
|- - scifi   Цитата(SasaVitebsk @ Sep 6 2012, 17:08) И...   Sep 6 2012, 13:23
|- - Сергей Борщ   QUOTE (SasaVitebsk @ Sep 6 2012, 16:08) Т...   Sep 6 2012, 13:27
- - SasaVitebsk   Спасибо большое. Что-то вчера, к концу рабочего дн...   Sep 7 2012, 05:54
|- - MrYuran   Цитата(SasaVitebsk @ Sep 7 2012, 09:54) В...   Sep 7 2012, 06:03
|- - demiurg_spb   Кодtypedef struct { int8_t* Index; uint16_t ...   Sep 7 2012, 06:18
- - scifi   Кстати, как-то не очень хорошо выглядит эта структ...   Sep 7 2012, 06:24
|- - SasaVitebsk   Цитата(scifi @ Sep 7 2012, 10:24) Кстати,...   Sep 7 2012, 07:38
|- - demiurg_spb   Зато размер структуры RadioBtn_t будет значительно...   Sep 7 2012, 07:54
- - SasaVitebsk   Я буду добиваться, чтобы всё во флэш легло. Это об...   Sep 7 2012, 08:04
|- - demiurg_spb   Не выйдет. Нельзя в си инициализировать константу ...   Sep 7 2012, 08:09
|- - scifi   Цитата(demiurg_spb @ Sep 7 2012, 12:09) Б...   Sep 7 2012, 12:16
- - SasaVitebsk   Переписываю, хотя честно говоря - непонятно. Почем...   Sep 7 2012, 11:49
- - demiurg_spb   А вы в QT проект с++ или си делали? Если си, то по...   Sep 7 2012, 11:56
- - SasaVitebsk   Цитата(demiurg_spb @ Sep 7 2012, 14:56) А...   Sep 7 2012, 12:46
- - MrYuran   Цитата(demiurg_spb @ Sep 7 2012, 15:56) П...   Sep 7 2012, 12:51
- - ReAl   Цитата(MrYuran @ Sep 7 2012, 15:51) GCC п...   Sep 7 2012, 14:03
- - MrYuran   Цитата(ReAl @ Sep 7 2012, 18:03) Это (име...   Sep 7 2012, 14:10
- - ReAl   Цитата(MrYuran @ Sep 7 2012, 17:10) А в И...   Sep 7 2012, 14:11


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

 


RSS Текстовая версия Сейчас: 3rd August 2025 - 16:27
Рейтинг@Mail.ru


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