完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
在调试程序时发现,CAN和serial线程里面都调用rt_device_write函数会导致rt_device_write函数卡死。CAN是用中断接收和发送,serialDMA接收,轮询发送。会不会就是两个线程之间会有影响呢,导致rt_device_write堵死呢?程序本身不会死掉,运行灯还一直运行,但是serial和can会死掉
|
|
相关推荐
1个回答
|
|
rt_device_write的函数很简单的,断言,判断ref_count, 调用dev->write函数。代码如下所示:
serial和can死掉,那就是这两个外设的写操作死掉了,建议再深入去查一下原因,更加准确说明现象、提供详细的log等。在drv_usart.h/drv_can.c中具体的写操作函数中找原因。 rt_size_t rt_device_write(rt_device_t dev, rt_off_t pos, const void *buffer, rt_size_t size) { RT_ASSERT(dev != RT_NULL); RT_ASSERT(rt_object_get_type(&dev->parent) == RT_Object_Class_Device); if (dev->ref_count == 0) { rt_set_errno(-RT_ERROR); return 0; } /* call device_write interface */ if (device_write != RT_NULL) { return device_write(dev, pos, buffer, size); } /* set error code */ rt_set_errno(-RT_ENOSYS); return 0; } |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1002 浏览 0 评论
IaaS+on+DPU(IoD)+下一代高性能算力底座技术白皮书
1969 浏览 0 评论
飞凌嵌入式-ELFBOARD 常用的USB接口及其不同版本介绍第1期
1071 浏览 0 评论
【Vision Board创客营连载体验】RA8D1-Vision Board上OSPI-Flash实践
1527 浏览 0 评论
I.MX6ULL-飞凌 ElfBoard ELF1板卡- 应用层更改引脚复用的方法
3751 浏览 0 评论
65072 浏览 21 评论
嵌入式热门DIY项目:智能机器人开源资料合集(原理图、代码、论文)
67722 浏览 22 评论
57732 浏览 32 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-16 17:27 , Processed in 0.631097 second(s), Total 69, Slave 53 queries .
Powered by 电子发烧友网
© 2015 www.ws-dc.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号