XWOS API
4.0
XWOS C/C++ API参考手册
|
结构体 | |
struct | xwds_can_msg |
CAN消息 更多... | |
struct | xwds_canc_bd_cfg |
CAN总线控制器波特率配置 更多... | |
struct | xwds_canc_txobj_cfg |
CAN发送对象(消息)配置 更多... | |
struct | xwds_canc_rxobj_cfg |
CAN接收对象(消息)配置 更多... | |
struct | xwds_canc_cfg |
CAN控制器配置 更多... | |
struct | xwds_canc_driver |
BSP中需要提供的CAN控制器驱动函数表 更多... | |
struct | xwds_canc_cbtbl |
CAN控制器应用层回调函数表 更多... | |
struct | xwds_canc_rxqueue |
CAN控制器接收队列 更多... | |
struct | xwds_canc |
CAN控制器 更多... | |
宏定义 | |
#define | __xwds_canc_cbtbl_qualifier |
#define | XWDS_CANC_RXQNUM (XWCDCFG_ds_CAN_CONTROLLER_RXQNUM) |
#define | XWDS_CANC_SDU_MAXSIZE (XWCDCFG_ds_CAN_CONTROLLER_SDU_MAXSIZE) |
枚举 | |
enum | xwds_can_msgflag_em { XWDS_CAN_MSG_F_EXID = (1U) , XWDS_CAN_MSG_F_REMOTE = (2U) } |
CAN消息标志枚举 更多... | |
enum | xwds_canc_hwobj_type_em { XWDS_CANC_HWOBJ_T_ID_STD = ((xwbmp_t)1 << ( 0 )) , XWDS_CANC_HWOBJ_T_ID_EXT = ((xwbmp_t)1 << ( 1 )) , XWDS_CANC_HWOBJ_T_ID_MIXED = ((xwbmp_t)1 << ( 0 )) | ((xwbmp_t)1 << ( 1 )) } |
CAN对象(消息)类型 更多... | |
enum | xwds_canc_mode_em { XWDS_CANC_MODE_MIN = 0 , XWDS_CANC_MODE_UNINIT = XWDS_CANC_MODE_MIN , XWDS_CANC_MODE_STOPPED , XWDS_CANC_MODE_STARTED , XWDS_CANC_MODE_SLEEP , XWDS_CANC_MODE_NUM } |
CAN控制器的模式 更多... | |
enum | xwds_canc_err_em { CANC_ERR_NOERR = 0 , CANC_ERR_BUS , CANC_ERR_STUFF , CANC_ERR_FORM , CANC_ERR_ACK , CANC_ERR_CRC , CANC_ERR_B1 , CANC_ERR_B0 , CANC_ERR_ACKDELIMITER , CANC_ERR_PASSIVE , CANC_ERR_WARNING } |
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_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_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_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 | |
#define __xwds_canc_cbtbl_qualifier |
在文件 controller.h 第 46 行定义.
#define XWDS_CANC_RXQNUM (XWCDCFG_ds_CAN_CONTROLLER_RXQNUM) |
在文件 controller.h 第 49 行定义.
#define XWDS_CANC_SDU_MAXSIZE (XWCDCFG_ds_CAN_CONTROLLER_SDU_MAXSIZE) |
在文件 controller.h 第 50 行定义.
enum xwds_can_msgflag_em |
CAN消息标志枚举
枚举值 | |
---|---|
XWDS_CAN_MSG_F_EXID | 扩展ID,BIT(0) |
XWDS_CAN_MSG_F_REMOTE | 远程帧,BIT(1) |
在文件 controller.h 第 55 行定义.
enum xwds_canc_err_em |
CAN控制器的错误码
在文件 controller.h 第 154 行定义.
CAN对象(消息)类型
枚举值 | |
---|---|
XWDS_CANC_HWOBJ_T_ID_STD | 标准帧 |
XWDS_CANC_HWOBJ_T_ID_EXT | 扩展帧 |
XWDS_CANC_HWOBJ_T_ID_MIXED | 混合帧 |
在文件 controller.h 第 89 行定义.
enum xwds_canc_mode_em |
CAN控制器的模式
在文件 controller.h 第 130 行定义.
void xwds_canc_construct | ( | struct xwds_canc * | canc | ) |
XWDS API:CAN控制器的构造函数
[in] | canc | CAN控制器对象指针 |
在文件 controller.c 第 62 行定义.
void xwds_canc_destruct | ( | struct xwds_canc * | canc | ) |
XWDS API:CAN控制器对象的析构函数
[in] | canc | CAN控制器对象指针 |
在文件 controller.c 第 69 行定义.
XWDS API:关闭CAN控制器的中断
[in] | canc | CAN控制器对象指针 |
XWOK | 没有错误 |
-EFAULT | 无效指针 |
<No error
在文件 controller.c 第 257 行定义.
void xwds_canc_drvcb_busoff_indication | ( | struct xwds_canc * | canc | ) |
XWDS Driver Callback:指示CAN控制器发生busoff
[in] | canc | CAN控制器对象指针 |
此回调函数在中断上下文中被调用,用于通知BUSOFF。
在文件 controller.c 第 589 行定义.
void xwds_canc_drvcb_err_indication | ( | struct xwds_canc * | canc, |
xwsq_t | errcode, | ||
xwsq_t | tec, | ||
xwsq_t | rec | ||
) |
XWDS Driver Callback:指示CAN控制器发生错误
[in] | canc | CAN控制器对象指针 |
[in] | errcode | 错误码 |
[in] | tec | 发送错误计数 |
[in] | rec | 接收错误计数 |
此回调函数在中断上下文中被调用,用于通知错误。
在文件 controller.c 第 577 行定义.
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控制器的模式已经切换
[in] | canc | CAN控制器对象指针 |
[in] | mode | 当前模式 |
此回调函数在中断上下文中被调用,用于通知模式切换。
在文件 controller.c 第 566 行定义.
void xwds_canc_drvcb_rx_indication | ( | struct xwds_canc * | canc, |
xwid_t | rxobjid, | ||
struct xwds_can_msg * | rxmsg | ||
) |
XWDS Driver Callback:接收到CAN消息后的回调函数
[in] | canc | CAN控制器对象指针 |
[in] | rxobjid | 接收邮箱的ID |
[out] | rxmsg | 指向缓冲区的指针,通过此缓冲区返回接收到的CAN消息 |
此回调函数在中断上下文中调用,用于通知接收结果。
rxmsg
所指向的缓冲区的生命周期只在这个函数内有效。
在文件 controller.c 第 543 行定义.
XWDS Driver Callback:指示发送结果
[in] | canc | CAN控制器对象指针 |
[in] | txobjid | 发送邮箱的ID |
[in] | rc | 发送结果 |
此回调函数在中断上下文中被调用,用于通知接收结果。
在文件 controller.c 第 531 行定义.
void xwds_canc_drvcb_wakeup_notification | ( | struct xwds_canc * | canc | ) |
XWDS Driver Callback:CAN控制器的唤醒通知
[in] | canc | CAN控制器对象指针 |
此回调函数在中断上下文中被调用,用于通知唤醒。
在文件 controller.c 第 555 行定义.
XWDS API:开启CAN控制器的中断
[in] | canc | CAN控制器对象指针 |
XWOK | 没有错误 |
-EFAULT | 无效指针 |
<No error
在文件 controller.c 第 227 行定义.
XWDS API:增加对象的引用计数
[in] | canc | CAN控制器对象指针 |
在文件 controller.c 第 75 行定义.
XWDS API:减少对象的引用计数
[in] | canc | CAN控制器对象指针 |
在文件 controller.c 第 81 行定义.
xwer_t xwds_canc_rxq_acquire | ( | struct xwds_canc_rxqueue * | rxq, |
struct xwds_can_msg * | buf, | ||
xwtm_t | to | ||
) |
XWDS API:从接收缓冲队列中获取一条消息
[in] | rxq | 接收缓冲队列对象指针 |
[in] | buf | 获取CAN消息结构体的缓存指针 |
[in] | to | 期望唤醒的时间点 |
XWOK | 没有错误 |
-EFAULT | 无效指针 |
如果 to
是过去的时间点,将直接返回 -ETIMEDOUT
。
<No error
在文件 controller.c 第 400 行定义.
void xwds_canc_rxq_init | ( | struct xwds_canc_rxqueue * | rxq | ) |
XWDS API:初始化接收缓冲队列
[in] | rxq | 接收缓冲队列对象指针 |
在文件 controller.c 第 365 行定义.
void xwds_canc_rxq_publish | ( | struct xwds_canc_rxqueue * | rxq, |
struct xwds_can_msg * | msg | ||
) |
XWDS API:发布一条消息到接收缓冲队列中
[in] | rxq | 接收缓冲队列对象指针 |
[in] | msg | 待发布的CAN消息结构体指针 |
在文件 controller.c 第 375 行定义.
XWDS API:设置CAN控制器的波特率
[in] | canc | CAN控制器对象指针 |
[in] | id | 波特率的ID |
XWOK | 没有错误 |
-EFAULT | 无效指针 |
-ERANGE | 错误的波特率ID |
<No error
在文件 controller.c 第 327 行定义.
XWDS API:设置CAN控制器的模式
[in] | canc | CAN控制器对象指针 |
[in] | mode | 模式 |
OK | 模式切换完成 |
-EFAULT | 无效指针 |
-EALREADY | 控制器已经处于此模式 |
-ERANGE | 无效的模式 |
<No error
在文件 controller.c 第 287 行定义.
XWDS API:设置 BUSOFF通知 回调函数
[in] | canc | CAN总线消息结构体的指针 |
[in] | cb | 回调函数 |
在文件 controller.c 第 503 行定义.
void xwds_canc_setcb_err_indication | ( | struct xwds_canc * | canc, |
void(*)(struct xwds_canc *, xwsq_t, xwsq_t, xwsq_t) | cb | ||
) |
XWDS API:设置 错误通知 回调函数
[in] | canc | CAN总线消息结构体的指针 |
[in] | cb | 回调函数 |
在文件 controller.c 第 488 行定义.
void xwds_canc_setcb_mode_indication | ( | struct xwds_canc * | canc, |
void(*)(struct xwds_canc *, xwsq_t) | cb | ||
) |
XWDS API:设置 模式切换通知 回调函数
[in] | canc | CAN总线消息结构体的指针 |
[in] | cb | 回调函数 |
在文件 controller.c 第 474 行定义.
void xwds_canc_setcb_rx_indication | ( | struct xwds_canc * | canc, |
void(*)(struct xwds_canc *, xwid_t, struct xwds_can_msg *) | cb | ||
) |
XWDS API:设置 指示接收结果 的回调函数
[in] | canc | CAN总线消息结构体的指针 |
[in] | cb | 回调函数 |
在文件 controller.c 第 444 行定义.
void xwds_canc_setcb_tx_indication | ( | struct xwds_canc * | canc, |
void(*)(struct xwds_canc *, xwid_t, xwer_t) | cb | ||
) |
XWDS API:设置 指示发送结果 的回调函数
[in] | canc | CAN总线消息结构体的指针 |
[in] | cb | 回调函数 |
在文件 controller.c 第 429 行定义.
void xwds_canc_setcb_wakeup_notification | ( | struct xwds_canc * | canc, |
void(*)(struct xwds_canc *) | cb | ||
) |
XWDS API:设置 唤醒通知 回调函数
[in] | canc | CAN总线消息结构体的指针 |
[in] | cb | 回调函数 |
在文件 controller.c 第 460 行定义.
xwer_t xwds_canc_write | ( | struct xwds_canc * | canc, |
xwid_t | txobjid, | ||
struct xwds_can_msg * | msg | ||
) |
XWDS API:将一条CAN消息写入发送邮箱
[in] | canc | CAN控制器对象指针 |
[in] | txobjid | 发送邮箱的ID |
[in] | msg | CAN消息结构体的指针 |
XWOK | 没有错误 |
-EFAULT | 无效指针 |
-ERANGE | 找不到邮箱 |
-EBADSLT | 邮箱配置与消息类型不匹配 |
-ETIMEDOUT | 超时 |
<No error
在文件 controller.c 第 173 行定义.