我用了AT Client组件和EC20包,启动后一段时间工作是正常的,我的操作方式是从设备发送数据前打开socket,发送和接收完就关闭socket,但是正常工作一段时间以后,不一定是多长时间,socket打开就不正常了,然后就会多出几个at_skt0,at_skt1等等的信号量,有的时候我的线程还会挂起在这些信号量上,我在工程里搜也没有搜到相关的定义和内容,请问这些信号量是什么情况下产生的?怎么产生的?我想看看为什么过段时间我的socket就打不开了,多谢。。。。
查看更多
这个信号量直接搜不到的原因是临时拼接成的
rt_snprintf(name, RT_NAME_MAX, "%s%d", "at_skt", idx);
信号量的创建在 components/net/at/at_socket/at_socket.c 中的 alloc_socket_by_device 函数;而信号量的释放 是在 at_recv_notice_cb 函数。
我运行正常的时候是没有这些信号量的
欢迎发表与嵌入式相关的技术分享、开发技巧、工具介绍、技术设想、职业心得、行业评论等对他人有启发,排版优雅的文章
回到 顶部
发布 问题
分享 好友
手机 浏览
投诉 建议
回到 底部
非常感谢,我看一下