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

 
 
 
Reply to this topicStart new topic
> uCOS+EFSL в IAR 4, Не получается скомпилировать.
JeDay
сообщение Jan 31 2008, 08:17
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 276
Регистрация: 22-09-05
Из: Kiev
Пользователь №: 8 818



Добрый день.
Собираю в Яре тестовый проектик с EFSL, компилится нормально.
Отдельный проект с uCOS - тоже проблем. А вот после того как скручиваю эти 2 програмных модуля в месте, компилер выдает варнинги на имена структур файловой системы.
На сколько я понял, в uCOS и EFSL есть типы данных с похожими названиями.
Если кто сталкивался с данной проблемой, подскажите плиз в чем трабла и как ее решить. help.gif
В приложении проект.
Вот фрагмент лога:

Код
Warning[w35]: There is more than one definition for the struct/union type with tag 'VolumeId'; class/struct/union types have different sizes
  struct VolumeId /* Elements: 10, Bytes: 28 */
  {  
    euint16 BytesPerSector;
    euint8 SectorsPerCluster;
    euint16 ReservedSectorCount;
    euint8 NumberOfFats;
    euint16 RootEntryCount;
    euint16 SectorCount16;
    euint16 FatSectorCount16;
    euint32 SectorCount32;
    euint32 FatSectorCount32;
    euint32 RootCluster;
  };
    typedef unsigned short euint16;
    typedef unsigned char euint8;
    typedef unsigned int euint32;
  struct VolumeId /* Elements: 10, Bytes: 24 */
  {  
    euint16 BytesPerSector;
    euint8 SectorsPerCluster;
    euint16 ReservedSectorCount;
    euint8 NumberOfFats;
    euint16 RootEntryCount;
    euint16 SectorCount16;
    euint16 FatSectorCount16;
    euint32 SectorCount32;
    euint32 FatSectorCount32;
    euint32 RootCluster;
  };
    typedef unsigned short euint16;
    typedef unsigned char euint8;
    typedef unsigned int euint32;
Warning[w35]: There is more than one definition for the struct/union type with tag 'FileSystem'; class/struct/union types have different sizes
  struct FileSystem /* Elements: 10, Bytes: 64 */
  {  
    Partition * part;
    VolumeId volumeId;
    euint32 DataClusterCount;
    euint32 FatSectorCount;
    euint32 SectorCount;
    euint32 FirstSectorRootDir;
    euint32 FirstClusterCurrentDir;
    euint32 FreeClusterCount;
    euint32 NextFreeCluster;
    euint8 type;
  };
    typedef struct Partition Partition;
    typedef struct VolumeId VolumeId;
    typedef unsigned int euint32;
    typedef unsigned char euint8;
  struct FileSystem /* Elements: 10, Bytes: 57 */
  {  
    Partition * part;
    VolumeId volumeId;
    euint32 DataClusterCount;
    euint32 FatSectorCount;
    euint32 SectorCount;
    euint32 FirstSectorRootDir;
    euint32 FirstClusterCurrentDir;
    euint32 FreeClusterCount;
    euint32 NextFreeCluster;
    euint8 type;
  };
    typedef struct Partition Partition;
    typedef struct VolumeId VolumeId;
    typedef unsigned int euint32;
    typedef unsigned char euint8;
...
...
...

Прикрепленные файлы
Прикрепленный файл  iar_ucos_efsl.rar ( 241.85 килобайт ) Кол-во скачиваний: 64
 
Go to the top of the page
 
+Quote Post
meister
сообщение Jan 31 2008, 10:38
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 219
Регистрация: 20-11-07
Пользователь №: 32 484



Цитата(JeDay @ Jan 31 2008, 11:17) *
Добрый день.
подскажите плиз в чем трабла


может быть, выравнивание.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jan 31 2008, 11:35
Сообщение #3


Гуру
******

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



Проблема в том, что efsl писана небрежно. Лично мне хватило в свое время посмотреть на warnings которые вылезают при ее компиляции и на стиль написания, что-бы не продолжать разборки с ней. В Вашем конкретном случае, это полное отсутствие #pragma pack перед структурами относящимися к файловой системе и безусловно должными быть упакованными. При этом где-то в каком-то из *.h эта прагма болтается, что приводит к паковке только в некоторых случаяx.

Moderator:
А насчет кросспостов - настоятельная просьба освежить память перечитав Правила форума.

Сообщение отредактировал zltigo - Jan 31 2008, 14:18


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
JeDay
сообщение Feb 1 2008, 09:49
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 276
Регистрация: 22-09-05
Из: Kiev
Пользователь №: 8 818



Спасибо за ответ.
Именно это я и подозревал.

Цитата
Moderator:
А насчет кросспостов - настоятельная просьба освежить память перечитав Правила форума.

Сори, перечитаю..
Go to the top of the page
 
+Quote Post

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

 


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


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