μC/OS-II的多任务信息流与CAN总线驱动
)。
接口函数总结如下。
voidCanInitHW(UIsegment,BYTEirq0,BYTEIRQ1)
/*设置SJA1000控制器端口中断向量*/
intcanReleaseHW()/*清除SJA1000控制器端口中断向量*/
intcanSendMsg(CANBYTEport,MSG_STRUCTmsg)
/*向定制SJA1000控制器端口发送数据*/
intcanReceiveMsg(CANBYTEport,MSG_STRUCTmsg_ptr)
/*从定制SJA1000控制器端口接收数据
intcanConfig(CANBYTEport,CAN_STRUCTcan)
/*初始化和配置SJA1000控制器*/
intcanNormalRun(CANBYTEport)
/*设置SJA1000正常(Normal)运行模式*/
intcanReset(CANBYTEport)
/*SJA1000控制器端口重新设置,缓冲区置位0xff*/
CANBYTEcan0r(CANBYTEaddr)
/*读取SJA1000控制器端口0的定制寄存器的值*/
CANBYTEcan1r(CANBYTEaddr)
/*读取SJA1000控制器端口1的定制寄存器的值*/
接收和发送数据缓冲区数据结构定义:
>typedefstruct{
INT16URingBufRxCtr;/*接收缓冲中字符数目*/
OS_EVENTRingBufRxSem;/*接收信号量*/
INT8URingBufRxInPtr;/*接收缓冲中下一字符的写入位置*/
INT8URingBufRxOutPtr;/*接收缓冲中下一待读出字符的位置*/
INT8URingBufRx[CAN_RX_BUF_SIZE];/*接收环形缓冲区*/
INT16URingBufTxCtr;
/*发送缓冲中字符数目*/
OS_EVENT*RingBufTxSem;/*发送信号量*/
INT8U*RingBufTxInPtr;
/*发送缓冲中下一字符的写入位置*/
INT8U*RingBufTxOutPtr;
/*发送缓冲中下一待读出字符的位置*/
INT8URingBufTx[CAN_TX_BUF_SIZE];/*发送环形缓冲区*/
}CAN_RING_BUF;
结语
本文是在嵌入式计算机技术领域的应用背景下提出的,整个工程开发结束以后,系统正常运作时间超过27天。希望本文的提出对开发嵌入式操作系统的技术人员能有所帮助,同时也希望同一领域的开发人员共同探讨、共同发展。
《μC/OS-II的多任务信息流与CAN总线驱动(第5页)》
本文链接地址:http://www.oyaya.net/fanwen/view/168701.html
接口函数总结如下。
voidCanInitHW(UIsegment,BYTEirq0,BYTEIRQ1)
/*设置SJA1000控制器端口中断向量*/
intcanReleaseHW()/*清除SJA1000控制器端口中断向量*/
intcanSendMsg(CANBYTEport,MSG_STRUCTmsg)
/*向定制SJA1000控制器端口发送数据*/
intcanReceiveMsg(CANBYTEport,MSG_STRUCTmsg_ptr)
/*从定制SJA1000控制器端口接收数据
intcanConfig(CANBYTEport,CAN_STRUCTcan)
/*初始化和配置SJA1000控制器*/
intcanNormalRun(CANBYTEport)
/*设置SJA1000正常(Normal)运行模式*/
intcanReset(CANBYTEport)
/*SJA1000控制器端口重新设置,缓冲区置位0xff*/
CANBYTEcan0r(CANBYTEaddr)
/*读取SJA1000控制器端口0的定制寄存器的值*/
CANBYTEcan1r(CANBYTEaddr)
/*读取SJA1000控制器端口1的定制寄存器的值*/
接收和发送数据缓冲区数据结构定义:
>typedefstruct{
INT16URingBufRxCtr;/*接收缓冲中字符数目*/
OS_EVENTRingBufRxSem;/*接收信号量*/
INT8URingBufRxInPtr;/*接收缓冲中下一字符的写入位置*/
INT8URingBufRxOutPtr;/*接收缓冲中下一待读出字符的位置*/
INT8URingBufRx[CAN_RX_BUF_SIZE];/*接收环形缓冲区*/
INT16URingBufTxCtr;
/*发送缓冲中字符数目*/
OS_EVENT*RingBufTxSem;/*发送信号量*/
INT8U*RingBufTxInPtr;
/*发送缓冲中下一字符的写入位置*/
INT8U*RingBufTxOutPtr;
/*发送缓冲中下一待读出字符的位置*/
INT8URingBufTx[CAN_TX_BUF_SIZE];/*发送环形缓冲区*/
}CAN_RING_BUF;
结语
本文是在嵌入式计算机技术领域的应用背景下提出的,整个工程开发结束以后,系统正常运作时间超过27天。希望本文的提出对开发嵌入式操作系统的技术人员能有所帮助,同时也希望同一领域的开发人员共同探讨、共同发展。
《μC/OS-II的多任务信息流与CAN总线驱动(第5页)》