| Age | Commit message (Collapse) | Author |
|
Setting the send status flag `sndchange` after calling the can->ops->sendmsg function
could lead to a race condition if a transmission timeout occurs, resulting in incorrect state handling.
This patch moves the operation of setting the `sndchange` flag to before the call to can->ops->sendmsg.
This ensures that the mailbox's status is correctly marked as "sending" before the hardware begins transmission,
making the driver's state management more robust and reliable, especially in handling exceptions like timeouts.
Additionally, new macros for CAN filter modes have been added in dev_can.h.
|
|
functionality
- Added support for non-blocking mode CAN message sending, including software ring buffer management and dynamic memory allocation options.
- Improved related comments and error handling.
- Updated example code to demonstrate the usage of both blocking and non-blocking sending modes, and corrected some structure field naming and macro definitions.
|
|
修复CAN底层无法工作时导致调用 _can_int_tx 的线程一直挂起的问题
Solution: 使用 can->status.sndchange 的bit位来表示某个发送邮箱超时
如果超时 底层驱动再通知tx_done或者tx_fail事件时不予处理
Signed-off-by: Yucai Liu <[email protected]>
|
|
导致异常
|
|
|
|
修复RX可能导致的内存溢出情况
#8634
|
|
整理 components/drivers 的 Kconfig
|
|
原来的CAN close中先释放fifo后关闭CAN中断,可能导致释放fifo后且关闭CAN中断前来CAN中断,此时rt_hw_can_isr可能在RT_ASSERT(tx/rx_fifo != RT_NULL)断言失败
|
|
fix can warning
|
|
fix compile warning in 64 bits arch
|
|
|
|
|
|
rt_ssize_t can give negative error code, which follows the unix style correctly
|
|
* 修改ry命令,已便于自定义保存路径
* modified: components/utilities/ymodem/ry_sy.c
* 修复从被动错误恢复后发送返回异常
* 修复在自动重传模式下,ACK异常阻塞线程
- 删除TX中断函数else分支。仅当RQCP位 置一才进入该中断
- 添加SCE中断函数中关于ACK_ERR的else判断。自动重传模式下会进入该判断,打断自动重传释放完成量。
* 增加对于CAN1与CAN2的SCE中断和TX中断的公共处理函数
* formatting格式化代码
* update struct can_filter_item and rt_can_msg
1. 对过滤器号和索引号结构体定义中同一名称hdr进行重命名hdr_bank和hdr_index,
以便准确区分.采用宏定义兼容以前变量名.
2. 添加接收标识rxfifo,已指明是哪个RXFIFO.
* 更正42M下的波特率
* 修复接收获取索引号错误
* 添加接收标识
* 更新注释
* 取消CANFD限制
* update struct can_filter_item and rt_can_msg
|
|
- in _can_int_tx if can driver sendmsg do not return RT_EOK,
it will repeat until sendmsg return RT_EOK
- if error occur on can bus(wire broken or EMI), all threads that
have lower priority will not be executed
- we should let application layer to determine if resend is appropriate
when send fail, besides in data link layer, can already implemented
auto resend in hardware
|
|
* Add CANFD support and correct typos
- Added CANFD required fields to can.h
- Fixed typos in can.h and can.c
- Corrected all the projects affected by the typo
- Fixed wrong line-ending in some affected can driver files
Signed-off-by: Fan YANG <[email protected]>
* update
Signed-off-by: Fan YANG <[email protected]>
Co-authored-by: Meco Man <[email protected]>
|
|
|
|
|
|
Signed-off-by: Wayne Lin <[email protected]>
|
|
|
|
|
|
在RT_CAN_USING_HDR宏关闭的时候,接收数据大小的计算应该是:已使用链表数*sizeof(struct rt_can_msg)。
|
|
|
|
Reset rx tx handler when closing CAN device, Or it will not work after
reopening.
Change-Id: I43482c21263a989322f8df2ac9349128f7cb630a
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|