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

 
 
 
Reply to this topicStart new topic
> SPL - глюки в библиотеке
Quantum1
сообщение Jul 22 2014, 19:02
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 111
Регистрация: 4-09-12
Пользователь №: 73 381



Добрый день!

Работаю в Keil.
Пытаюсь использовать SPL для stm32f103.
При включении в проект некоторых хедеров(к примеру gpio), начинается ахтунг.
//////////////////////////////

C:\Program Files\Keil\ARM\Inc\ST\STM32F10x\stm32f10x_type.h(23): error: #256: invalid redeclaration of type name "s32" (declared at line 470 of "C:\Program Files\Keil\ARM\Inc\ST\STM32F10x\stm32f10x.h")
C:\Program Files\Keil\ARM\Inc\ST\STM32F10x\stm32f10x_type.h(27): error: #256: invalid redeclaration of type name "sc32" (declared at line 474 of "C:\Program Files\Keil\ARM\Inc\ST\STM32F10x\stm32f10x.h")
C:\Program Files\Keil\ARM\Inc\ST\STM32F10x\stm32f10x_type.h(31): error: #256: invalid redeclaration of type name "vs32" (declared at line 478 of "C:\Program Files\Keil\ARM\Inc\ST\STM32F10x\stm32f10x.h")
C:\Program Files\Keil\ARM\Inc\ST\STM32F10x\stm32f10x_type.h(35): error: #256: invalid redeclaration of type name "vsc32" (declared at line 482 of "C:\Program Files\Keil\ARM\Inc\ST\STM32F10x\stm32f10x.h")
C:\Program Files\Keil\ARM\Inc\ST\STM32F10x\stm32f10x_type.h(39): error: #256: invalid redeclaration of type name "u32" (declared at line 486 of "C:\Program Files\Keil\ARM\Inc\ST\STM32F10x\stm32f10x.h")
C:\Program Files\Keil\ARM\Inc\ST\STM32F10x\stm32f10x_type.h(43): error: #256: invalid redeclaration of type name "uc32" (declared at line 490 of "C:\Program Files\Keil\ARM\Inc\ST\STM32F10x\stm32f10x.h")
C:\Program Files\Keil\ARM\Inc\ST\STM32F10x\stm32f10x_type.h(47): error: #256: invalid redeclaration of type name "vu32" (declared at line 494 of "C:\Program Files\Keil\ARM\Inc\ST\STM32F10x\stm32f10x.h")
C:\Program Files\Keil\ARM\Inc\ST\STM32F10x\stm32f10x_type.h(51): error: #256: invalid redeclaration of type name "vuc32" (declared at line 498 of "C:\Program Files\Keil\ARM\Inc\ST\STM32F10x\stm32f10x.h")
C:\Program Files\Keil\ARM\Inc\ST\STM32F10x\stm32f10x_type.h(57): error: #101: "RESET" has already been declared in the current scope
C:\Program Files\Keil\ARM\Inc\ST\STM32F10x\stm32f10x_type.h(57): error: #101: "SET" has already been declared in the current scope
C:\Program Files\Keil\ARM\Inc\ST\STM32F10x\stm32f10x_type.h(57): error: #256: invalid redeclaration of type name "FlagStatus" (declared at line 502 of "C:\Program Files\Keil\ARM\Inc\ST\STM32F10x\stm32f10x.h")
C:\Program Files\Keil\ARM\Inc\ST\STM32F10x\stm32f10x_type.h(57): error: #256: invalid redeclaration of type name "ITStatus" (declared at line 502 of "C:\Program Files\Keil\ARM\Inc\ST\STM32F10x\stm32f10x.h")
C:\Program Files\Keil\ARM\Inc\ST\STM32F10x\stm32f10x_type.h(59): error: #101: "DISABLE" has already been declared in the current scope
C:\Program Files\Keil\ARM\Inc\ST\STM32F10x\stm32f10x_type.h(59): error: #101: "ENABLE" has already been declared in the current scope
C:\Program Files\Keil\ARM\Inc\ST\STM32F10x\stm32f10x_type.h(59): error: #256: invalid redeclaration of type name "FunctionalState" (declared at line 504 of "C:\Program Files\Keil\ARM\Inc\ST\STM32F10x\stm32f10x.h")
C:\Program Files\Keil\ARM\Inc\ST\STM32F10x\stm32f10x_type.h(62): error: #101: "ERROR" has already been declared in the current scope
C:\Program Files\Keil\ARM\Inc\ST\STM32F10x\stm32f10x_type.h(62): error: #101: "SUCCESS" has already been declared in the current scope
C:\Program Files\Keil\ARM\Inc\ST\STM32F10x\stm32f10x_type.h(62): error: #256: invalid redeclaration of type name "ErrorStatus" (declared at line 507 of "C:\Program Files\Keil\ARM\Inc\ST\STM32F10x\stm32f10x.h")
C:\Program Files\Keil\ARM\Inc\ST\STM32F10x\stm32f10x_conf.h(147): warning: #47-D: incompatible redefinition of macro "HSE_Value" (declared at line 511 of "C:\Program Files\Keil\ARM\Inc\ST\STM32F10x\stm32f10x.h")
C:\Program Files\Keil\ARM\Inc\ST\STM32F10x\cortexm3_macro.h(30): error: #55: too many arguments in macro invocation
C:\Program Files\Keil\ARM\Inc\ST\STM32F10x\cortexm3_macro.h(30): error: #79: expected a type specifier
C:\Program Files\Keil\ARM\Inc\ST\STM32F10x\cortexm3_macro.h(31): error: #55: too many arguments in macro invocation
C:\Program Files\Keil\ARM\Inc\ST\STM32F10x\cortexm3_macro.h(31): error: #79: expected a type specifier
C:\Program Files\Keil\ARM\Inc\ST\STM32F10x\cortexm3_macro.h(32): error: #55: too many arguments in macro invocation
C:\Program Files\Keil\ARM\Inc\ST\STM32F10x\cortexm3_macro.h(32): error: #79: expected a type specifier
C:\Program Files\Keil\ARM\Inc\ST\STM32F10x\stm32f10x_map.h(58): error: #256: invalid redeclaration of type name "ADC_TypeDef" (declared at line 547 of "C:\Program Files\Keil\ARM\Inc\ST\STM32F10x\stm32f10x.h")
C:\Program Files\Keil\ARM\Inc\ST\STM32F10x\stm32f10x_map.h(154): error: #256: invalid redeclaration of type name "BKP_TypeDef" (declared at line 646 of "C:\Program Files\Keil\ARM\Inc\ST\STM32F10x\stm32f10x.h")
C:\Program Files\Keil\ARM\Inc\ST\STM32F10x\stm32f10x_map.h(163): error: #256: invalid redeclaration of type name "CAN_TxMailBox_TypeDef" (declared at line 658 of "C:\Program Files\Keil\ARM\Inc\ST\STM32F10x\stm32f10x.h")
C:\Program Files\Keil\ARM\Inc\ST\STM32F10x\stm32f10x_map.h(171): error: #256: invalid redeclaration of type name "CAN_FIFOMailBox_TypeDef" (declared at line 670 of "C:\Program Files\Keil\ARM\Inc\ST\STM32F10x\stm32f10x.h")
C:\Program Files\Keil\ARM\Inc\ST\STM32F10x\stm32f10x_map.h(177): error: #256: invalid redeclaration of type name "CAN_FilterRegister_TypeDef" (declared at line 680 of "C:\Program Files\Keil\ARM\Inc\ST\STM32F10x\stm32f10x.h")
C:\Program Files\Keil\ARM\Inc\ST\STM32F10x\stm32f10x_map.h(203): error: #256: invalid redeclaration of type name "CAN_TypeDef" (declared at line 714 of "C:\Program Files\Keil\ARM\Inc\ST\STM32F10x\stm32f10x.h")

