当前位置: 首页 > 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/606358.html

相关文章:

  • 做宽带销售网站阿里云购买域名后怎么建网站
  • 网站建设 开票网站开发与维护前景
  • 公司 网站源码wordpress注册显示密码错误
  • 漳州本地网站微营销的方式有哪些
  • 二级网站建设检查评比方案番禺网站建设哪个好
  • 网站权重有时降织梦 网站统计
  • 查询网站这么做wordpress 友好速搭
  • 手机网站设计占工程比重东莞建设通网站
  • 拍卖网站制作做网站需要什么专业方向的员工
  • 阿里云网站费用吗做资格核查在哪个网站
  • 网上购物网站模板摄影网站制作软件
  • app科技产品网站建设seo咨询推广
  • 广州市品牌网站建设服务机构正规app软件开发费用
  • 打赏网站开发wordpress开发文档(chm)
  • 网站红色搭配wordpress支付宝扫码支付
  • 北京网站优化快速排名安徽省交通运输厅门户网站
  • 网站建设综合实践 教材枣庄公司做网站
  • 昆山网站建设义搏网站开发计划怎么写
  • 电子商务平台的建设步骤app关键词优化
  • 帮人家做网站中国建设银行曲江支行网站
  • 英文网站开发公司哪家好长春h5建站模板
  • 福永附近网站建设公司跨境电商软件下载
  • 一个新网站关键词怎么做SEO优化溧阳网站建设中心
  • 公司做网站找谁服务器域名已有做网站
  • 网站开发人员注意事项ico 众筹网站开发
  • 网站建设成功案例书籍设计师之家资源库
  • 石家庄外贸网站建设公司排名西安营销网站建设
  • 网站开发与建设的原则湖北营销型网站建设费用
  • 上海网站开发运营淘宝优惠券网站怎么做 知乎
  • dedecms 调用网站名称医院做网站开发