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

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

xjtudll11年前 (2015-12-26)技术心得11310

参考资料;

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://www.xjtudll.cn/Exp/378/

标签: CC254xOSAL
分享给朋友:

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

vs2010删除臃肿的ipch和sdf文件

vs2010删除臃肿的ipch和sdf文件

VS2010建立C++解决方案时,会生成一个sdf文件和ipch文件夹,这两个文件再加上*.pch等文件使得工程变得非常的庞大,一个简单的程序都会占用几十M的硬盘容量。 解决方法: Tools->Options->Text Editor->C/C++->Advanced(高...

php Undefined index和Undefined variable的解决方法

参考资料:http://www.jb51.net/article/13974.htm 问题: 上传一个PHP网站到服务器,提示: PHP Notice: Undefined index: user in C:\inetpub\wwwroot\xonixwatch.com\manager\index....

C# 用NPOI操作读写2007版的excel错误

现象: 导出Excel2003正常,导出Excel2007莫名其妙的错误。 C#用NPOI操作读写类网上很多了,在此不重复。 我引用的dll:NPOI.dll,NPOI.OOXML.dll,NPOI.OpenXml4Net.dll, 解决方法:还需要引用ICSharpCode.SharpZipLib...

AutoCAD转Altium

以前写过一篇文章,讲述了AutoCAD如何转Protel99SE [AutoCAD转Protel99SE及丢线问题解决] 现在公司不允许用Protel99SE了(因版权问题),买了正版的Altium。因此,要将AutoCAD转Altium,其实是可以用上面的办法的,那个办法依旧有效。 还有一个...

Protel99SE PCB重复绘制导线

Protel99SE PCB重复绘制导线

Protel99SE PCB中,若相同Net的两个焊盘,默认是只能画一根导线的;或者说有三个相同Net的焊盘,那么只能将两边连起来,而有一边是无法连接起来的,如果你执意要连接,那么另外一边的导线将会自动去除。有没有什么办法重复绘制导线呢? Tools->Preference,将【Automat...

Proteus error:

Proteus error:"probe object xxx is ambigously placed"

Proteus仿真时,在添加电流探针以后,提示error "probe object xxx is ambigously placed" 如图所示: 原因: 电流探针仿真的时候那个电流的符号要和导线的方向一致 出现问题就是因为这个 解决办法: 改变电流探针方向,使之与导线方向...

发表评论

访客

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