zigbee协议栈 中断服务函数定义方法
来源:互联网 发布:云计算培训多诈骗 编辑:程序博客网 时间:2024/06/07 09:25
zigbee协议栈 中断服务函数定义方法
我们先看协议栈中 hal_uart.c 文件中的串口操作中断服务程序:
HAL_ISR_FUNCTION( halUart0RxIsr, URX0_VECTOR ) //uart0 接收
HAL_ISR_FUNCTION( halUart1RxIsr, URX1_VECTOR ) //uart1 接收
HAL_ISR_FUNCTION( halUart0TxIsr, UTX0_VECTOR ) //uart0 发送
HAL_ISR_FUNCTION( halUart1TxIsr, UTX1_VECTOR ) //uart1 发送
这四个是 uart0 和uart1 的串口接收和发送中断服务程序,下面是协议栈定义中断服务程序的方法。我们看一下 hal_mcu.h 文件:
#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);
从这两个#define 的定义可以了解到:
HAL_ISR_FUNCTION( halUart0RxIsr, URX0_VECTOR )按照定义展开来就是:
_PRAGMA(URX0_VECTOR) __near_func __interrupt voidhalUart0RxIsr(void);
其中_PRAGMA 是编译器预定义的声明中断服务程序的一个方法,URX0_VECTOR 是中断编号(在
ioCC2530.h文件中定义)。halUart1TxIsr就是f所指的函数,也就是我们的中断服务函数。
常规中断服务函数定义:
#pragma vector = T3_VECTOR //定时器 T3
__interrupt void T3_ISR(void)
协议栈中的定义:
_PRAGMA(URX0_VECTOR) __near_func __interrupt void halUart0RxIsr(void);
注解:
_PRAGMA(URX0_VECTOR) //定义中断向量
__near_func //IAR的特殊字
__interrupt //中断函数标志
void halUart0RxIsr(void); //halUart0RxIsr 函数名
补充:
#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)
还有这样的定义,第一个是函数声明,第二个是函数原型,第三个是函数定义,这三个不能少一个。
- zigbee协议栈 中断服务函数定义方法
- zigbee协议栈 中断服务函数定义方法
- ZigBee密西西比协议栈的中断回调usrSlowTimerInt()函数
- Zigbee协议栈OSAL层API函数
- Zigbee协议栈OSAL层API函数
- Zigbee协议栈发送函数AF_DataRequest说明
- Zigbee协议栈OSAL层API函数
- Zigbee协议栈OSAL层API函数
- Zigbee协议栈发送函数AF_DataRequest说明
- zigbee 协议栈 常用API函数
- Zigbee协议栈OSAL层API函数
- zigbee协议栈
- zigbee协议栈简介
- Zigbee 协议栈
- zigbee协议栈简介
- ZigBee协议栈看门狗
- Zigbee协议栈OSAL层API函数(译)
- ARM 中断函数定义
- 嵌入式系统帧同步
- Java Socket实战之八 socket提升
- sql 数字类型运算
- Windows环境下生成Apple证书教程
- 驱动调试常见问题_Camera
- zigbee协议栈 中断服务函数定义方法
- SD-如何根据销售单位确认数量,避免出现小数确认数量
- 遇到的问题-------------------MSSQLSERVER服务无法启动的解决方案
- 如何记录受保护视频
- 第四部分 个人理财风险防范11.提防网络陷阱
- android开发,sqlite中Index -1 requested,with a size of XXX 问题的修复
- Hadoop回收站trash
- 多线程--内核对象和句柄泄露&CloseHandle
- browser css