完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
中断产生信号量
void IQR_DRDY(void *args) { rt_sem_release(rx_sem); //产生信号量(释放信号量) } 线程获取信号量 while(1){ if(rt_sem_take(rx_sem, RT_WAItiNG_FOREVER)==RT_EOK){ ... } } 但是这种方法的传输速率最大只有1.2M/s左右,但我需要的传输速率最高要到达1.6M/s左右,有优化方法吗,或者采用其它方法 |
|
相关推荐
4个回答
|
|
你确信mq是信号量吗?
需要获取的数据 SPI时钟多少,用了DMA没有?这样可以算出最大理论带宽。 当中断到处理的延迟是多少?每次处理的耗时是多少? 再根据实际速度算出利用率,最好用逻辑分析仪看下,有具体数据才能分析改进。 优化方向 提高SPI频率,使用DMA降低传输间隔。 提高单次传递长度 提高中断响应速度 |
|
|
|
贴错了,mq是消息队列,不过信号量也是用一样的处理
spi时钟是8M/s,没有用dma。 中断处理用的是外部中断,应该够快。 主要是我在中断这里产生的信号量,切到线程处理的时间我不清楚,前端的采样率是2Ksps/s,也就是说有0.5ms的间隔给我工作,但我用线程+信号量的方法只能正常的处理1ksps/s的采样率 |
|
|
|
spi时钟是8M/s,没有用dma。
SPI时钟8Mhz?这样理论最大带宽也才1MB/s啊, 不用DMA的话,每个字节之间还有间隔,根本达不到你说的1.2M/s左右,能有个几百KB就不错了,除非是64Mhz=8MB。 前端的采样率是2Ksps/s 每秒2K次中断还是相对容易实现的,先测出所有要的数据,再整体分析改进下吧。 |
|
|
|
因为我一个总线上挂载着四块芯片,所以理论上应该乘以4倍,即为4m/s
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
AI模型部署边缘设备的奇妙之旅:边缘端设备的局域网视频流传输方案
1525 浏览 0 评论
1447 浏览 0 评论
AI模型部署边缘设备的奇妙之旅:如何在边缘端部署OpenCV
6685 浏览 0 评论
tms320280021 adc采样波形,为什么adc采样频率上来波形就不好了?
1846 浏览 0 评论
3150 浏览 0 评论
77476 浏览 21 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-16 02:09 , Processed in 0.631587 second(s), Total 75, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (威廉希尔官方网站 图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号