你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM8 @svlreg 问题

[复制链接]
yejxmail 提问时间:2025-3-27 17:25 / 未解决

STM8 STVD Ver: 4.3.12

STM8S103早期开发的一款程序,时不时莫名其妙的错误。经不同编译器,发现@svlreg missing错误。

@far @interrupt void TIME2_UIS (void) 编译错误:

error clink Debug\abc.lkf:1 @svlreg missing for function f_TIME2_UIS

但是添加 @svlreg 后: @far @interrupt @svlreg void TIME2_UIS (void) 编译通过。

请问专家: @svlreg的出处,或者来自官方的好个文档?没有官方说明,无法解释。谢谢

收藏 评论2 发布时间:2025-3-27 17:25

举报

2个回答
butterflyspring 回答时间:2025-3-28 09:44:42
在编译器的文档里看到有一点说明,参考一下吧


cosmic svlreg.PNG
xmshao 回答时间:2025-3-31 17:30:01
应该是你代码中涉及到某些关键字的地方写得不够规范,编译器根据它的理解给你一个出错提示。


重点关注下你那些中断函数的写法,针对不同编译器,写法可能也不一样。这些信息在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 ====================================*/


这些关键字要匹配着编译器来写。
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版