应该是你代码中涉及到某些关键字的地方写得不够规范,编译器根据它的理解给你一个出错提示。 重点关注下你那些中断函数的写法,针对不同编译器,写法可能也不一样。这些信息在stm8s.h里都有介绍,当然终究都是 为了匹配STM8内部的存储架构和寻址特性等。 #ifdef _COSMIC_ #define FAR @far #define NEAR @near #define TINY @tiny #define EEPROM @eeprom #define CONST const ...... #else /*_IAR_*/ #define FAR __far #define NEAR __near #define TINY __tiny #define EEPROM __eeprom #define CONST const #endif /* __CSMC__ */ /*============================== Interrupt vector Handling ========================*/ #ifdef _COSMIC_ #define INTERRUPT_HANDLER(a,b) @far @interrupt void a(void) #define INTERRUPT_HANDLER_TRAP(a) void @far @interrupt a(void) #endif /* _COSMIC_ */ #ifdef _RAISONANCE_ #define INTERRUPT_HANDLER(a,b) void a(void) interrupt b #define INTERRUPT_HANDLER_TRAP(a) void a(void) trap #endif /* _RAISONANCE_ */ #ifdef _IAR_ #define STRINGVECTOR(x) #x #define VECTOR_ID(x) STRINGVECTOR( vector = (x) ) #define INTERRUPT_HANDLER( a, b ) \ _Pragma( VECTOR_ID( (b)+2 ) ) \ __interrupt void (a)( void ) #define INTERRUPT_HANDLER_TRAP(a) \ _Pragma( VECTOR_ID( 1 ) ) \ __interrupt void (a) (void) #endif /* _IAR_ */ /*============================== Interrupt Handler declaration ========================*/ #ifdef _COSMIC_ #define INTERRUPT @far @interrupt #elif defined(_IAR_) #define INTERRUPT __interrupt #endif /* _COSMIC_ */ /*============================== Handling bits ====================================*/ 这些关键字要匹配着编译器来写。
所在话题
参与活动
-
滴滴押注社区团购,明确“投入不设上限,要做市场第一”
线下 2020-10-16 -
滴滴押注社区团购,明确“投入不设上限,要做市场第一”
网络 2020-10-16 -
滴滴押注社区团购,明确“投入不设上限,要做市场第一”
网络 2020-10-16 -
滴滴押注社区团购,明确“投入不设上限,要做市场第一”
网络 2020-10-16 -
滴滴押注社区团购,明确“投入不设上限,要做市场第一”
线下 2020-10-16 -
滴滴押注社区团购,明确“投入不设上限,要做市场第一”
线下 2020-10-16