范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

Pinctrl子系统与GPIO子系统初探(附实例)

  1024G 嵌入式资源大放送!包括但不限于C/C++、单片机、Linux等。私信回复1024,即可免费获取!前言
  之前我们已经通过几篇笔记来学习点灯了:
  Linux驱动基础篇:LED驱动
  基于总线设备驱动模型的LED驱动实践
  基于设备树的LED实例分析
  但之前的点灯实验我们都得去跟一些寄存器打交道,如:
  我们要配置寄存器,肯定得去阅读参考手册查看相关的寄存器,如:
  和寄存器打交道是一件费时费力而收获较小的事情,换句话说就是性价比太低了。我们在学习STM32的时候,ST都会给我们提供各种各样的库,这些库就是对寄存器操作的一些封装,我们调用那些库函数就可以间接地操控寄存器。我们就基本不用去查参考手册了,至少点个灯是不用去查手册的。
  这些寄存器相关的代码一般都是芯片原厂的工程师给我们写好了,我们只要拿来用就可以了。
  同样的,在嵌入式Linux开发中,像上面几篇笔记中的那几种led驱动方式(与寄存器打交道)基本上是用不上的,我们只是为了学习而学习。Linux内核提供了pinctrl 和 gpio 子系统用于引脚的驱动,这样我们可以避免与寄存器打交道。 简单认识pinctrl、gpio子系统
  这两个子系统是软件上面的概念,属于Linux内核的一部分。但最终要用起来,都是要与实际硬件挂钩,比如:
  在前几个led驱动实验中我们知道我们要操控一个引脚,我们需要配置两个模块的寄存器:GPIO模块及IOMUXC模块。IOMUXC模块是用来配置引脚功能及一些引脚参数(引脚速率、上下拉等);GPIO模块用于配置引脚的输入输出等。
  其中,pinctrl子系统管理的是IOMUXC模块;gpio子系统管理的是GPIO模块。下面简单看一下这两个子系统在设备树代码中的体现(以百问网的设备树文件 100ask_imx6ull-14x14.dts 为例):1、pinctrl子系统
  可以看到这里有两个节点:iomuxc节点与iomuxc_snvs节点,它们都是用来描述IOMUXC模块的。其实这两个节点是在 imx6ull.dtsi 文件中被创建的,这是NXP官方提供的。在 100ask_imx6ull-14x14.dts 文件中向这两个节点追加内容。
  追加的内容就是实际引脚功能的配置及引脚参数信息配置,下面以一个led的控制引脚为例简单分析一下:
  这个宏中前三个值是寄存器的偏移地址,后两个是寄存器的值,另一个寄存器的值就是设备树文件里pinctrl_leds节点里的那个值,即:
  下面再进一步分析:
  2、gpio子系统
  这里需要重点关注如下两个属性: gpio-controller;
  #gpio-cells = ;
  gpio-controller; 表明这个节点是一个GPIO控制器,这个控制器下面有很多引脚。
  #gpio-cells = ;  表示这个控制器下每一个引脚要用 2 个 32 位的数(cell)来描述,其中一个数(cell)用来表示引脚,另一个数(cell)用来表示有效电平或其它特性。如:
  至此,基于gpio子系统及pinctrl子系统的设备树文件的代码结构如下(图片来自百问网):
  对于pinctrl信息,有些芯片提供了生成工具。
  (1)gpio子系统的API接口
  设备树用于描述设备相关的信息,而我们的驱动获得设备信息之后也要使用一些API接口来操控设备。gpio子系统已经帮我们屏蔽掉了寄存器相关的操作,并给我们提供了一些API接口,我们只要调用这些API接口就可以间接地操控相关寄存器。其有两套API接口:基于描述符的(descriptor-based)、老的(legacy)。如:
  其中使用基于描述符的(descriptor-based)的接口需要包含头文件linux/gpio/consumer.h:
  使用老的(legacy)接口需要包含头文件linux/gpio.h:
  led驱动实验
  下面简单看一些基于这两个子系统的led驱动实验(相关代码来自百问网)。 1、设备树文件
  我们需要屏蔽掉百问开发板出厂自带的设备树文件( 100ask_imx6ull-14x14.dts )中描述led设备相关的代码,并添加如下内容:
  (1)在设备树文件中添加如下Pinctrl信息:
  (2)在设备树文件根节点下添加如下led节点信息:
  2、驱动核心代码
  (1)匹配
  (2)probe函数
  匹配成功则执行此函数从设备树获取设备信息:
  (3)open函数
  此函数设置引脚方向:
  (4)write函数
  此函数设置引脚输出值:
  3、应用代码/* WX公众号:嵌入式大杂烩 */ #include  #include  #include  #include  #include  #include   /*  * ./ledtest /dev/100ask_led0 on  * ./ledtest /dev/100ask_led0 off  */ int main(int argc, char **argv) {     int fd;     char status;          /* 1. 判断参数 */     if (argc != 3)      {         printf("Usage: %s   ", argv[0]);         return -1;     }      /* 2. 打开文件 */     fd = open(argv[1], O_RDWR);     if (fd == -1)     {         printf("can not open file %s ", argv[1]);         return -1;     }      /* 3. 写文件 */     if (0 == strcmp(argv[2], "on"))     {         status = 1;         write(fd, &status, 1);     }     else     {         status = 0;         write(fd, &status, 1);     }          close(fd);          return 0; }4、Makefile文件
  5、验证
  编译设备树文件、以模块的方式编译驱动文件。并把编译生成以下几个文件上传到板子里: 100ask_imx6ull-14x14.dtb
  leddrv.ko
  ledtest
  这里我们使用百问网开发的100ask_imx6ull_flashing_tool工具来上传,如
  也可以使用开发板挂载NFS来上传这几个文件,关于NFS可查看往期笔记:如何挂载网络文件系统?
  100ask_imx6ull_flashing_tool工具默认把文件上传到根目录。我们需要手动把100ask_imx6ull-14x14.dtb文件拷贝到/boot目录下并重启。
  测试结果如:
  以上就是本次的分享,如有错误,欢迎指出,谢谢!
  1024G 嵌入式资源大放送!包括但不限于C/C++、单片机、Linux等。私信回复 1024,即可免费获取!

