完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我用软件定时器想实现周期性发送udp报文 是不是socket不能在定时器中使用。。 谢谢 |
|
相关推荐
5个回答
|
|
你应该这么操作,在软件定时器中释放一个信号量,然后单独写一个线程来获取这个信号量,获取到之后发送数据。
|
|
|
|
|
|
|
|
出现你问题中的原因是:你在中断里面使用 socket 函数会调用 rt_malloc 申请空间,但是 rt_malloc 不应该出现在中断上下文中,因为这两个函数会操作锁,而 rtt 的中断上下文中不可以获取锁。所以提示了你问题中的话
[rt_mutex_take] shall not be used in ISR 另外 socket 创建一次就行了,每次定时器到时后直接释放信号量,然后另一个线程获取到信号量之后直接发送就行不用再次创建 socket |
|
|
|
不是的,是因为中断中不能使用锁,而 socket 函数会调用 rt_malloc 申请空间, rt_malloc 会获取锁就出错了。
|
|
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
683 浏览 0 评论
AI模型部署边缘设备的奇妙之旅:如何在边缘端部署OpenCV
2521 浏览 0 评论
tms320280021 adc采样波形,为什么adc采样频率上来波形就不好了?
1314 浏览 0 评论
1915 浏览 0 评论
1494 浏览 0 评论
74887 浏览 21 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-24 01:38 , Processed in 0.766636 second(s), Total 77, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号