Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: не компилится под IAR 6.21
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
MK2
Установил последний IAR 6.21. Перестало все компилироваться. Даже стандартные примеры из StdPeriph_Lib
пишет:
Код
Error[Pe147]: declaration is incompatible with "__interwork __softfp unsigned long __get_PSP(void)" (declared at line 52 of "E:\PRODJECT\Embedded Workbench 6.0\arm\ E:\My Document\STM32F207\stm32vldiscovery_package\Libraries\CMSIS\CM3\CoreSupport\core_cm3.h 1084
inc\c\intrinsics.h")
Error[Pe147]: declaration is incompatible with "__interwork __softfp void __set_PSP(unsigned long)" (declared at line 53 of "E:\PRODJECT\Embedded Workbench 6.0\arm\ E:\My Document\STM32F207\stm32vldiscovery_package\Libraries\CMSIS\CM3\CoreSupport\core_cm3.h 1094
inc\c\intrinsics.h")
Error[Pe147]: declaration is incompatible with "__interwork __softfp unsigned long __get_MSP(void)" (declared at line 50 of "E:\PRODJECT\Embedded Workbench 6.0\arm\ E:\My Document\STM32F207\stm32vldiscovery_package\Libraries\CMSIS\CM3\CoreSupport\core_cm3.h 1104
inc\c\intrinsics.h")
Error[Pe147]: declaration is incompatible with "__interwork __softfp void __set_MSP(unsigned long)" (declared at line 51 of "E:\PRODJECT\Embedded Workbench 6.0\arm\ E:\My Document\STM32F207\stm32vldiscovery_package\Libraries\CMSIS\CM3\CoreSupport\core_cm3.h 1114
inc\c\intrinsics.h")
Error[Pe147]: declaration is incompatible with "__interwork __softfp unsigned long __REV16(unsigned long)" (declared at line 173 of "E:\PRODJECT\Embedded Workbench  E:\My Document\STM32F207\stm32vldiscovery_package\Libraries\CMSIS\CM3\CoreSupport\core_cm3.h 1124
6.0\arm\inc\c\intrinsics.h")
Error[Pe147]: declaration is incompatible with "__interwork __softfp unsigned long __RBIT(unsigned long)" (declared at line 174 of "E:\PRODJECT\Embedded Workbench 6.0\ E:\My Document\STM32F207\stm32vldiscovery_package\Libraries\CMSIS\CM3\CoreSupport\core_cm3.h 1134
arm\inc\c\intrinsics.h")
Error[Pe147]: declaration is incompatible with "__interwork __softfp unsigned long __STREXB(unsigned char, unsigned char *)" (declared at line 181 of "E:\PRODJECT\ E:\My Document\STM32F207\stm32vldiscovery_package\Libraries\CMSIS\CM3\CoreSupport\core_cm3.h 1175
Embedded Workbench 6.0\arm\inc\c\intrinsics.h")
Error[Pe147]: declaration is incompatible with "__interwork __softfp unsigned long __STREXH(unsigned short, unsigned short *)" (declared at line 182 of "E:\PRODJECT\ E:\My Document\STM32F207\stm32vldiscovery_package\Libraries\CMSIS\CM3\CoreSupport\core_cm3.h 1186
Embedded Workbench 6.0\arm\inc\c\intrinsics.h")
Error while running C/C++ Compiler
startup_stm32f10x_md_vl.s
stm32f10x_flash.c  
.................................. ну и остальное в таком же духе что то ему CMSISкие файлы не нравятся


облазил всю справку но нигде не нашел эту ошибку "Error[Pe147]: declaration is incompatible with"
может надо что-то в настройках проекта поменять?
aba
Слишком мало информации, "перестало всё компилется" из этого ничего не понятно. Под какой процессор проект и компилился ли он раньше в другой среде?
Судя по названию путей - это демопример для STM32VLDiscovery. Тут у вас банально не совпадение типов, там в описании ошибки написано в каком файле впервые встречается такая декларация. Приведите типы в обеих файлах к одинаковому виду и будет вам счастие.
MK2
раньше юзал IAR for ARM v. 6.10 32K Kickstart Edition все нормально было, плата дискавери но еще F207 через неё прошиваю
типы и вправду не совпадают в файле core_cm3.h объявление:
Код
extern uint32_t __get_PSP(void);

extern void __set_PSP(uint32_t topOfProcStack);

extern uint32_t __get_MSP(void);

extern void __set_MSP(uint32_t topOfMainStack);

extern uint32_t __REV16(uint16_t value);......................

а в файле Embedded Workbench 6.0\arm\inc\c\intrinsics.h
Код
__intrinsic unsigned long __get_PSR( void );
__intrinsic unsigned long __get_IPSR( void );
__intrinsic unsigned long __get_MSP( void );
__intrinsic void          __set_MSP( unsigned long );
__intrinsic unsigned long __get_PSP( void );
__intrinsic void          __set_PSP( unsigned long );
__intrinsic unsigned long __get_PRIMASK( void );
__intrinsic void          __set_PRIMASK( unsigned long );
__intrinsic unsigned long __get_CONTROL( void );
__intrinsic void          __set_CONTROL( unsigned long );

в иаре есть встроенные примеры StdPeriph_Lib. открыл их все компилируется но файл core_cm3.h у них совсем другой, отличается что идет в комплекте с StdPeriph_Lib
MK2
Хреновый это какой-то IAR, откачюсь обратно на 6.10
На другой машине такая же история, так что хорошо подумайте прежде чем его ставить 6.21
Xenia
Цитата(MK2 @ Oct 6 2011, 18:52) *
Хреновый это какой-то IAR, откачюсь обратно на 6.10
На другой машине такая же история, так что хорошо подумайте прежде чем его ставить 6.21

Возможно, что последняя версия 6.21.4 окажется лучше - в ней исправляли какие-то ошибки версии 6.21.1.
Tran
Это действительно различия в интринсиках. Я в своё время не поленился, исправил uint32_t на unsigned long, всё скомпилилось, но не заработало sm.gif
pesicot
Столкнулся с такой же проблемой.

Release note for IAR ARM 6.21

A special note on CMSIS integration:

If your application source code include CMSIS header files explicitly, then you should not check the Use CMSIS check-box Project>Options...>General Options>Library Configuration>Use CMSIS. Some of the Cortex-M application examples includes CMSIS source files explicitly, do not check the said check-box in these projects.


Нужно:
  • Установить Project>Options...>General Options>Library Configuration>Use CMSIS
  • Удалить из проекти и из его папки файлы core_cm3.c и core_cm3.h.


Во вложении рабочий проект для STM32-Discovery под IAR ARM 6.21
Danis
Цитата(MK2 @ Oct 1 2011, 15:29) *
Установил последний IAR 6.21. Перестало все компилироваться. Даже стандартные примеры из StdPeriph_Lib

Тоже было такое: Error[Pe147]: declaration is incompatible with "__interwork __softfp unsigned long __get_PSP(void)"
устранил:
клик
MK2
Спасибо большое жалко только уже снес ИАР, пришлось потом даже 6.10 потом удалить, его походу 6.2 подкосил((. А ведь ставил в настройках Use , только файлы CMSIS не додумался удалить))
Жалко IAR думал поюзать поставляемы с ним стеки, но как-то уже на кейловские RL-ARM прижились )
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.