当前位置:首页 > 技术心得 > 正文内容

OSAL系统如何写中断服务函数

xjtudll9年前 (2015-12-26)技术心得6370

参考资料;

http://bbs.21ic.com/icview-192248-1-1.html

问题:

OSAL添加中断服务程序的时候编译报错

3e15f11d43214a2f923f71e5f866d321

提示:Error[Pa045]: function "T4_ISR" has no prototype
但是定时器中断实验程序(裸机,无OSAL)就没这个问题

解答:

OSAL里中断进行了封装,不能直接写

#pragma vector = URX0_VECTOR
__interrupt void UART0_ISR(void)
{
  ;
}

而应该类似于下面这个写法:

HAL_ISR_FUNCTION( halUart0RxIsr, URX0_VECTOR )
{

}

在hal_mcu.h里

#define _PRAGMA(x) _Pragma(#x)
#define HAL_ISR_FUNC_DECLARATION(f,v)   _PRAGMA(vector=v) __near_func __interrupt void f(void)
#define HAL_ISR_FUNC_PROTOTYPE(f,v)     _PRAGMA(vector=v) __near_func __interrupt void f(void)
#define HAL_ISR_FUNCTION(f,v)           HAL_ISR_FUNC_PROTOTYPE(f,v); HAL_ISR_FUNC_DECLARATION(f,v)

扫描二维码推送至手机访问。

版权声明:本文由鸟的天空发布,如需转载请注明出处。

本文链接:http://xjtudll.cn/Exp/378/

标签: CC254xOSAL
分享给朋友:

“OSAL系统如何写中断服务函数” 的相关文章

C#让TextBox滚动条一直位于最下部

TextChanged事件 滚动条自动处于TextBox最下部需要在Form1类中加上下段代码:   private void txtReceiveMsgChanged(object sender, EventArgs e) {     //...

Android Studio xml编译error: Apostrophe not preceded by \

Android Studio xml编译error: Apostrophe not preceded by \

问题: Resource Path Location Type error: Apostrophe not preceded by \ (in Search' Titles) strings.xml 原因: 在string.xml中使用了转义字符 解决办法: 在编译出...

Xcode Warning:Unsupported Configuration Content rectangle解决

Xcode Warning:Unsupported Configuration Content rectangle解决

参考资料:http://stackoverflow.com/questions/12423654/unsupported-configuration-error-in-cocoa-xcode 警告: " Unsupported Configuration  &n...

金蝶K3设置套打ActiveX 部件不能创建对象

金蝶K3设置套打ActiveX 部件不能创建对象

处理方式: 打开CMD命令提示符,执行以下命令注册加载该程序集即可解决。 C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe "C:\Program Files (x86)\Kingdee\K3ERP\K3Exc...

NSButton——设定背景图片Scale

NSButton——设定背景图片Scale

参考资料: http://stackoverflow.com/questions/5851923/how-to-scale-axes-independently-at-runtime-on-an-nsbutton 代码方式: NSButton *someButton; NSButtonCell...

OKI DSR警告解决

OKI DSR警告解决

使用OKI编译ML610Q473程序的时候,偶然发现编译器出了一堆warning,表面上看起来似乎不影响使用,但是看起来也是不爽。警告内容如下: 经查,所有的warning都与中断相关,所有的警告都在中断函数里产生的。 为什么中断函数会产生DSR警告呢? 这是因为在每次进入中断时,都会做push...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。