Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Softune FR и инициализация конструкторов статических объектов
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры
WiseAlex
несколько не по теме - больше связано с программированием, но есть надежна, что здесь ответят быстрее smile.gif
проект на Softune FR - при подключении нескольких файлов cpp конструкторы статических объектов вызываются только в том файле где main() как в эмуляторе так и на железяке.
в стартапе кусок с вызовом конструкторов есть...
подскажите куда копать
может в настройках что-то напутал - но остальное работает
если надо - выложу пример
WiseAlex
разобрался: в стартапе куска не хватало smile.gif инициализация была а цикла в ней не было...
spf
Цитата(WiseAlex @ Apr 8 2008, 14:51) *
разобрался: в стартапе куска не хватало smile.gif инициализация была а цикла в ней не было...

Было подобное, боролся при портировании scmRTOS год назад, в статрапах для примеров (которые взял за основу) не было вызовов конструкторов.
Потом взял стартап то ли из "свежей" версии Softune, то ли из свежих примеров.
WiseAlex
Есть еще одна проблема, которую пока не понимаю как решить корректно и как продиагностировать
Суть в том, что сложные константные структуры не инициализируются. при этом пока не могу отловить точную зависимость - когда и почему перестают инициализироваться. Лечу пока обрезанием слова const
пример:
Код
const SFullIndicatorData AllFormPanelIconData[]=
{
    // двигатель
  {0, rcIMAGE64x64_engine, false, 1,
    {
      {dataEngineCoolantLevel //это структура, определяемая в другом файле а здесь как extern.
                                          //этот член не инициализировался
,              50, PWF_FIXED_NAN, PWF_FIXED_NAN, PWF_FIXED_NAN},
//...
    }, "EngineFormManager"
  },
//...
}

достаточно убрать const t все OK
сталкивался с таким только в const массивах
spf
Цитата(WiseAlex @ Apr 22 2008, 14:43) *
Есть еще одна проблема, которую пока не понимаю как решить корректно и как продиагностировать

Тут ничего не подскажу. В доках про это ни чего не написано?
Попробуй написать в поддержку, они достаточно оперативно и толково отвечают, иногда даже выкладывали пофиксенные версии или пакеты исправлений.

Какая версия пакета?
Пользовал пакет FRSTAPACK600008FME01 с диска версии 5.1 от марта 2007 года.
Должна уже более свежая версия появиться, они каждый год обновляют в феврале/марте.

PS:
Для FR можно GCC собрать wink.gif
WiseAlex
Цитата(spf @ Apr 22 2008, 15:39) *
Тут ничего не подскажу. В доках про это ни чего не написано?
Попробуй написать в поддержку, они достаточно оперативно и толково отвечают, иногда даже выкладывали пофиксенные версии или пакеты исправлений.

чтобы писать в поддержку надо сделать небольшой сэмпл в котором я смогу воспроизвести этот глюк, как-то жалко мне их если я им весь проект скину (около 10 МБ исходников smile.gif )
Цитата
Какая версия пакета?
Пользовал пакет FRSTAPACK600008FME01 с диска версии 5.1 от марта 2007 года.
Должна уже более свежая версия появиться, они каждый год обновляют в феврале/марте.

да компилятор с диска 5.1
обновление, как выяснилось, вышло. будем просить у КТЦ
Цитата
PS:
Для FR можно GCC собрать wink.gif

про это вроде как знаю, но руки не доходят. может есть уже готовый собранный вариант с каким-нибудь примером - или инструкция по сборке был бы очень признателен (времени разобраться все как-то не хватает), а то меня кодогенератор Fujitsu мягко говоря не впечатляет(inline делать не умеет) да и багов хватает
например сингелтон меерса, определенный в h файле работает неправильно
т.е. в h
Код
MyClass & GetMyClass()
{
  static MyClass aMyClass;
  return aMyClass;
}

если включить в несколько единиц трансляции, то будет несколько экземпляров aMyClass

ps.
интересно чей у fujitsu компилятора front-end - достаточно корректно работает и с шаблонами и с макросами (boost::preprocessor завелся практически без бубна). неужели свой?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.