搜索
bottom↓
回复: 28

请教一下嵌入式Linux下SRAM驱动的开发

[复制链接]

出25入84汤圆

发表于 2019-4-1 17:26:37 | 显示全部楼层 |阅读模式
现在要做一个项目FPGA和ARM-linux通讯。中间的缓存芯片是SRAM。通过这个SRAM,FPGA和ARM进行数据交互。
哪位坛友有这方面的开发经验或者思路呢?

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2019-4-1 17:29:26 | 显示全部楼层
FPGA 需要做个总线仲裁吧。

出25入84汤圆

 楼主| 发表于 2019-4-1 17:33:56 | 显示全部楼层
浮华一生 发表于 2019-4-1 17:29
FPGA 需要做个总线仲裁吧。

这个不是问题,fpga这边只要做好分时复用就行了。主要是arm这边不知道如何来挂载sram和驱动。

出0入0汤圆

发表于 2019-4-1 17:50:34 | 显示全部楼层
chun2495 发表于 2019-4-1 17:33
这个不是问题,fpga这边只要做好分时复用就行了。主要是arm这边不知道如何来挂载sram和驱动。 ...

这个就是属于协议层了吧。比如 Magic Number  让FPGA确定 ARM这边已经可以正常读写SRAM了之类得。

出25入84汤圆

 楼主| 发表于 2019-4-1 18:10:09 来自手机 | 显示全部楼层
浮华一生 发表于 2019-4-1 17:50
这个就是属于协议层了吧。比如 Magic Number  让FPGA确定 ARM这边已经可以正常读写SRAM了之类得。  ...

可能我表达的不清楚,其实可以描述成“linux下sram驱动的开发和应用”这个问题。

出0入0汤圆

发表于 2019-4-1 18:22:00 来自手机 | 显示全部楼层
chun2495 发表于 2019-4-1 18:10
可能我表达的不清楚,其实可以描述成“linux下sram驱动的开发和应用”这个问题。 ...

Sram属于arm硬件资源,有的话直接配置下寄存器,直接就可以用地址访问数据了,很简单。如果芯片不支持sram的话,怎么折腾也没用,io模拟不现实!

出0入0汤圆

发表于 2019-4-1 19:40:10 | 显示全部楼层
hongfadg 发表于 2019-4-1 18:22
Sram属于arm硬件资源,有的话直接配置下寄存器,直接就可以用地址访问数据了,很简单。如果芯片不支持sra ...

对得, 配置一下  就是访问地址得事情 C 一个指针搞定啊   哈哈

出25入84汤圆

 楼主| 发表于 2019-4-1 19:44:16 来自手机 | 显示全部楼层
hongfadg 发表于 2019-4-1 18:22
Sram属于arm硬件资源,有的话直接配置下寄存器,直接就可以用地址访问数据了,很简单。如果芯片不支持sra ...

不是用sram当Linux内存的,是用来做通讯数据的,也可以这样配置吗?

出0入0汤圆

发表于 2019-4-1 19:51:32 来自手机 | 显示全部楼层
SRAM是FPGA驱动的,FPGA实现双端口ram,arm通过FPGA写SRAM,如果缓存大小和数据流匹配,可以做成实时写入,否则加busy信号

出300入477汤圆

发表于 2019-4-1 19:55:08 来自手机 | 显示全部楼层
chun2495 发表于 2019-4-1 19:44
不是用sram当Linux内存的,是用来做通讯数据的,也可以这样配置吗?

sram没有驱动这一说啊。
它是挂在你的单片机的外部总线上吧?就表现为一块正常的sram吧?也就是除了你正常的系统主ram之外,这里还有一小块特殊的双口ram,它也是有地址的。
那么在应用程序里面直接用mmap把这一片地址映射过来就行了,然后它的表现就跟你程序里别的内存没区别,随便用个指针指过去读写就可以了。
为了跟fpga可以通迅,一般来说在fpga里面还得做几个寄存器,对吧。但是,在linux里面看来这几个控制寄存器的操作还是跟那一块ram没区别,无非是地址不同

出0入0汤圆

发表于 2019-4-1 20:09:36 | 显示全部楼层
两者之间应该弱耦合,避免大量数据在两这之间转移

出0入0汤圆

发表于 2019-4-1 20:39:22 来自手机 | 显示全部楼层
chun2495 发表于 2019-4-1 19:44
不是用sram当Linux内存的,是用来做通讯数据的,也可以这样配置吗?

Stm32  fsmc  lcd驱动  楼主研究下,这个研究明白了,你就全明白了!

出25入84汤圆

 楼主| 发表于 2019-4-1 21:46:15 来自手机 | 显示全部楼层
hongfadg 发表于 2019-4-1 20:39
Stm32  fsmc  lcd驱动  楼主研究下,这个研究明白了,你就全明白了!

这个裸机的搞过。就是Linux下的没弄过。网上也说是字符设备。当究竟怎样操作 还是一头雾水……

出25入84汤圆

 楼主| 发表于 2019-4-1 21:49:03 来自手机 | 显示全部楼层
redroof 发表于 2019-4-1 19:55
sram没有驱动这一说啊。
它是挂在你的单片机的外部总线上吧?就表现为一块正常的sram吧?也就是除了你正 ...

有没有这一块的例程?第一次玩这个有点无从下手。

出0入0汤圆

发表于 2019-4-1 22:06:26 | 显示全部楼层
楼主应该断了这个方式念头,sram要很多引脚,你没办法连接到你芯片。难道你与linux原来自带DDR存储共用地址数据吗?

