打印
[STM32MP1]

linux效率

[复制链接]
1479|24
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Linux效率非常低
   本人近日使用MP135的SPI外扩一篇AD7606,MP135使用Linux系统,计划采集AD数据后进行一些波形显示。 方案中根据iio:device 使用ADC的循环连续模式。
  但是问题是:一次转换后读取数据需要多达95us,这个时间没有包含ADC转换时间。  然而一片F429跑FreeRTOS转换后读取数据只要12.3us , 这样Linux系统下,AD的性能完全使用不出来。  导致方案失败。是不是有别的可以解决的方案?

8D800F7D264BEC5060BD95337BE21B3B.png (142.31 KB )

8D800F7D264BEC5060BD95337BE21B3B.png

0231E8582362E4F058B523B744D4FA29.png (224.46 KB )

0231E8582362E4F058B523B744D4FA29.png

使用特权

评论回复
沙发
laocuo1142| | 2024-7-29 21:28 | 只看该作者
可能是硬件资源不足,升级CPU或增加CPU核心数,以提高处理能力。

使用特权

评论回复
板凳
flycamelaaa| | 2024-7-29 21:28 | 只看该作者
优化内存使用,减少内存泄漏和内存碎片。

使用特权

评论回复
地板
powerantone| | 2024-7-29 21:28 | 只看该作者
升级硬盘为SSD(固态硬盘),提高读写速度。

使用特权

评论回复
5
stormwind123| | 2024-7-29 21:29 | 只看该作者
系统配置不当

使用特权

评论回复
6
probedog| | 2024-7-29 21:29 | 只看该作者
进程和线程管理不当

使用特权

评论回复
7
classroom| | 2024-7-29 21:30 | 只看该作者
调整网卡缓冲区大小,提高网络吞吐量和响应速度。
使用高性能的网卡和交换机设备。
配置网络QoS策略,合理分配带宽资源。

使用特权

评论回复
8
两只袜子| | 2024-7-29 21:30 | 只看该作者
优化网络传输协议和策略,减少数据传输延迟和丢包。

使用特权

评论回复
9
jcky001| | 2024-7-29 21:31 | 只看该作者
可能是命令或应用程序本身问题

使用特权

评论回复
10
cr315| | 2024-7-29 21:31 | 只看该作者
优化应用程序的代码和逻辑,提高执行效率。

使用特权

评论回复
11
elephant00| | 2024-7-29 21:31 | 只看该作者
根据系统监控结果定期进行系统调优。
清理不必要的文件和日志,释放系统资源。

使用特权

评论回复
12
申小林一号| | 2024-7-29 22:35 | 只看该作者
感谢分享

使用特权

评论回复
13
fubeining|  楼主 | 2024-7-30 08:14 | 只看该作者
ADC-BUSY脚在转换完成后,向内核发出中断,内核收到中断后发起读数据,Linux从收到中断到执行中断,差不多40us,跟踪linux硬件驱动程序,在收到BUSY脚中断后,先判断一些状态,比如buffer是否启动等,然后再次发出一个虚拟中断,应该时触发buffer的操作,然后在第二次中断中才读数据,为了统一接口,浪费了大量时间。

使用特权

评论回复
14
fubeining|  楼主 | 2024-7-30 08:17 | 只看该作者
laocuo1142 发表于 2024-7-29 21:28
可能是硬件资源不足,升级CPU或增加CPU核心数,以提高处理能力。

现在GPU频率是1G,在嵌入式系统里已经是很高性能了。linux响应中断的效率比较低,延时很大,可能不适用于周期性高频中断应用中。

使用特权

评论回复
15
zchong| | 2024-7-30 08:28 | 只看该作者
找到原因就可以想办法优化了,包括优化驱动中的中断处理流程。

使用特权

评论回复
16
fubeining|  楼主 | 2024-7-30 08:45 | 只看该作者
zchong 发表于 2024-7-30 08:28
找到原因就可以想办法优化了,包括优化驱动中的中断处理流程。

暂时还没这个能力,Linux对于ADC有统一的iio规范,如果能直接操作SPI,可能效率就高了。

使用特权

评论回复
17
xionghaoyun| | 2024-7-30 10:12 | 只看该作者
MP135本身性能跑不动Linux...

使用特权

评论回复
18
icecut| | 2024-7-30 10:56 | 只看该作者
fubeining 发表于 2024-7-30 08:14
ADC-BUSY脚在转换完成后,向内核发出中断,内核收到中断后发起读数据,Linux从收到中断到执行中断,差不多4 ...

adc 没必要用中断的后半部. 直接读取了 spi 可以快一些.
还有一个 linux 不应该中断太多. 看能不能用 dma 来处理, 然后中断处理一批数据.

使用特权

评论回复
19
zhangjsh| | 2024-7-30 11:46 | 只看该作者
请问:跑linux需要的最小内存是多少?

使用特权

评论回复
20
fubeining|  楼主 | 2024-7-30 17:01 | 只看该作者
icecut 发表于 2024-7-30 10:56
adc 没必要用中断的后半部. 直接读取了 spi 可以快一些.
还有一个 linux 不应该中断太多. 看能不能用 dm ...

这个是按照iio:device来的   驱动程序应该是ADI写的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

66

帖子

0

粉丝