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

厦门网站建设方案优化有哪些好点的单页网站

厦门网站建设方案优化,有哪些好点的单页网站,做搜索引擎优化对网站有哪些好处,永久使用免费虚拟主机一、前言作为一个工作多年的系统工程师#xff0c;免不了做两件事情#xff1a;培训新员工和给新员工分配任务。对于那些刚刚从学校出来的学生#xff0c;一般在开始的时候总是分配一些非常简单的任务#xff0c;例如GPIO driver、LED driver。往往CPU datasheet的关于GPIO… 一、前言作为一个工作多年的系统工程师免不了做两件事情培训新员工和给新员工分配任务。对于那些刚刚从学校出来的学生一般在开始的时候总是分配一些非常简单的任务例如GPIO driver、LED driver。往往CPU datasheet的关于GPIO或者IO ports的章节都是比较简单的非常适合刚入行的工程师。虽然GPIO子系统相关的硬件比较简单没有复杂的协议不过对于软件抽象而言其分层次的软件思想是每个嵌入式软件工程师需要掌握的内容。我更倾向使用GPIO系统这个名字来代替GPIO driver这个名字GPIO driver仅仅包含了pin signal状态控制和读取的内容而GPIO系统包括了pin multiplexing、pin configuration、GPIO control、GPIO interrupt control等内容。本文主要是以3.14内核作为例子讲述linux kernel中GPIO系统的软件框架。二、GPIO相关硬件有哪些差异嵌入式工程师总是要处理各种各样的target board每个target board上的GPIO总是存在不同例如1、和CPU的连接方式不同对于ARM的嵌入式硬件平台SOC本身可以提供大量的IO portSOC上的GPIO controller是通过SOC的总线AMBA连接到CPU的。对于嵌入式系统而言除了SOC的IO port一些外设芯片也可能会提供IO port例如1有些key controller芯片、codec或者PMU的芯片会提供I/O port2有些专用的IO expander芯片可以扩展16个或者32个GPIO从硬件角度看这些IO和SOC提供的那些IO完全不同CPU和IO expander是通过I2C也有可能是SPI等其他类型的bus连接的在这种情况下访问这些SOC之外的GPIO需要I2C的操作而控制SOC上的GPIO只需要写寄存器的操作。不要小看这个不同写一个SOC memory map的寄存器非常快但是通过I2C来操作IO就不是那么快了甚至如果总线繁忙有可能阻塞当前进程这种情况下内核同步机制必须有所区别如果操作GPIO可能导致sleep那么同步机制不能采用spinlock。2、访问方式不同SOC片内的GPIO controller和SOC片外的IO expander的访问当然不一样不过即便都是SOC片内的GPIO controller不同的ARM芯片其访问方式也不完全相同例如有些SOC的GPIO controller会提供一个寄存器来控制输出电平。向寄存器写1就是set high向寄存器写0就是set low。但是有些SOC的GPIO controller会提供两个寄存器来控制输出电平。向其中一个寄存器写一就是set high向另外一个寄存器写一就是set low。3、配置方式不同即便是使用了同样的硬件例如都使用同样的某款SOC不同硬件系统上GPIO的配置不同。在一个系统上配置为输入在另外的系统上可能配置为输出。4、GPIO特性不同。这些特性包括1是否能触发中断。对一个SOC而言并非所有的IO port都支持中断功能可能某些处理器只有一两组GPIO有中断功能。2如果能够触发中断那么该GPIO是否能够将CPU从sleep状态唤醒3有些有软件可控的上拉或者下拉电阻的特性有的GPIO不支持这种特性。在设定为输入的时候有的GPIO可以设定debouce的算法有的则不可以。5、多功能复用有的GPIO就是单纯的作为一个GPIO出现有些GPIO有其他的复用的功能。例如IO expander上的GPIO只能是GPIO但是SOC上的某个GPIO除了做普通的IO pin脚还可以是SPI上clock信号线。三、硬件功能分类ARM based SOC的datasheet中总有一个章节叫做GPIO controller或者I/O ports的章节来描述如何配置、使用SOC的引脚。虽然GPIO controller的硬件描述中充满了大量的寄存器的描述但是这些寄存器的功能大概分成下面三个类别1、有些硬件逻辑是和IO port本身的功能设定相关的我们称这个HW block为pin controller。软件通过设定pin controller这个硬件单元的寄存器可以实现1引脚功能配置。例如该I/O pin是一个普通的GPIO还是一些特殊功能引脚例如memeory bank上CS信号。2引脚特性配置。例如pull-up/down电阻的设定drive-strength的设定等。2、如果一组GPIO被配置成SPI那么这些pin脚被连接到了SPI controller如果配置成GPIO那么控制这些引脚的就是GPIO controller。通过访问GPIO controller的寄存器软件可以1配置GPIO的方向2如果是输出可以配置high level或者low level3如果是输入可以获取GPIO引脚上的电平状态3、如果一组gpio有中断控制器的功能虽然控制寄存器在datasheet中的I/O ports章节描述但是实际上这些GPIO已经被组织成了一个interrupt controller的硬件block它更像是一个GPIO type的中断控制器通过访问GPIO type的中断控制器的寄存器软件可以1中断的enable和disablemask和unmask2触发方式3中断状态清除四、如何通过软件抽象来掩盖硬件差异传统的GPIO driver是负责上面三大类的控制而新的linux kernel中的GPIO subsystem则用三个软件模块来对应上面三类硬件功能1pin control subsystem。驱动pin controller硬件的软件子系统。2GPIO subsystem。驱动GPIO controller硬件的软件子系统。3GPIO interrupt chip driver。这个模块是作为一个interrupt subsystem中的一个底层硬件驱动模块存在的。本文主要描述前两个软件模块具体GPIO interrupt chip driver以及interrupt subsystem请参考本站其他相关文档。1、pin control subsystem block diagram下图描述了pin control subsystem的模块图底层的pin controller driver是硬件相关的模组初始化的时候会向pin control core模块注册pin control设备通过pinctrl_register这个bootom level interface。pin control core模块是一个硬件无关模块它抽象了所有pin controller的硬件特性仅仅从用户各个driver就是pin control subsystem的用户角度给出了top level的接口函数这样各个driver不需要关注pin controller的底层硬件相关的内容。2、GPIO subsystem block diagram下图描述了GPIO subsystem的模块图基本上这个软件框架图和pin control subsystem是一样的其软件抽象的思想也是一样的当然其内部具体的实现不一样我们会在后续的文章中描述。原文链接http://www.wowotech.net/io-port-control.html扫码或长按关注回复「 篮球的大肚子」进入技术群聊
http://www.yutouwan.com/news/171324/

