XWOS API  4.0
XWOS C/C++ API参考手册
载入中...
搜索中...
未找到
controller.c 文件参考

玄武设备栈:CAN:总线控制器 更多...

#include <xwcd/ds/standard.h>
#include <string.h>
#include <xwos/lib/xwlog.h>
#include <xwos/lib/xwaop.h>
#include <xwos/osal/lock/spinlock.h>
#include <xwos/osal/sync/sem.h>
#include <xwcd/ds/can/controller.h>
controller.c 的引用(Include)关系图:

浏览源代码.

函数

static xwer_t xwds_canc_vop_probe (struct xwds_canc *canc)
 XWDS VOP:探测CAN控制器
 
static xwer_t xwds_canc_vop_remove (struct xwds_canc *canc)
 XWDS VOP:移除CAN控制器
 
static xwer_t xwds_canc_vop_start (struct xwds_canc *canc)
 XWDS VOP:启动CAN控制器
 
static xwer_t xwds_canc_vop_stop (struct xwds_canc *canc)
 XWDS VOP:停止CAN控制器
 
static xwer_t xwds_canc_vop_suspend (struct xwds_canc *canc)
 XWDS VOP:暂停CAN控制器
 
static xwer_t xwds_canc_vop_resume (struct xwds_canc *canc)
 XWDS VOP:继续CAN控制器
 
void xwds_canc_construct (struct xwds_canc *canc)
 XWDS API:CAN控制器的构造函数
 
void xwds_canc_destruct (struct xwds_canc *canc)
 XWDS API:CAN控制器对象的析构函数
 
xwer_t xwds_canc_grab (struct xwds_canc *canc)
 XWDS API:增加对象的引用计数
 
xwer_t xwds_canc_put (struct xwds_canc *canc)
 XWDS API:减少对象的引用计数
 
xwer_t xwds_canc_write (struct xwds_canc *canc, xwid_t txobjid, struct xwds_can_msg *msg)
 XWDS API:将一条CAN消息写入发送邮箱
 
xwer_t xwds_canc_enable_irqs (struct xwds_canc *canc)
 XWDS API:开启CAN控制器的中断
 
xwer_t xwds_canc_disable_irqs (struct xwds_canc *canc)
 XWDS API:关闭CAN控制器的中断
 
xwer_t xwds_canc_set_mode (struct xwds_canc *canc, xwsq_t mode)
 XWDS API:设置CAN控制器的模式
 
xwer_t xwds_canc_set_bd (struct xwds_canc *canc, xwid_t bdcfgid)
 XWDS API:设置CAN控制器的波特率
 
void xwds_canc_rxq_init (struct xwds_canc_rxqueue *rxq)
 XWDS API:初始化接收缓冲队列
 
void xwds_canc_rxq_publish (struct xwds_canc_rxqueue *rxq, struct xwds_can_msg *msg)
 XWDS API:发布一条消息到接收缓冲队列中
 
xwer_t xwds_canc_rxq_acquire (struct xwds_canc_rxqueue *rxq, struct xwds_can_msg *buf, xwtm_t to)
 XWDS API:从接收缓冲队列中获取一条消息
 
void xwds_canc_setcb_tx_indication (struct xwds_canc *canc, void(*cb)(struct xwds_canc *, xwid_t, xwer_t))
 XWDS API:设置 指示发送结果 的回调函数
 
void xwds_canc_setcb_rx_indication (struct xwds_canc *canc, void(*cb)(struct xwds_canc *, xwid_t, struct xwds_can_msg *))
 XWDS API:设置 指示接收结果 的回调函数
 
void xwds_canc_setcb_wakeup_notification (struct xwds_canc *canc, void(*cb)(struct xwds_canc *))
 XWDS API:设置 唤醒通知 回调函数
 
void xwds_canc_setcb_mode_indication (struct xwds_canc *canc, void(*cb)(struct xwds_canc *, xwsq_t))
 XWDS API:设置 模式切换通知 回调函数
 
void xwds_canc_setcb_err_indication (struct xwds_canc *canc, void(*cb)(struct xwds_canc *, xwsq_t, xwsq_t, xwsq_t))
 XWDS API:设置 错误通知 回调函数
 
void xwds_canc_setcb_busoff_indication (struct xwds_canc *canc, void(*cb)(struct xwds_canc *))
 XWDS API:设置 BUSOFF通知 回调函数
 
void xwds_canc_drvcb_init_msg (struct xwds_can_msg *msg, xwu32_t canid, xwsq_t flag, xwsz_t dlc, xwu8_t sdu[])
 XWDS Driver Callback:初始化CAN总线消息结构体
 
void xwds_canc_drvcb_tx_indication (struct xwds_canc *canc, xwid_t txobjid, xwer_t rc)
 XWDS Driver Callback:指示发送结果
 
void xwds_canc_drvcb_rx_indication (struct xwds_canc *canc, xwid_t rxobjid, struct xwds_can_msg *rxmsg)
 XWDS Driver Callback:接收到CAN消息后的回调函数
 
void xwds_canc_drvcb_wakeup_notification (struct xwds_canc *canc)
 XWDS Driver Callback:CAN控制器的唤醒通知
 
void xwds_canc_drvcb_mode_indication (struct xwds_canc *canc, xwsq_t mode)
 XWDS Driver Callback:指示CAN控制器的模式已经切换
 
void xwds_canc_drvcb_err_indication (struct xwds_canc *canc, xwsq_t errcode, xwsq_t tec, xwsq_t rec)
 XWDS Driver Callback:指示CAN控制器发生错误
 
