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

怎么样在嵌入式linux下实现spi与外设的通信

    来源: 互联网  发布时间:2016-12-10

    本文导语:     在drivers/spi/下有spi.c  spidev.c   omap2_mcspi.c 等驱动程序 我怎么利用驱动实现与外设的通信 ,是否还需要编写外设的驱动程序。 spi的驱动程序有哪些部分组成。  我刚开始学习嵌入式 一些问题不懂。谢谢高...

   在drivers/spi/下有spi.c  spidev.c   omap2_mcspi.c 等驱动程序 我怎么利用驱动实现与外设的通信 ,是否还需要编写外设的驱动程序。 spi的驱动程序有哪些部分组成。  我刚开始学习嵌入式 一些问题不懂。谢谢高手们的解答。

|
SPI的驱动提供的是操作CPU SPI接口的方式 你看到那个目录里针对不同的CPU有不同spi_xxx.c
如果你要写外设的驱动 除了外设功能部分的驱动外 如果是涉及到 SPI 一般是访问外设的寄存器 这个访问方法用上述就可以 可是外设的具体API还是得你写 比如操作一个codec 大概的分布如下
1. CPU SPI access API
SPI_Read(...)
SPI_Write(...)
2. 设备寄存器访问API,用到1里面的API
Codec_Reg_Read(...)
Codec_Reg_Write(...)
3. 设备功能API,用到2里面的API
Codec_Set_Rate(...)
...

|
帮顶,楼上正解

可能你的外设内核已经支持了吧

|
如果是刚开始学的话,建议你用最简单的方式操作cpu的spi寄存器,实现与外设的交互

你可以在uboot里找一下相关CPU的spi驱动是怎么写的,然后效仿一下,很简单的

如果你用drivers/spi/下的spi.c spidev.c这些东西的话,你首先需要看懂它们,而想看懂它们不是个简

单的事情,你可能需要了解设备驱动模型的知识,什么device、bus、driver等等,那就很麻烦啦,呵呵

|
1.Linux 的spi 没细看呢,基本上你不需要碰驱动框架的代码,但是得了解一下,比如说read/write是不是通过file_operations调用的,是的话又是通过哪个设备,等等
2.你一定要在Linux里支持你的板子的SPI的话,需要参考的是该目录里其他针对不同CPU的文件,具体编译哪个可以看Kconfig和Makefile
3.关于使用SPI.在应用层通过设备文件接口,内核层通过最底下的SPI API就可以

|


举个例子,如果你用的是powerpc的处理器,那么在uboot下,它的spi驱动位置在

driversspimpc8xxx_spi.c,你看一下,会发现很简洁,里面基本上都是直接操作寄存器的

并没有什么像内核里那样复杂的数据结构,你要是想方便,直接在那里面修改代码就可以,然后在boot下调试

你也可以把那里的代码拿过来,把它改改,编一个内核ko,在内核下调试

刚开始,为了使硬件能正常跑起来,还是建议你采用最简单的方法

等你都搞定了之后,你再去看看内核下的spi.c spidev.c等等,不过可能需要很长时间去学习了,因为你跟

内核下spi.c,跟到最后就是设备模型的东西了,很复杂

也就是说,如果你想实现一个标准的、利用内核提供的spi总线框架来实现的spi总线、spi设备驱动,还要花N

长时间啊,呵呵

不过,也得看你的定位了,如果只是实现设备驱动,那还简单点,代码不用跟的太深,如果你想学习总线驱动

的编写,那就努力学习设备模型的知识吧,嘿嘿

我也在学习,烦~~~

    
 
 

您可能感兴趣的文章:

  • 请问在哪下载嵌入式Linux开发平台???想学嵌入式开发!!!
  • 有谁做过嵌入式 Linux开发?是否有嵌入式Linux的JVM?
  • 嵌入式网络编程与非嵌入式网络编程有什么不同
  • 问一个弱弱的问题:做嵌入式开发,宿主机的Linux版本一定要跟目标机上的嵌入式Linux版本一致么?
  • 我怎么糊涂了:想开发嵌入式系统(目标机采用UCLINUX嵌入式操作系统),在RED HAT LINUX下开发,选用什么工具呢?QT还是qt embedded?
  • 嵌入式linux开发:一段代码在windows平台用VC编译运行正常,在linux平台用gcc编译运行正常,但是用arm-linux-gcc编译在嵌入式板子上运行就不正常.
  • 请问什么是嵌入式数据库?(空)
  • 关于“嵌入式Linux”
  • 嵌入式系统的学习
  • 嵌入式学习方法
  • 请问:构建一个嵌入式开发环境时的疑问?
  • linux 嵌入式开发用买开发板吗?
  • 求嵌入式Linux的入门书籍!
  • 嵌入式应用开发协作系统 Yocto
  • 嵌入式GUI库 eSWT iis7站长之家
  • 嵌入式GLIBC EGLIBC
  • 驱动程序开发和嵌入式开发有什么联系吗?
  • 嵌入式 syslog
  • vc++与Linux嵌入式
  • 计算机专业学习 嵌入式可以么 ??
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 现在LINUX主要用在哪些嵌入式设备上?
  • 嵌入式系统 Prex
  • web开发和嵌入式开发哪个更有挑战
  • 嵌入式linux 组播接收问题
  • Linux的嵌入式开发,请高手指点
  • 国内有哪些好的嵌入式公司???
  • 开源嵌入式操作系统 Contiki
  • 嵌入式Web服务器 Appweb
  • 实时嵌入式操作系统 NuttX
  • 嵌入式系统虾米意思呀?
  • Linux 用什么工具进行嵌入式开发。
  • 我想学习Linux 嵌入式开发,请大家指教
  • java 还是LINUX嵌入式???
  • 了解嵌入式开发的朋友请进!
  • 是考验还是嵌入式??
  • linux运维转linux嵌入式
  • 嵌入式GUI库 eSWT
  • 嵌入式系统考研请教?
  • ARM 嵌入式系统的仿真器 Softgun
  • 如何开发嵌入式Linux操作系统?


  • 站内导航:


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

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

    浙ICP备11055608号-3