|
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 行定义.
