搜索
bottom↓
回复: 13

linux里用new申请大内存, 会在sdram里申请还是在片内申请?

[复制链接]

出0入0汤圆

发表于 2018-3-23 16:43:47 | 显示全部楼层 |阅读模式
本人刚开始学,用的是imx283, 发现周立功论坛支持太烂,所以进度超慢.
如题.  如果我想打开大文件, 把文件放到sdram里, 请问如何做, 如何访问sdram, 用new行吗?

谢谢

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

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2018-3-23 22:43:49 来自手机 | 显示全部楼层
虽然不熟悉Linux,但是一般这种都是操作系统管理的,也许你可以请求到很大的RAM,也许申请不到。还有可能是虚拟内存,放在缓存文件里

出0入0汤圆

发表于 2018-3-23 23:06:40 | 显示全部楼层
片内sram类似电脑cpu的一级缓存,应用程序不会直接访问的。关于申请内存,c语言用malloc,c++用new,申请的是sdram划分出的堆内存

出0入8汤圆

发表于 2018-3-24 21:04:11 | 显示全部楼层
片内sram在Linux内核开始后是不使用的,这个SRAM用于在uboot阶段加载程序用。
直接在程序里定义一个数组或者malloc的空间就是在SDRAM中了,用fread把文件数据读取到这段空间中即可。new array也可以

出0入0汤圆

 楼主| 发表于 2018-3-25 14:02:42 | 显示全部楼层
谢谢各位, 有空我试一下, 看看申请的地址是不是在sdram的地址内就知道. 另外问一下有谁知道linxu里面sdram的标准的调用函数吗?

出0入0汤圆

发表于 2018-3-25 14:26:21 来自手机 | 显示全部楼层
肯定sram啊片内内存一般比较小,

出0入0汤圆

发表于 2018-3-25 14:27:12 来自手机 | 显示全部楼层
hongfadg 发表于 2018-3-25 14:26
肯定sram啊片内内存一般比较小,

不好意思,修正一下   是sdram

出0入8汤圆

发表于 2018-3-25 21:29:54 | 显示全部楼层
leonliu_1128 发表于 2018-3-25 14:02
谢谢各位, 有空我试一下, 看看申请的地址是不是在sdram的地址内就知道. 另外问一下有谁知道linxu里面sdram ...

Linux中有mmu地址映射,在程序空间内看到的地址都是映射之后的,不是实际的总线空间地址

出0入0汤圆

 楼主| 发表于 2018-3-25 22:41:14 | 显示全部楼层
感觉有问题, imx283板子上是128MB的sdram. 我在qt里面写的小程序, 用new申请3M数组,返回首地址是0x4111 6008. 283手册sdram首地址是0x4000 0000- 内核首地址, 因此返回的地址是sdram首地址后面17M开始的位置, 应该说明申请的是片外的sdram.
如果我申请4M数组, 结果我写的小程序不能打印输出, 这是为什么? 毕竟还有很多空间没有用.

出0入0汤圆

发表于 2018-3-26 15:34:29 | 显示全部楼层
谢谢!学习到了

出0入0汤圆

发表于 2018-3-27 15:37:49 | 显示全部楼层
leonliu_1128 发表于 2018-3-25 22:41
感觉有问题, imx283板子上是128MB的sdram. 我在qt里面写的小程序, 用new申请3M数组,返回首地址是0x4111 600 ...

new出来的是虚地址,和CPU手册里的SDRAM地址的关系是通过MMU映射的,8楼解释过了,
至于new申请内存,一般是不会申请不到的,看看程序有没有其他问题。极端情况你这板子上全是内存碎片,最大的块已经不到4M了,这种可能性理论上存在,可能性极小。

出0入0汤圆

发表于 2018-3-28 16:46:32 | 显示全部楼层
我也有楼主这样的疑问。在移植linux到STM32F429的过程中看到429内部有256KB的零等待SRAM(其中还包括64KB的CCM RAM),很想把它加到linux内存池里,但是一直也没找到方法。

出0入0汤圆

发表于 2018-3-28 17:08:11 来自手机 | 显示全部楼层
leonliu_1128 发表于 2018-3-25 22:41
感觉有问题, imx283板子上是128MB的sdram. 我在qt里面写的小程序, 用new申请3M数组,返回首地址是0x4111 600 ...

这是虚拟地址。并不是实际地址,不代表任何情况。

出0入0汤圆

发表于 2018-3-28 18:31:24 | 显示全部楼层
应用层做应用层的事 别想那么多

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

本版积分规则

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

GMT+8, 2024-3-29 23:12

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

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