void xwds_canc_drvcb_busoff_indication (struct xwds_canc *canc)
 XWDS Driver Callback:指示CAN控制器发生busoff
 

变量

const struct xwds_virtual_operation xwds_canc_vop
 

详细描述

玄武设备栈:CAN:总线控制器

作者

在文件 controller.c 中定义.

函数说明

◆ xwds_canc_vop_probe()

static xwer_t xwds_canc_vop_probe ( struct xwds_canc canc)
static

XWDS VOP:探测CAN控制器

参数
[in]cancCAN控制器对象指针

在文件 controller.c92 行定义.

93{
94 xwer_t rc;
95
96 XWDS_VALIDATE(canc->cfg, "nullptr", -EFAULT);
97
99 rc = xwds_device_vop_probe(&canc->bc.dev);
100 return rc;
101}
@ XWDS_CANC_MODE_UNINIT
Definition controller.h:132
xwer_t xwds_device_vop_probe(struct xwds_device *dev)
设备基本操作函数:探测设备
Definition device.c:67
#define XWDS_VALIDATE(exp, errstr,...)
Definition standard.h:51
#define EFAULT
Bad address
Definition errno.h:44
signed long xwer_t
Definition type.h:554
xwsq_t mode
Definition controller.h:231
struct xwds_device dev
Definition controller.h:216
const struct xwds_canc_cfg * cfg
Definition controller.h:226
union xwds_canc::@15 bc
函数调用图:

◆ xwds_canc_vop_remove()

static xwer_t xwds_canc_vop_remove ( struct xwds_canc canc)
static

XWDS VOP:移除CAN控制器

参数
[in]cancCAN控制器对象指针

在文件 controller.c108 行定义.

109{
110 xwer_t rc;
111
112 rc = xwds_device_vop_remove(&canc->bc.dev);
113 return rc;
114}
xwer_t xwds_device_vop_remove(struct xwds_device *dev)
设备基本操作函数:删除设备
Definition device.c:86
函数调用图:

◆ xwds_canc_vop_resume()

static xwer_t xwds_canc_vop_resume ( struct xwds_canc canc)
static

XWDS VOP:继续CAN控制器

参数
[in]cancCAN控制器对象指针

在文件 controller.c162 行定义.

163{
164 xwer_t rc;
165
166 rc = xwds_device_vop_resume(&canc->bc.dev);
167 return rc;
168}
xwer_t xwds_device_vop_resume(struct xwds_device *dev)
设备基本操作函数:继续设备
Definition device.c:163
函数调用图:

◆ xwds_canc_vop_start()

static xwer_t xwds_canc_vop_start ( struct xwds_canc canc)
static

XWDS VOP:启动CAN控制器

参数
[in]cancCAN控制器对象指针

在文件 controller.c121 行定义.

122{
123 xwer_t rc;
124
125 rc = xwds_device_vop_start(&canc->bc.dev);
126 return rc;
127}
xwer_t xwds_device_vop_start(struct xwds_device *dev)
设备基本操作函数:启动设备
Definition device.c:105
函数调用图:

◆ xwds_canc_vop_stop()

static xwer_t xwds_canc_vop_stop ( struct xwds_canc canc)
static

XWDS VOP:停止CAN控制器

参数
[in]cancCAN控制器对象指针

在文件 controller.c134 行定义.

135{
136 xwer_t rc;
137
138 rc = xwds_device_vop_stop(&canc->bc.dev);
139 return rc;
140}
xwer_t xwds_device_vop_stop(struct xwds_device *dev)
设备基本操作函数:停止设备
Definition device.c:124
函数调用图:

◆ xwds_canc_vop_suspend()

static xwer_t xwds_canc_vop_suspend ( struct xwds_canc canc)
static

XWDS VOP:暂停CAN控制器

参数
[in]cancCAN控制器对象指针

在文件 controller.c149 行定义.

150{
151 xwer_t rc;
152
153 rc = xwds_device_vop_suspend(&canc->bc.dev);
154 return rc;
155}
xwer_t xwds_device_vop_suspend(struct xwds_device *dev)
设备基本操作函数:暂停设备
Definition device.c:144
函数调用图:

变量说明

◆ xwds_canc_vop

const struct xwds_virtual_operation xwds_canc_vop
初始值:
= {
.probe = (void *)xwds_canc_vop_probe,
.remove = (void *)xwds_canc_vop_remove,
.start = (void *)xwds_canc_vop_start,
.stop = (void *)xwds_canc_vop_stop,
.suspend = (void *)xwds_canc_vop_suspend,
.resume = (void *)xwds_canc_vop_resume,
}
static xwer_t xwds_canc_vop_remove(struct xwds_canc *canc)
XWDS VOP:移除CAN控制器
Definition controller.c:108
static xwer_t xwds_canc_vop_start(struct xwds_canc *canc)
XWDS VOP:启动CAN控制器
Definition controller.c:121
static xwer_t xwds_canc_vop_suspend(struct xwds_canc *canc)
XWDS VOP:暂停CAN控制器
Definition controller.c:149
static xwer_t xwds_canc_vop_probe(struct xwds_canc *canc)
XWDS VOP:探测CAN控制器
Definition controller.c:92
static xwer_t xwds_canc_vop_resume(struct xwds_canc *canc)
XWDS VOP:继续CAN控制器
Definition controller.c:162
static xwer_t xwds_canc_vop_stop(struct xwds_canc *canc)
XWDS VOP:停止CAN控制器
Definition controller.c:134

在文件 controller.c49 行定义.