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

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

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

参考资料;

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

BL51: WARNING L13 (RECURSIVE CALL TO SEGMENT) WITH CONSTANTS 解决

问题描述:   将函数名存储在table里,通过函数指针的方式调用函数。 编译提示: BL51: WARNING L13 (RECURSIVE CALL TO SEGMENT) WITH CONSTANTS 使用环境: C51 Version 7.00 代码例程(使用Keil官方资料来说...

二进制逆序(字节反转)

  1  理论分析   二进制逆序,顾名思义就是将低位和高位交换,例如0x23 = 0010 0011 B,逆序后就是1100 0100 B。字节反转在“小端”格式和“大端”格式之间的数据转换是一个必要的操作。 一种比较...

mircrosoft project2010怎么设置任务级别,降级

mircrosoft project2010怎么设置任务级别,降级

参考资料: http://zhidao.baidu.com/link?url=hW3eTVmKLi2WzQM_jTfsCb2btmRnrmixR8tfFfiRn1YTtM6ylBBXMsnQHpEAUefawNdg-bTiFeXh9Of-U47Mma 两个方法: 1、任务菜单---计划列表---那两...

如何在Firefox上安装未通过验证的扩展

如何在Firefox上安装未通过验证的扩展

参考资料: http://www.cnblogs.com/pcat/p/6806340.html https://www.zhihu.com/question/47505319 xpi文件是Firefox浏览器的扩展文件,打开Firefox,把xpi文件...

IOS textField怎样设置只能输入英文字母或者数字,不能输入汉字

参考资料: http://segmentfault.com/q/1010000002705645/a-1020000002708433 //设置键盘类型 self.textField.keyboardType = UIKeyboardTypeASCIICapable; define kAlph...

堪称一绝的“IO口扫键”法

堪称一绝的“IO口扫键”法

在做项目(工程)的时候,我们经常要用到比较多的按键,而且IO资源紧张,于是我们就想方设法地在别的模块中节省IO口,好不容易挤出一两个IO口,却发现仍然不够用,实在没办法了就添加一个IC来扫键。一个IC虽然价格不高,但对于大批量生产而且产品利润低的厂家来说,这是一笔不菲的开支! 那,我们能不能想到比较...

发表评论

访客

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