////////////////////////////////////


И Keil совершенно прав! Действительно дублирование есть. Если подключать хедеры где нет этого злосчастного \stm32f10x_type.h то все компилиться и работает на железе без проблем. Как только хоть кто то о нем заикнется начинается фиерия*))

Пытался закоментить все повторные декларации, но тогда компилятор перестает их видеть и оригинальные почему то...
SPL свежая...

Подскажите что делать...

Заранее спасибо!

Сообщение отредактировал Quantum1 - Jul 22 2014, 19:06
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Jul 22 2014, 21:35
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



#ifndef SOME_UNIT
#define SOME_UNIT


#endif

?
Go to the top of the page
 
+Quote Post
Quantum1
сообщение Jul 23 2014, 07:08
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 111
Регистрация: 4-09-12
Пользователь №: 73 381



не понял... а какой смысл то в этом, все равно в таком случае одна из инициализаций пропадет и будет тоже самое что просто лишнюю вырезать\закоментить...

Да и неужели родная библиотека требует таких жестких допилок... тут какая то маленькая, но глобальная грабля*)


Сообщение отредактировал Quantum1 - Jul 23 2014, 07:10
Go to the top of the page
 
+Quote Post
andrewlekar
сообщение Jul 23 2014, 07:51
Сообщение #4


Знающий
****

Группа: Участник
Сообщений: 837
Регистрация: 8-02-07
Пользователь №: 25 163



