当前位置:  技术问答>linux和unix

Linux内核中怎样给DMA分配没有进行Cache映射的内存?

    来源: 互联网  发布时间:2015-11-23

    本文导语:  我使用的uClinux系统 我的系统有1MB的SDRAM没有进行Cache映射。 为了避免Cache 一致性问题,我需要在这1MB的SDRAM里为DMA分配内存。 GFP_DMA方式调用kmalloc只是分配的低16MB,但是在嵌入式系统里没有这个限制。所以用GFP_DMA也...

我使用的uClinux系统
我的系统有1MB的SDRAM没有进行Cache映射。
为了避免Cache 一致性问题,我需要在这1MB的SDRAM里为DMA分配内存。
GFP_DMA方式调用kmalloc只是分配的低16MB,但是在嵌入式系统里没有这个限制。所以用GFP_DMA也没意义。
使用dma_alloc_consistent 或 dma_map_single吗?这两种DMA映射具体是什么原理?

请问linux内核通用的解决方法是怎样的?

|
UCLINUX中应该没有虚拟地址与物理地址的概念,对于DMA来说与普通内存区没什么分别吧??
唯一需要注意的就是开关CACHE的问题了,不晓得对于没有MMU的芯片来说也有CACHE这个东东吗??
如果又有CACHE的话,可能需要显示地操作协处理器来关掉一定内存地址段的CACHE功能,在有MMU的ARM中这是支持的,也就是在内核kmalloc函数中加入自定义的一个参数,这个参数的作用就是开关一定内存段的CACHE,也就是说需要修改kmalloc函数实现,或者是以模块方式另外加入一个专用函数,这个函数需要调用内核中的获取空闲页的那个函数,也就是说写一个类似于kmalloc的函数,不过这个函数的功能单一,就是获取空闲内存,然后操作协处理器去开关CACHE

以上的方法都比较笨,是在实在无法可施的情况下才用,我对UCLINUX一点都不熟悉,所以不能给出好的解决办法,希望熟悉UCLINUX的人给出一个好办法

    
 
 

您可能感兴趣的文章:

  • Linux内存映射 物理地址映射到虚拟地址
  • LINUX如何映射另一台LINUX的共享目录?
  • 在linux下能实现多端口映射吗?
  • linux 映射问题
  • 路由方式ADSL下,linux的ftp如何做端口映射?
  • linux 键盘映射的问题!!!
  • 如何取消Linux中的文件映射
  • 在linux下怎样关闭端口映射
  • 跪求Linux下双网卡做端口映射详细操作方法
  • 怎样在TURBO LINUX下实现静态端口映射
  • 有谁在 Linux 下用 UPnP 做端口映射成功了吗?
  • 莫名其妙,linux服务器端口映射不出去
  • windows 下的PortTunnel 在linux下怎么实现?或者相应的已经实现的软件?端口映射
  • 网段不同,windows可以映射linux的共享文件夹么?在线等,急!
  • 哪位大哥对“arm-linux的页表映射”比较熟悉啊?
  • 怎么样实现由Linux服务器映射访问发布Websphere的win服务器!
  • 关于linux应用程序中文件映射的问题
  • linux的内核能够直接映射的最大RAM容量?
  • 哪位大哥对“arm-linux的页表映射”比较熟悉啊?
  • linux下设置映射网络驱动
  • Linux内核中影响tcp三次握手的一些协议配置
  • 我想学习linux桌面编程,那么有没有必要学习linux的内核以及内核的相关编程呢?
  • TCP协议四次断连过程介绍及Linux内核协议栈中相关设置项
  • 现有linux内核中共享内存机制如何移植到linux0.11内核中
  • Linux进程的内核栈和用户栈概念,相互关系及切换过程
  • 读懂 Linux 内核代码不难,难的是读懂 Linux 内核代码背后的哲学!
  • linux内核中的likely宏和unlikely宏介绍及用法
  • Linux中内核线程不访问内核态地址空间?
  • Linux下c/c++开发之程序崩溃(Segment fault)时内核转储文件(core dump)生成设置方法
  • linux为什么要升级内核?升级内核有何作用?
  • 请问linux中如何判断内核是否已经启动。(在内核中写程序)
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • linux内核分配内存,及管理?
  • 问个LINUX内存分配的问题。
  • linux c 多线程问题任务分配问题
  • Linux 如何获得分配内存的起始地址
  • linux下具体分配组的访问目录
  • 请教Linux内存分配策略与Windows有何异同?
  • Linux下服务器端的线程分配
  • 偶托管了一管台linux主机,想分配一个用户出来自已用,请问该怎么做?
  • 我在linux下用GPRS拨号上网,拨号分配到的IP是10.98.*.*时为何访问不了公网呢?
  • 关于Linux内存分配函数的几点问题
  • 请问如何在linux下设置为动态地址分配
  • 如何重新分配linux分区
  • Linux Kernel module下如何动态分配内存
  • 请教一个Linux内存分配的问题
  • linux服务器被电信重新分配了IP,结果proftp不能启动了。
  • 嵌入式linux的应用程序分配内存地址问题
  • 关于Linux系统对进程号的分配问题
  • linux权限的分配问题
  • linux下c++对长度不定的字符串要进行预先动态分配内存需要怎么做?
  • linux的usb驱动在分配设备节点时是如何做的?
  • linux c/c++ IP字符串转换成可比较大小的数字
  • 在win分区上安装linux和独立分区安装linux有什么区别?可以同时安装吗?(两个linux系统)
  • linux哪个版本好?linux操作系统版本详细介绍及选择方案推荐
  • 在虚拟机上安装的linux上,能像真的linux系统一样开发linux程序么?
  • secureCRT下Linux终端汉字乱码解决方法
  • 我重装window后,把linux的引导区覆盖了,进不了linux怎么办?急啊,望热心的人帮助 (现在有linux的盘)
  • Linux c字符串中不可打印字符转换成16进制
  • 安装vmware软件,不用再安装linux系统,就可以模拟linux系统了,然后可以在其上学习一下LINUX下的基本操作 了?
  • Linux常用命令介绍:更改所属用户群组或档案属性
  • 红旗Linux主机可以通过127.0.0.1访问,但如何是连网的Win2000机器通过Linux的IP去访问Linux
  • linux命令大全详细分类介绍及常用linux命令文档手册下载


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3