[STM32MP1] linux效率

[复制链接]
2627|24
 楼主| fubeining 发表于 2024-7-29 16:48 | 显示全部楼层 |阅读模式
Linux效率非常低
   本人近日使用MP135的SPI外扩一篇AD7606,MP135使用Linux系统,计划采集AD数据后进行一些波形显示。 方案中根据iio:device 使用ADC的循环连续模式。
  但是问题是:一次转换后读取数据需要多达95us,这个时间没有包含ADC转换时间。  然而一片F429跑FreeRTOS转换后读取数据只要12.3us , 这样Linux系统下,AD的性能完全使用不出来。  导致方案失败。是不是有别的可以解决的方案?
8D800F7D264BEC5060BD95337BE21B3B.png
0231E8582362E4F058B523B744D4FA29.png
laocuo1142 发表于 2024-7-29 21:28 | 显示全部楼层
可能是硬件资源不足,升级CPU或增加CPU核心数,以提高处理能力。
flycamelaaa 发表于 2024-7-29 21:28 | 显示全部楼层
优化内存使用,减少内存泄漏和内存碎片。
powerantone 发表于 2024-7-29 21:28 | 显示全部楼层
升级硬盘为SSD(固态硬盘),提高读写速度。
stormwind123 发表于 2024-7-29 21:29 | 显示全部楼层
系统配置不当
probedog 发表于 2024-7-29 21:29 | 显示全部楼层
进程和线程管理不当
classroom 发表于 2024-7-29 21:30 | 显示全部楼层
调整网卡缓冲区大小,提高网络吞吐量和响应速度。
使用高性能的网卡和交换机设备。
配置网络QoS策略,合理分配带宽资源。
两只袜子 发表于 2024-7-29 21:30 | 显示全部楼层
优化网络传输协议和策略,减少数据传输延迟和丢包。
jcky001 发表于 2024-7-29 21:31 | 显示全部楼层
可能是命令或应用程序本身问题
cr315 发表于 2024-7-29 21:31 | 显示全部楼层
优化应用程序的代码和逻辑,提高执行效率。
elephant00 发表于 2024-7-29 21:31 | 显示全部楼层
根据系统监控结果定期进行系统调优。
清理不必要的文件和日志,释放系统资源。
申小林一号 发表于 2024-7-29 22:35 | 显示全部楼层
感谢分享
 楼主| fubeining 发表于 2024-7-30 08:14 | 显示全部楼层
ADC-BUSY脚在转换完成后,向内核发出中断,内核收到中断后发起读数据,Linux从收到中断到执行中断,差不多40us,跟踪linux硬件驱动程序,在收到BUSY脚中断后,先判断一些状态,比如buffer是否启动等,然后再次发出一个虚拟中断,应该时触发buffer的操作,然后在第二次中断中才读数据,为了统一接口,浪费了大量时间。
 楼主| fubeining 发表于 2024-7-30 08:17 | 显示全部楼层
laocuo1142 发表于 2024-7-29 21:28
可能是硬件资源不足,升级CPU或增加CPU核心数,以提高处理能力。

现在GPU频率是1G,在嵌入式系统里已经是很高性能了。linux响应中断的效率比较低,延时很大,可能不适用于周期性高频中断应用中。
zchong 发表于 2024-7-30 08:28 | 显示全部楼层
找到原因就可以想办法优化了,包括优化驱动中的中断处理流程。
 楼主| fubeining 发表于 2024-7-30 08:45 | 显示全部楼层
zchong 发表于 2024-7-30 08:28
找到原因就可以想办法优化了,包括优化驱动中的中断处理流程。

暂时还没这个能力,Linux对于ADC有统一的iio规范,如果能直接操作SPI,可能效率就高了。
xionghaoyun 发表于 2024-7-30 10:12 | 显示全部楼层
MP135本身性能跑不动Linux...
icecut 发表于 2024-7-30 10:56 | 显示全部楼层
fubeining 发表于 2024-7-30 08:14
ADC-BUSY脚在转换完成后,向内核发出中断,内核收到中断后发起读数据,Linux从收到中断到执行中断,差不多4 ...

adc 没必要用中断的后半部. 直接读取了 spi 可以快一些.
还有一个 linux 不应该中断太多. 看能不能用 dma 来处理, 然后中断处理一批数据.
zhangjsh 发表于 2024-7-30 11:46 | 显示全部楼层
请问:跑linux需要的最小内存是多少?
 楼主| fubeining 发表于 2024-7-30 17:01 | 显示全部楼层
icecut 发表于 2024-7-30 10:56
adc 没必要用中断的后半部. 直接读取了 spi 可以快一些.
还有一个 linux 不应该中断太多. 看能不能用 dm ...

这个是按照iio:device来的   驱动程序应该是ADI写的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

66

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部