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

 
 
> Использование CMSIS (C) и scmRTOS (C++), Вопрос начинающего в C++
Alekseeey
сообщение Jan 18 2011, 09:55
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 32
Регистрация: 21-09-10
Пользователь №: 59 626



Здравствуйте.

Ситуация такая:
Есть желание использовать совместно в одном проекте scmRTOS и CMSIS для Cortex M3.
scmRTOS написана на C++.
Библиотека CMSIS написана на С. В этой библиотеке используются анонимные структуры, например:

/*------------- General Purpose Input/Output (GPIO) --------------------------*/
/** @brief General Purpose Input/Output (GPIO) register structure definition */
typedef struct
{
union {
__IO uint32_t FIODIR;
struct {
__IO uint16_t FIODIRL;
__IO uint16_t FIODIRH;
};
struct {
__IO uint8_t FIODIR0;
__IO uint8_t FIODIR1;
__IO uint8_t FIODIR2;
__IO uint8_t FIODIR3;
};
};
...
} LPC_GPIO_TypeDef;


Анонимные структуры запрещены в C++, при компиляции вылезает куча предупреждений: "warning: ISO C++ prohibits anonymous structs [-pedantic]".
В исходниках CMSIS, конечно, есть развязки:

#if defined ( __CC_ARM )
#pragma anon_unions
#endif

Но компилятор игнорирует прагму: "warning: ignoring #pragma anon_unions [-Wunknown-pragmas]".

Как мне заставить проект компилироваться корректно, не меняя исходников CMSIS?

Использую:
Eclipse
GCC toolchain от человека с ником Klen
make от человека с ником АНТОХА
scmRTOS (3.10)
CMSIS (lpc1768 release 26 July 2010)
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
IgorKossak
сообщение Jan 19 2011, 09:13
Сообщение #2


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Разобрался путём тшательного чтения документации на компилятор (arm-none-eabi-xxx от Code Sourcery).
Оказывается, что опция -pedantic побуждает компилятор к строгому следованию стандарту несмотря на наличие опции -std=gnu99 которая подключает расширения gnu, коими и являются безымянные структуры\объединения.
Убрав опцию -pedantic я исключил только предупреждения, касающиеся расширений, что мне и требовалось.
Хотелось бы знать, не повлечёт ли это за собой неприятных последствий.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 23rd June 2025 - 22:05
Рейтинг@Mail.ru


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