如果联想一直坚持百分之百国有控股!今天的联想会什么样?至少让国民不会有被欺骗感觉!我想说的是,联想的决策层没有用心去做好联想,像任正非这样的国宝级企业家真的少之又少啊!地产企业都是投机取巧的主,马某都是玩一劳永逸玩垄断做最大的中间商,揭开净水器3大销售骗局,有必要装净水器吗?看清真相,别再上当在净水器市场中,产品多样,品牌复杂,各种宣传销售方式,让人应接不暇,防不胜防的销售套路,让一些不了解净水器的人中招,那么净水器还有必要安装吗?我们要先看清楚这些,就不用担心上当了!小米三季度营业利润下滑59,手机出货量减少5。8,销售薪酬猛增87。9中华网财经讯,11月23日,小米集团披露2021年三季度报告,小米三季度实现营收780。6亿元,同比增长8。2营业利润27。3亿元,同比减少59期间利润7。89亿元,同比减少84调比亚迪车北京地库ampampquot爆炸ampampquot,独家回复车型并非秦ProEV原因待调查文AI财经社韩玲编辑冒诗阳11月23日,有网友爆料称,一辆悬挂北京牌照的比亚迪秦ProEV在北京中关村壹号地下车库发生爆炸起火。目前,该爆炸区域已经封锁,现场仍有比较浓烈刺鼻的爆炸准备买iPhone13的中国电信用户请仔细看完全文根据有关方面获悉的最新消息得知,中国电信已要求所有新款支持5G通讯协议的设备,将不再允许同时支持CDMA频段和制式,而且必须取消VoLTE开关。貝体来讲,所有新款的5G终端(包括但也谈谈联想本来,我们跟联想的关系纯粹是消费者和企业的关系,我们只是付费使用联想公司的产品。如果只按这个层面来说,货钱相抵,我们两不相欠。但是,在个人心中,从上世纪九十年代起,联想作为国产品牌苹果造车带飞汽车芯片概念股!英特尔(INTC。US)放话10年后汽车芯片市场将达1150亿美元智通财经APP获悉,上周据消息人士透露,苹果(AAPL。US)将在2025年之前生产出一款完全自动驾驶的电动汽车,并称半导体平台的突破是苹果造车本次计划的关键。据悉,芯片开发商在推11。22号虚拟币圈新闻速递11。22号新闻速递1。11月21日消息,作为数字货币治理联盟白皮书系列的一部分,世界经济论坛(WEF)发布了其针对CBDC的研究结果。2。11月19日消息,支付巨头PayPal正新能源电动车光伏双击,结构性大牛机会多多试问地球村哪家有形之手对疫情防控最成功,毫无疑问,那就是兔子家。以生命至上为防疫宗旨始终坚持疫情清零目标抢先研发出各类型疫苗的兔子,成为地球村最先取得疫情防控重大胜利的一家。试问地浙商银行与华为公司签署战略合作协议e公司讯,记者获悉,11月19日,浙商银行股份有限公司(简称浙商银行)与华为技术有限公司(简称华为)在深圳签署战略合作协议。双方将建立全方位的战略合作关系,在信息技术领域,基于华为对外贸易主流跨境电商11月18日,国务院总理李克强主持召开经济形势专家和企业家座谈会要进一步扩大对外开放支持发展跨境电商海外仓等外贸新业态。归纳跨境电商概念股如下安克创新100。989。98BBD21
成为KOL需要具备什么条件?打造kol的方法和窍门在哪里?成为kol的窍门在哪里?发布视频没有流量怎么办?平台不给流量怎么操作?现在是融媒体时代,人人都有发言权,这也就激发了越来越多人在互联网上发表自己的观点,甚至想成为一名kol,那么成给孩子买个打印机。最好能连手机的,给推荐一个谢谢?黑白激光打印机,推荐hpm30w,带复印扫描,支持手机打印,机型小巧,可以使用兼容硒鼓,使用成本低,打印机价格在一千二左右。墨盒打印机的虽然便宜,但打印速度慢,墨盒放置长时间不用容女朋友月薪三千,想买iPhone13Pro,该不该买?你舍得就给他她买,你不舍得就让她换个男朋友,别总说这些有的没的。这不是该不该买的问题,而是你们该不该在一起的问题。原因也很简单,你们的消费观不一致,强求在一起,以后也会因为这个问题微信更新发布了最新版6。5。10版本,增加了哪些实用的功能?微信最新版,实用功能?刘二百态人生为大家解答这个疑问。大家觉得有用,记得点赞关注我哦!里面有更多生活技巧分享哦!微信微信已经成为我们生活中最重要最爱的通信聊天模式了。微信给大家带来e公司调查碳化硅衬底供不应求,资本抢滩新能源汽车市场,电动车解决里程焦虑问题有望缓解?作者证券时报记者阮润生,毛可馨如果说特斯拉在2018年正式扣响了碳化硅上车的发令枪,那么站在当前的时点上,新能源汽车市场应该比以往任何时候都更加逼近规模化上车。据不完全统计,比亚迪基调听云APM市场冰火两重天,或许只是行业无处安放的焦虑近两年来,无论从国内还是到国外,市场出现一种批判APM的论调,甚至有传统APM已经落后的个别声音出现。可放眼望去,国外主流APM厂商如DATADOGDynatraceNewReli比特币的价格涨涨跌跌,投资者不要盲目的跟从比特币在最近这段时间一直是涨涨跌跌的,但是这种情况是属于正常的,所以说在投资的时候,一定要尽自己所能,不要盲目的跟从。比特币网络作为一种网络系统具有极强的安全性和稳固性,至少过去十微信视频号将投入50亿流量包开通打赏付费直播等功能微信的视频号是腾讯的一大重点,只是此前的多次力推并没有起到明显效果,流量主力还是抖音快手斗鱼等平台,今天在微信公开课上,腾讯宣布了新一轮视频号的扩张,将投入50亿流量包,开通打赏付手机版望远镜?三星百倍变焦功能轻松拍出月球全貌古有举杯邀明月,对影成三人,至今,中秋赏月的习俗我们依然保留着,更有天文爱好者使用望远镜,专门来观赏研究月球的面貌。又譬如王维诗中明月松间照,清泉石上流的清幽月景,手机的长焦拍摄总革命性仿生眼Phoenix99或将很快就能在人类身上展开测试据悉,来自悉尼大学的一项新研究展示了一种新仿生眼的可喜成果。该大学的一个生物医学学生团队开发了这款被叫Phoenix99做的设备。经过三个月的研究,该团队认为该仿生眼对于长期植入是在印度逃税65。3亿卢比?小米深夜回应与近期业务无关,各方对进口商品价格认定存在分歧点蓝字关注,不迷路1月5日,印度财政部(MinistryofFinance)发布声明,已经向小米科技印度公司(XiaomiTechnologyIndiaPvt。)发出通知,在调查发