当前位置: 首页 > wzjs >正文

茶叶网站建设模板网站备案和域名备案一样吗

茶叶网站建设模板,网站备案和域名备案一样吗,中交建设设计院有限公司网站,网站后台使用培训前言: 硬件平台:X9H 软件版本:PTG4.0 当应用层的 SPI 通讯失败时,需要弄清楚问题出现在哪个环节才能进行下一步动作。以下为 SPI 通讯时应用层到驱动层的代码调用流程。 一、整体架构 SPI 设备驱动:挂载在 SPI 总线…

前言:

硬件平台:X9H
软件版本:PTG4.0
当应用层的 SPI 通讯失败时,需要弄清楚问题出现在哪个环节才能进行下一步动作。以下为 SPI 通讯时应用层到驱动层的代码调用流程。

一、整体架构

SPI 设备驱动:挂载在 SPI 总线上的设备的驱动,根据设备类型的不同有多种多样的驱动
SPI 通用接口:通用的 SPI 操作接口,API 库,SPI 设备驱动和 SPI 控制器驱动之间的纽带
SPI 控制器驱动:芯片内部的 SPI 控制器的驱动,封装了最基础的 SPI 操作接口,直接控制寄存器和中断响应
SPI 寄存器:硬件单元,使用 SPI 控制器驱动文件(kernel/drivers/spi/spi-dw.c)中的接口(dw_spi_show_regs)可以获取相关寄存器的值

SPI 控制器驱动注册时向 SPI 通用接口(spi.c)提供了 spi_controller 的数据结构,这个结构体里封装了对硬件 SPI 的操作函数。

SPI 设备驱动可以通过调用 spi.c 里提供的 API 接口来间接地调用 SPI 控制器驱动的函数。

SPI 控制器驱动和 SPI 设备驱动通过 spi.c 连接,耦合度低,可以随意搭配。


二、应用到驱动的代码调用

以下程序为例分析应用到驱动的代码调用:

应用程序:kernel/tools/spi/spi_test.c ,linux 内核自带的 spi_test 程序
SPI 设备驱动: kernel/drivers/spi/spidev.c 
SPI 通用接口:kernel/drivers/spi/spi.c
SPI 控制器驱动:kernel/drivers/spi/spi-dw-mmio.c 和 kernel/drivers/spi/spi-dw.c, spi-dw-mmio.c 主要负责设备注册,spi-dw.c 负责模式配置和数据传输。

spi 子节点注册完成后,会在 /dev/ 下创建一个设备节点。应用层通过这个节点和 ioctrl 接口调用驱动层的代码。

ioctrl 接口的参数可以分为两种: spi 模式配置和数据传输。

spi 模式配置 :

配置 spi 的 MAX_SPEED_HZ,BITS_PER_WORD,LSB_FIRST,WR_MODE 等属性。

代码流程:

spi 数据传输:

驱动在 spi.c 的 spi_transfer_one_message 函数中对片选线进行选中或取消,由程序可知,设备驱动每调用一次 spidev_sync,如果数据没有丢失,那么每 sync 一次则产生一次 spi 通讯。
一个 message 包含多个 xfer,一个 message 为一次通讯,一个 xfer 调用一次 spi 控制器驱动中的 dw_spi_transfer_one 接口,dw_spi_transfer_one 则通过 dw_writel 函数写入寄存器。

代码流程:

一次传输的大小即为一个 struct spi_message ,使用 spi_test 测试,携带的数据最大为 4096 bytes。

struct spi_message {struct list_head    transfers;struct spi_device   *spi;unsigned        is_dma_mapped:1;void            (*complete)(void *context);void            *context;unsigned        frame_length;unsigned        actual_length;int         status;struct list_head    queue;void            *state;struct list_head        resources;
};​

总结:以上为应用 spi_test.c 到设备驱动、控制器驱动、寄存器读写的大概代码调用流程。

欢迎登录大大通,获取更多精彩技术内容!

http://www.dtcms.com/wzjs/821830.html

相关文章:

  • 上海网站建设推荐移动互联网开发技术期末试题
  • 适合vue做的网站类型h5制作网站开发
  • 一个主机怎么做两个网站有什么好的加盟店项目
  • 网站正在建设中页面的英文用手机做网站
  • 网站外包维护一年多少钱晋江网站网站建设
  • 上海哪里有做网站的网站域名的意思
  • 网站程序前台奉新网站建设
  • 广州市网站优化公司济宁做网站有哪几家
  • node.js做直播网站哪里创建免费个人网站
  • 网站开发服务费记账wordpress 美观插件
  • 网站建设资讯平台郑州千锋教育
  • 沈阳网站制作书店网站模版
  • 辽宁省营商环境建设监督局网站在哪里推广网站
  • 个人做财经类网站军事时事新闻最新消息
  • 做网站的工作有发展空间没有计算机编程与网站建设
  • 辽阳网站建设哪家好wordpress query_vars
  • 我想做一个网站本地信息发布平台
  • 有哪些能做专门接做标书的网站零基础学seo要多久
  • 网站建设公司有前途吗玩家世界网站建设
  • 门户网站为什么衰落宝山网站建设
  • 深圳整站优化wordpress 文章相册
  • wordpress的建站教程网站建设的基础资料
  • 门户网站怎么做seo阿里云网站域名申请
  • 怎么做好营销型网站泰州快速建站模板
  • 甜品网站设计思想自己建设网站模版
  • 厦门市建设安全管理协会网站打开网站的语音播报怎么做
  • 中国网站为什么做的那么丑电子商务网站建设类型
  • 威海网站建设公司wordpress安装语言设置
  • 山西省住房建设厅网站深圳专业做公司网站
  • 个人网站建设方法和过程产品营销型网站建设