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

arm linux驱动编写中,能否直接进行ioremap?

    来源: 互联网  发布时间:2016-06-20

    本文导语:  2440的板子。  我想为spi编写一个简单的字符型驱动。  看了下内核代码中的spi驱动代码,发现在把寄存器地址ioremap之前,有一些platform_get_resource,request_mem_region之类的操作。  想问下直接对寄存器进行ioremap,然后用wr...

2440的板子。 
我想为spi编写一个简单的字符型驱动。 
看了下内核代码中的spi驱动代码,发现在把寄存器地址ioremap之前,有一些platform_get_resource,request_mem_region之类的操作。 
想问下直接对寄存器进行ioremap,然后用writeb、writel之类的函数去操作可以吗?看到网上有很多代码是直接这么做的。会不会存在危险? 
高手指点下,谢谢!

|
标准的做法就是这样的,楼主担心什么危险,系统的寄存器地址是唯一的,而且跟进程的虚拟内存没有关系

|
platform_get_resource 是为了获取地址, 既然你已经知道地址了, 这个其实不是必须的。
request_mem_region 标记这段物理地址自己使用了,其他人不要使用而已,也不是必须的。

所以直接 ioremap 是没有任何问题的。

|
(ioremap)的作用是把一个物理内存地址点映射为一个内核指针,被映射数据的长度由size参数设定。该函数的实质是把一块物理区域二次映射到一个可以从驱动程序里访问的虚拟地址上去。

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间javax.swing类defaultbuttonmodel的类成员方法: armed定义及介绍
  • arm-elf-gcc 和 arm-linux-gcc有什么区别?arm-elf-gcc里的elf代表什么?
  • java命名空间javax.accessibility类accessiblestate的类成员方法: armed定义及介绍
  • 关于买ARM9或ARM11的开发板的问题~~~
  • arm-unknown-linux-gnu-gcc與arm-linux 的compiler有不同嗎
  • make ARCH=arm CROSS_COMPILE=arm-linu-错误
  • 请问哪有 arm-linux-nm, arm-linux-addr2line等等这些工具的使用说明~~~
  • 使用eclipse 加入arm-elf-gcc 或arm-linux-gcc 编译器为什么不好使
  • 现在是ARM9还是ARM11比较流行啊?我想买开发板什么牌子的比较好啊,我是大学生。
  • ARM ping不通虚拟机,虚拟机可以ping通ARM
  • 疑惑softfloat的问题,并求arm-linux-gcc和arm-linux-softfloat-gcc4.1.1
  • 新手请教 移植2.6内核到arm9,芯片:arm926ejs,Flash: NOR
  • 请教:make ARCH=arm CROSS_COMPILE=arm-linu- menuconfig出错
  • arm-linux-gcc 交叉编译poco-1.3.5-all 报错stlport_arm_linux_gcc库找不到
  • 关于arm 2440 选择arm-linux-gcc编译器版本的问题
  • 字节对齐 ARM VS Not ARM,经验人士请指点!!
  • ARM开发怎么实现域名解析呢,ARM板能ping通IP,不能ping通域名?
  • 关于ARM的几个基本概念
  • arm linux 2.6.29 下载初级问题,大家指教
  • 关于ARM内核编译
  • HTML标签参考手册 iis7站长之家


  • 站内导航:


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

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

    浙ICP备11055608号-3