Добавьте, лишним не будет. Я где-то подобным образом CMSIS допиливал.
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Jul 23 2014, 08:14
Сообщение #5


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



У вас какая-то слишком древняя библиотека.
В последних версиях уже не используются подобные vsc32 типы данных.
Рекомендую скачать свежий CMSIS и свежую периферийную библиотеку ну и свежий keil заодно.


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
KnightIgor
сообщение Jul 23 2014, 08:18
Сообщение #6


Знающий
****

Группа: Участник
Сообщений: 643
Регистрация: 29-05-09
Из: Германия
Пользователь №: 49 725



Цитата(Quantum1 @ Jul 22 2014, 21:02) *
Добрый день!

Работаю в Keil.
Пытаюсь использовать SPL для stm32f103.
При включении в проект некоторых хедеров(к примеру gpio), начинается ахтунг.
//////////////////////////////

C:\Program Files\Keil\ARM\Inc\ST\STM32F10x\stm32f10x_type.h(23): error: #256: invalid redeclaration of type name "s32" (declared at line 470 of "C:\Program Files\Keil\ARM\Inc\ST\STM32F10x\stm32f10x.h")
...
C:\Program Files\Keil\ARM\Inc\ST\STM32F10x\stm32f10x_conf.h(147): warning: #47-D: incompatible redefinition of macro "HSE_Value" (declared at line 511 of "C:\Program Files\Keil\ARM\Inc\ST\STM32F10x\stm32f10x.h")
...
C:\Program Files\Keil\ARM\Inc\ST\STM32F10x\stm32f10x_map.h(58): error: #256: invalid redeclaration of type name "ADC_TypeDef" (declared at line 547 of "C:\Program Files\Keil\ARM\Inc\ST\STM32F10x\stm32f10x.h")
...
\stm32f10x.h")
SPL свежая...
Подскажите что делать...


SPL не свежая, точнее, Вы смешали версию 2 и 3 SPL: вышевыделенные заголовки - из версии 2, а в 3 их нет.
Скорее всего Вы компилируете старый пример. Возьмите новые.
Go to the top of the page
 
+Quote Post
Quantum1
сообщение Jul 23 2014, 18:10
Сообщение #7


Частый гость
**

Группа: Участник
Сообщений: 111
Регистрация: 4-09-12
Пользователь №: 73 381



у меня стоит Keil 4.23 - новее не могу поставить из-за программатора.

библиотеку качал с сайта stm т.е. она точно самая свежая

Цитата(KnightIgor @ Jul 23 2014, 12:18) *
SPL не свежая, точнее, Вы смешали версию 2 и 3 SPL: вышевыделенные заголовки - из версии 2, а в 3 их нет.
Скорее всего Вы компилируете старый пример. Возьмите новые.


компилю я свою прогу которая до подключения некоторых хедеров прекрасно компилилась и работала.


если не трудно дайте пожалуйста ссылку на 3 версию

Сообщение отредактировал Quantum1 - Jul 23 2014, 18:05
Go to the top of the page
 
+Quote Post
KnightIgor
сообщение Jul 23 2014, 18:36
Сообщение #8


Знающий
****

Группа: Участник
Сообщений: 643
Регистрация: 29-05-09
Из: Германия
Пользователь №: 49 725



Цитата(Quantum1 @ Jul 23 2014, 20:10) *
компилю я свою прогу которая до подключения некоторых хедеров прекрасно компилилась и работала.
если не трудно дайте пожалуйста ссылку на 3 версию

Библиотека
Миграция
Go to the top of the page
 
+Quote Post
kan35
сообщение Jul 24 2014, 06:09
Сообщение #9


Знающий
****

Группа: Участник
Сообщений: 537
Регистрация: 22-02-06
Пользователь №: 14 594



Может быть вы включаете gpio.h в своем файле? если так, то не правильно. У вас должен быть включен в ваших файлах только stm32fxxx.h а из него подключается все остальное. В частности вся доп периферия включается в ***_conf.h
Go to the top of the page
 
+Quote Post
antis
сообщение Jul 24 2014, 09:28
Сообщение #10


Участник
*

Группа: Участник
Сообщений: 44
Регистрация: 11-01-09
Пользователь №: 43 172



Попробуйте в настройках проекта в вкладке "С/С++" поставить галку на "No auto includes".

Go to the top of the page
 
+Quote Post
Quantum1
сообщение Aug 7 2014, 06:39
Сообщение #11


Частый гость
**

Группа: Участник
Сообщений: 111
Регистрация: 4-09-12
Пользователь №: 73 381



Да действительно! Дело оказалось в библиотеке. Поковырял Кейл выкинул все старые файлы, закинул свежие. И все стало норм! Всем спасибо!
Go to the top of the page
 
+Quote Post

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

 


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


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