出300入477汤圆

发表于 2019-4-1 22:14:03 来自手机 | 显示全部楼层
chun2495 发表于 2019-4-1 21:49
有没有这一块的例程?第一次玩这个有点无从下手。

在用户看来就是没有驱动。内存无需驱动。
如果非要说驱动,其实是由你cpu的外部总线控制器来驱动它。取决于你cpu的型号,或许你得正确的初始化总线控制器,按硬件设计师接的地址来初始化,比如设定用哪个片选,读写周期多少之类。不过一般来说你的bsp里面应该自带这些的。
这些做好后,它就是普通的物理内存而已,打开de/mem文件,用mmap映射一下就可以读写了

出300入477汤圆

发表于 2019-4-1 22:16:22 来自手机 | 显示全部楼层
NJ8888 发表于 2019-4-1 22:06
楼主应该断了这个方式念头,sram要很多引脚,你没办法连接到你芯片。难道你与linux原来自带DDR存储共用地址 ...

难道不是简单的挂在cpu的外总线上吗?有那么麻烦嘛。很多cpu的ddr内存接口是单独的,然后另有一个普通的外总线接口,随便你挂什么东西,比如外置网卡,外置usb控制器之类

出25入84汤圆

 楼主| 发表于 2019-4-2 18:28:19 来自手机 | 显示全部楼层
NJ8888 发表于 2019-4-1 22:06
楼主应该断了这个方式念头,sram要很多引脚,你没办法连接到你芯片。难道你与linux原来自带DDR存储共用地址 ...

那如果用iic或者spi来通讯的话,是否可以满足需求(大概一次200000byte数据)

出0入0汤圆

发表于 2019-4-2 18:46:33 | 显示全部楼层
chun2495 发表于 2019-4-2 18:28
那如果用iic或者spi来通讯的话,是否可以满足需求(大概一次200000byte数据) ...

spi快些,你一次需要多少时间传输完成?linux写spi访问如果用通常驱动方式,效率不高。要mmap写寄存器

出300入477汤圆

发表于 2019-4-2 18:59:35 来自手机 | 显示全部楼层
chun2495 发表于 2019-4-2 18:28
那如果用iic或者spi来通讯的话,是否可以满足需求(大概一次200000byte数据) ...

你先给岀你的arm的型号,看它有没有单独的外总线。用共享ram来跟fpga通迅当然是性能最好的,只是比较费引脚。。。。

出0入84汤圆

发表于 2019-4-2 19:20:59 来自手机 | 显示全部楼层
很多项目都是arm和fpga配合,当做sram来操作,这样速度和难度都还可以,当成sram并不是接到ddr2接口上,像ti fsl这些芯片都有专门的外部总线接口,复用下就可以了,还可以用zynq这样的一体芯片,非常方便,刚用zynq做了个8轴控制器的项目,比分开的方便太多了,通讯带宽也非常高。

出25入84汤圆

 楼主| 发表于 2019-4-2 22:10:58 来自手机 | 显示全部楼层
redroof 发表于 2019-4-2 18:59
你先给岀你的arm的型号,看它有没有单独的外总线。用共享ram来跟fpga通迅当然是性能最好的,只是比较费引 ...

itop-4412这块板子 三星的exynos4412

出25入84汤圆

 楼主| 发表于 2019-4-2 22:11:49 来自手机 | 显示全部楼层
NJ8888 发表于 2019-4-2 18:46
spi快些,你一次需要多少时间传输完成?linux写spi访问如果用通常驱动方式,效率不高。要mmap写寄存器 ...

实时图像 500*400 ,大概每秒10帧吧

出25入84汤圆

 楼主| 发表于 2019-4-2 22:13:59 来自手机 | 显示全部楼层
boyiee 发表于 2019-4-2 19:20
很多项目都是arm和fpga配合,当做sram来操作,这样速度和难度都还可以,当成sram并不是接到ddr2接口上,像t ...

我这个主要是跑界面,上安卓的,问过他们,说目前不能跑安卓。

出25入84汤圆

 楼主| 发表于 2019-4-2 22:17:44 来自手机 | 显示全部楼层
boyiee 发表于 2019-4-2 19:20
很多项目都是arm和fpga配合,当做sram来操作,这样速度和难度都还可以,当成sram并不是接到ddr2接口上,像t ...

难道不是fpga—sram—linux这种硬件结构吗?

出25入84汤圆

 楼主| 发表于 2019-8-12 08:38:01 | 显示全部楼层
pbwy123123 发表于 2019-7-29 17:19
楼主这其实是FPGA驱动,数据流是SRAM->FPGA->ARM LINUX, FPGA是挂在arm的总线接口的,需要初始化总线接口及 ...

是这个思路,现在项目选用IMX6Q+FPGA方案。
IMX6Q通过EIM总线进行读写FPGA操作。
FPGA分析EIM时序,对SRAM进行读写,完成通讯。

出0入0汤圆

发表于 2019-8-12 08:47:17 | 显示全部楼层
chun2495 发表于 2019-8-12 08:38
是这个思路,现在项目选用IMX6Q+FPGA方案。
IMX6Q通过EIM总线进行读写FPGA操作。
FPGA分析EIM时序,对SRA ...

你们还没做完啊

出25入84汤圆

 楼主| 发表于 2019-8-12 10:42:53 | 显示全部楼层

已经完了
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-25 15:52

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表