相关文章:

  • dedecms仿站教程网站建设与运营第二次在线作业
  • 如何选定目标关键词及网站栏目名称的确定陕西网站建设哪家强
  • 辽宁城乡和住房建设部网站wordpress 适合程序员
  • 济南网站建设制作设计wordpress版本推荐
  • 怎么建设婚恋网站流程设计网站
  • 西安微信网站制作上海市虹口市容建设公司网站
  • 模板网站做外贸可以吗云服务器可以建设个人网站吗
  • 怎么做游戏推广网站网站建设界面ppt演示
  • 广东省建设执业资格注册中心官方网站小程序游戏代理加盟
  • 网站建设的内容规划电子手表网站
  • 网站制作属于什么专业做网站赚钱嘛
  • 电子商务公司网站建立WordPress输出当前网址
  • 软件开发工程师证seo是什么职业做什么的
  • wordpress文章展示余姚网站seo运营
  • 深圳做网站比较好北京公司网站建设服务
  • 太原做淘宝网站的成都市建设局官网
  • 外贸网站做开关的哪个好WordPress手机不显示
  • 学做网站论坛vip教程晋中市科技馆网站建设
  • j建设银行信用卡网站wordpress 插件 破解
  • 做网站价钱怎么查看网站谁做的
  • 周口seo 网站企业网站备案名称窍门
  • 广州黄埔区网站建设m开头的网站开发工具
  • 网站开发好要租服务器吗网页设计图片的边框怎么做
  • 怎样推广自己的产品余姚seo智能优化
  • 海口网站建设流程网站建设預算
  • 海诚网站建设广州网站建设推广
  • 可以做 描文本链接的网站有哪个网站可以学做吃的
  • 如何自建网站入口企业网站的推广形式有
  • 外贸建站与推广做网站加入广告联盟
  • 菜鸟建网站定制网站建设服务商