社区
驱动开发/核心开发
帖子详情
linux的spidev驱动添加dma功能
Leo_Walker
2017-05-24 04:25:21
用的飞思卡尔的imx6芯片,spi直接用的linux自带的spidev驱动,驱动一款加密芯片,功能已经实现,但是性能不够远远不够,想添加dma功能,有做过的麻烦指点一下。
...全文
2439
5
打赏
收藏
linux的spidev驱动添加dma功能
用的飞思卡尔的imx6芯片,spi直接用的linux自带的spidev驱动,驱动一款加密芯片,功能已经实现,但是性能不够远远不够,想添加dma功能,有做过的麻烦指点一下。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Leo_Walker
2017-05-25
打赏
举报
回复
spi驱动用的是linux自带的spidev,要实现的功能描述如下: 1.主机发送 包头+明文 到从机。 2.从机(加密芯片mcu)在轮询读数据,直到接收到包头,将包头后面的有效数据处理 3.从机发送 包头+已处理数据 给主机,目前主机的处理也是在发送完数据后就轮询读返回的包头,截取包头后面的有效数据。 现在功能已经实现了,但是速度比预期低了非常多(与RTOS做的相比)。可能的原因我分析如下: 1.因为协议的处理是在应用层处理的,在没有接收到完整的包头的情况下都是一个字节读的,导致每次都要进行一次应用态到内核态的切换(时间消耗) 2.linux内核的spi子系统的机制导致速度与真实时操作系统相比有差距。
Leo_Walker
2017-05-25
打赏
举报
回复
目前的时钟频率给到了20M,原先用rtos做的spi驱动同样的一款加密芯片,16字节的包做个对称算法速度大概是在1.6Mbps,现在通过linux做只有0.12Mbps,差的有点多,除了开启DMA还有什么比较好的方式提高SPI的性能
of123
2017-05-25
打赏
举报
回复
如果是“远远不够”的话,加 DMA 也无济于事。因为,在片内移动数据的速度,要比 SPI 传输快几个数量级。大头在 SPI 传输上。
fly 100%
2017-05-25
打赏
举报
回复
开启系统的dma ,在menuconfig 中看spi是否有dma的选项出来,如果没有就要自己写、
jklinux
2017-05-24
打赏
举报
回复
spi设备的工作时钟频率多高? spi设备传输数据耗时久的话,加dma应也没效果的
LINUX
单片机下的USB IIC
SPI
SD相关程序
驱动
LINUX
单片机下的USB IIC
SPI
SD相关程序
驱动
资料
spi
.zip_david_
linux
spi
Linux
SPI
init/core code Copyright (C) 2005 David Brownell
Linux
spi
源码.zip
Linux
spi
源码.zip
【应用笔记】
SPI
在嵌入式
Linux
下的应用.zip
开发基于嵌入式
Linux
系统的主板时,使用到
SPI
设备的一些经验
Linux
_3.x内核下ARM架构
Linux
3.x内核下ARM架构 新技术变革
驱动开发/核心开发
21,619
社区成员
21,710
社区内容
发帖
与我相关
我的任务
驱动开发/核心开发
硬件/嵌入开发 驱动开发/核心开发
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章