社区
驱动开发/核心开发
帖子详情
linux的spidev驱动添加dma功能
Leo_Walker
2017-05-24 04:25:21
用的飞思卡尔的imx6芯片,spi直接用的linux自带的spidev驱动,驱动一款加密芯片,功能已经实现,但是性能不够远远不够,想添加dma功能,有做过的麻烦指点一下。
...全文
2071
5
打赏
收藏
linux的spidev驱动添加dma功能
用的飞思卡尔的imx6芯片,spi直接用的linux自带的spidev驱动,驱动一款加密芯片,功能已经实现,但是性能不够远远不够,想添加dma功能,有做过的麻烦指点一下。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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应也没效果的
CRC与ADC与
DMA
与随机数发生器-第5季第5部分
《朱有鹏老师单片机完全学习系列课程》针对有志于物联网技术开发行业的零基础学员设计,共分6季,总200余小时的课程。本课程属于第5季。本季课程主要讲解STM32的全新开发方式:使用STM32CubeMX工具做图形化配置,自动生成初始化代码;
添加
各种中间件;使用HAL库和LL库来操作外设。结合朱老师物联网大讲堂专为nbiot物联网开发而设计的NB476开发板,本季课程能够让大家彻底掌握物联网时代以nbiot和低功耗STM32L4单片机为代表的典型开发模式,实战意义非常重要。课程特色*完全零基础,降低学习门槛。*深入浅出,通俗易懂。不怕学不会,就怕你不学习。*思路清晰、语言风趣,对着视频看也不会想睡觉······*视频 + 文档 + 练习题 + 答疑,全方位保证学习质量。*基础知识 + 思路引导的教学方式,授之以鱼更授之以渔。
linux
spi
驱动
分析
昇腾310
spi
驱动
详解准备设备树节点和
驱动
的匹配
spi
控制器
驱动
详解 准备 使用的源码包为华为官方的ascend200AI加速模块的SDK,其下载地址位于:点击跳转 使用的固件与
驱动
版本为:1.0.9.alpha 压缩包名称为:A200-3000-sdk_20.2.0.zip 将A200-3000-sdk_20.2.0.zip解压后可以看到Ascend310-source-minirc.tar.gz压缩包,这个压缩包里有ascend200AI加速模块的
linux
内核源码包、设备树及
驱动
文件等。 设备树节
Linux
SPI
驱动
(
Linux
驱动
开发篇)
1.
linux
SPI
驱动
由于裸机的
驱动
迎合
驱动
的分离和分层的思想,分为
SPI
主机
驱动
(接口
驱动
)和
SPI
设备
驱动
. 这种思想的好处,请看我写的另外一篇文章
Linux
驱动
的分离和分层。 其中上面说的裸机
驱动
请看这篇文章裸机
SPI
驱动
但是裸机的
驱动
是没有加入操作系统的 本文也是遵循
Linux
驱动
的分离和分层的思想,因此
linux
内核把
SPI
驱动
分为两个部分
SPI
总线
驱动
和
SPI
设备
驱动
总线
驱动
:SOC的
SPI
控制器
驱动
,也叫做
SPI
适配器
驱动
设备
驱动
:
SPI
设备
驱动
就是针对具体的S
linux
下
spi
添加
设备,
Linux
Kernl
添加
spi
dev
的设备节点
一、
spi
dev
介绍如果在内核中配置
spi
dev
,会在/
dev
目录下产生设备节点,通过此节点可以操作挂载在该
SPI
总线上的设备。用户空间通过该节点可以访问内核空间。二、配置
spi
dev
设备步骤在i.MX6,Kernel 4.1.15上配置
spi
dev
的支持。1、配置dts支持
spi
根据
spi
的连接原理图配置对应的imx6qp-xxx.dts,如:&ec
spi
1 {compatible = ...
Linux
下的
DMA
学习
最近在忙一个竖屏转横屏项目,使用的是
spi
接口的竖屏(cpu不带dpu,横屏lcd比竖屏lcd成本高),使用的方案就是利用
dma
的特性,将横屏的数据进行一定规则的搬运(设置
dma
的搬运规则,从左下角搬运第一列作为第一行,搬完所有的列)转换成竖屏的数据,然后发送到lcd。 常见的通信接口i2c,
spi
,i2s有fifo,
dma
两种通信方式。fifo每次传输的数据量不大,
dma
能进行大...
驱动开发/核心开发
21,597
社区成员
21,709
社区内容
发帖
与我相关
我的任务
驱动开发/核心开发
硬件/嵌入开发 驱动开发/核心开发
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章