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

 
 
> Использование 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



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

 


RSS Текстовая версия Сейчас: 17th June 2025 - 14:56
Рейтинг@Mail.ru


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