接口设计
driver 层接口设计
函数原型 | static rt_err_t aic_can_control(struct rt_can_device *can, int cmd, void *arg) |
---|---|
功能说明 | CAN 模块 control 接口,用于设置波特率,获取状态等 |
参数定义 | can: 指向 device 设备的指针 cmd: CAN 命令 arg: 命令参数 |
返回值 | RT_EOK:执行成功 |
注意事项 | - |
函数原型 | static int aic_can_send(struct rt_can_device *can, const void *buf, rt_uint32_t boxno) |
---|---|
功能说明 | CAN 发送接口 |
参数定义 | can: 指向 device 设备的指针 buf: 指向要发送的 message 的指针 boxno: 发送的邮箱号 |
返回值 | 0:执行成功 |
注意事项 | - |
函数原型 | static int aic_can_recv(struct rt_can_device *can, void *buf, rt_uint32_t boxno) |
---|---|
功能说明 | CAN 接收接口 |
参数定义 | can: 指向 device 设备的指针 buf: 指向存储接收的 message 的指针 boxno: 接收的邮箱号 |
返回值 | 0:执行成功 |
注意事项 | - |
hal 层接口设计
函数原型 | int hal_can_init(can_handle *phandle, uint32_t can_idx); |
---|---|
功能说明 | CAN 模块初始化 |
参数定义 | phandle: 指向 handle 结构体的指针 can_idx: 需要初始化的 CAN 模块索引号 |
返回值 | 0:执行成功-EINVAL:执行失败 |
注意事项 | - |
函数原型 | void hal_can_uninit(can_handle *phandle); |
---|---|
功能说明 | CAN 模块去初始化 |
参数定义 | phandle: 指向 handle 结构体的指针 |
返回值 | 无 |
注意事项 | - |
函数原型 | void hal_can_tx_frame(can_handle *phandle, can_msg_t * msg, can_op_req_t req); |
---|---|
功能说明 | CAN 模块去初始化 |
参数定义 | phandle: 指向 handle 结构体的指针 msg: 指向要发送的 message 的指针 req: 发送请求,用于指示是正常发送/自发自收/终止发送 |
返回值 | 无 |
注意事项 | - |
函数原型 | int hal_can_ioctl(can_handle *phandle, int cmd, void *arg); |
---|---|
功能说明 | CAN 模块去初始化 |
参数定义 | phandle: 指向 handle 结构体的指针 cmd: CAN 命令 arg: 命令参数 |
返回值 | 无 |
注意事项 | - |