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

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

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

参考资料;

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系统如何写中断服务函数” 的相关文章

金蝶 KFO.Dictionary 怎么写

.Net 调用,以C#为例,调用如下: 1、添加kfo.dll的引用。 2、调用方法 KFO.Dictionary dct=new KFO.Dictionary(); dct.let_value("FInteID",100);...

SensorTag编译错误Error[e16]: Segment ISTACK (size: 0xc0 align: 0) is too long for segment definition.

SensorTag编译错误Error[e16]: Segment ISTACK (size: 0xc0 align: 0) is too long for segment definition.

问题: IAR 8051 8.302,编译TI的BLE-CC254x-1.4.0的SensorTag工程,对此工程没有进行任何改动,直接编译,出现如下错误: 分析: 参考TI技术论坛【http://www.deyisupport.com/question_answer/wireless_conne...

固定水晶报表每页显示的行数两种方法

方法一:   例如每页显示20条记录:    1.选择[区段专家]    2.选择[明细]    3.选择[在之前新增分页]的公式按钮,输入以下公司    IF   Remaind...

金蝶K3采购订单序时簿过滤条件的执行状态分别是什么意思?

【概述】 未完全到货:【数量】-【收料数量】>0的单据 未完全入库:【数量】-【入库数量】>0的单据 未完全开票:【数量】-【开票数量】>0的单据 未完全付款:【价税合计】-【付款关联金额】>0的单据 完全付款: 【价税合计】-【付款关联金额】=0的单据...

线反转法行列键盘扫描

线反转法行列键盘扫描

    行列键盘的学习是单片机学习的必经之路,可是对于初学者来说学习起来并不容易。书上的资料不多,或是说明不细,亦或太复杂不易理解。而线反转法行列键盘扫描简单易懂,非常适合初学者学习,也可作为程序开发之用。    了解行...

如何获取.NET Framework目录路径?

问题: 如何在C#应用程序中获取.NET Framework目录路径? 例如:“C:\ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727” 方法: 通过使用以下方法可以获取当前.NET应用程序活动的CLR安装目录的路径: Sys...

发表评论

访客

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