岐山网站开发广州花都区网站建设

news/2025/10/2 9:28:19/文章来源:
岐山网站开发,广州花都区网站建设,网站名称设置,天津企业建站系统或按照S5PV210学习秩序。我们首先解决的关键问题。TQ335x有六个用户按钮#xff0c;每个上、下、剩下、对、Enter和ESC。我想开始学习S5PV210当同一#xff0c;写输入子系统驱动器的关键问题要解决#xff0c;但浏览driver/input/keyboardgpio-keys.c#xff0c;大体上看下… 或按照S5PV210学习秩序。我们首先解决的关键问题。TQ335x有六个用户按钮每个上、下、剩下、对、Enter和ESC。我想开始学习S5PV210当同一写输入子系统驱动器的关键问题要解决但浏览driver/input/keyboardgpio-keys.c大体上看下该驱动程序其功能是实现了通用的gpio按键。再去看了下DTS发现DTS中有对gpio-keys的引用。于是猜到。新的内核不须要自己编写输入子系统驱动能够通过配置DTS直接解决按键问题。本人终于通过实验证实了这个猜想以下是实验笔记及本人的一些理解。 1确定GPIO管脚 通过查看TQ335x的原理图能够看到TQ335x的6个按键分别接在GPIO1的20~25管脚上原理图例如以下 2查看原有的dts配置 进行DTS文件改动之前能够阅读下内核相关文档。在Documentation/devicetree/文件夹下有非常多关于devicetree的记载事实上这些第一手的资料才是最具參考价值的资料。我还没来得及系统的阅读这些文档急于实现功能仅阅读了gpio-key和pinmux相关的部分就開始了改动工作这是浮躁的表现。大家不要养成这样的恶习啊。 通过细致阅读原dts文件能够发现am335x-evm开发板上有个gpio矩阵键盘和gpio的音量、音量-键。且矩阵键盘和音量键与TQ335x的按键管脚有冲突。因此删除这两组配置并又一次加入适应TQ335x按键的配置。改动后的DTS代码片段例如以下 gpio_keypad: gpio_keyad0{compatible gpio-keys;#address-cells 1;#size-cells 0;autorepeat;switch1 {label up;linux,code 103;gpios gpio1 20 GPIO_ACTIVE_LOW;gpio-key,wakeup;};switch2 {label down;linux,code 108;gpios gpio1 21 GPIO_ACTIVE_LOW;gpio-key,wakeup;};switch3 {label left;linux,code 105;gpios gpio1 22 GPIO_ACTIVE_LOW;gpio-key,wakeup;};switch4 {label right;linux,code 106;gpios gpio1 23 GPIO_ACTIVE_LOW;gpio-key,wakeup;};switch5 {label enter;linux,code 28;gpios gpio1 24 GPIO_ACTIVE_LOW;gpio-key,wakeup;};switch6 {label esc;linux,code 1;gpios gpio1 25 GPIO_ACTIVE_LOW;gpio-key,wakeup;}; }; 当中linux,code后面相应的是linux标准的键值能够在linux系统中找到。路径是/usr/include/linux/input.h。 因为这六个按键使用的是gpio管脚还须要通过后面的pinmux配置下gpio相关寄存器。相同的删除gpio矩阵键盘和音量键相关的配置。加入使用TQ335x的配置改动后的代码片段例如以下 am33xx_pinmux { pinctrl-names default; pinctrl-0 clkout2_pin;gpio_key_pins: gpio_keys_s0 {pinctrl-single,pins 0x50 (PIN_INPUT_PULLUP | MUX_MODE7) /* gpmc_a3.gpio1_20 */0x54 (PIN_INPUT_PULLUP | MUX_MODE7) /* gpmc_a5.gpio1_21 */0x58 (PIN_INPUT_PULLUP | MUX_MODE7) /* gpmc_a6.gpio1_22 */0x5C (PIN_INPUT_PULLUP | MUX_MODE7) /* gpmc_a7.gpio1_23 */0x60 (PIN_INPUT_PULLUP | MUX_MODE7) /* gpmc_a8.gpio1_24 */0x64 (PIN_INPUT_PULLUP | MUX_MODE7) /* gpmc_a9.gpio1_25 */; };i2c0_pins: pinmux_i2c0_pins {pinctrl-single,pins 0x188 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c0_sda.i2c0_sda */0x18c (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c0_scl.i2c0_scl */; }; 须要注意的是pinctrl-0后与矩阵键盘和音量键相关的配置项名称也要删除对于phandler眼下还没有看懂什么意思这里先让按键功能正常之后再去具体的研究dts。学习dts的时候也会来写笔记的。 3又一次编译dts 与之前编译dts的方法一样 make ARCHarm CROSS_COMPILEarm-linux-gnueabi- tq335x.dtb4用新的dtb启动内核 将新的tq335x.dtb复制到SD卡的boot文件夹下能够直接覆盖掉原来的并给开发板上电同一时候按随意键使u-boot进入命令行模式。使用命令启动内核 load mmc 0 ${fdtaddr} /boot/tq335x.dtb load mmc 0 ${loadaddr} /boot/zImage load mmc 0 ${rdaddr} /boot/ramdisk.img bootz ${loadaddr} ${rdaddr} ${fdtaddr}5測试按键 从终端上无法直接看到按键效果只是能够同hexdump命令来測试按键功能是否正常用法例如以下 hexdump /dev/input/event0因为gpio-keys驱动将按键事件映射到了/dev/input/event0设备节点上。因此对该设备节点使用hexdump工具能够读取到按键事件。运行上述指令后按键能够从终端上看到输出。我依照上、下、左、右、Enter和ESC的顺序短按这六个键能够看到例如以下Log tq335x #hexdump /dev/input/event0 0000000 4b7c 386d f9b4 0005 0001 0067 0001 0000 0000010 4b7c 386d f9b4 0005 0000 0000 0000 0000 0000020 4b7c 386d 80c4 0008 0001 0067 0000 0000 0000030 4b7c 386d 80c4 0008 0000 0000 0000 0000 0000040 4b7d 386d 09f8 0008 0001 006c 0001 0000 0000050 4b7d 386d 09f8 0008 0000 0000 0000 0000 0000060 4b7d 386d 1005 000a 0001 006c 0000 0000 0000070 4b7d 386d 1005 000a 0000 0000 0000 0000 0000080 4b7f 386d 1304 000d 0001 0069 0001 0000 0000090 4b7f 386d 1304 000d 0000 0000 0000 0000 00000a0 4b80 386d 48e6 0000 0001 0069 0000 0000 00000b0 4b80 386d 48e6 0000 0000 0000 0000 0000 00000c0 4b80 386d f340 000a 0001 006a 0001 0000 00000d0 4b80 386d f340 000a 0000 0000 0000 0000 00000e0 4b80 386d cd6f 000c 0001 006a 0000 0000 00000f0 4b80 386d cd6f 000c 0000 0000 0000 0000 0000100 4b81 386d a2d7 0007 0001 001c 0001 0000 0000110 4b81 386d a2d7 0007 0000 0000 0000 0000 0000120 4b81 386d b39d 0009 0001 001c 0000 0000 0000130 4b81 386d b39d 0009 0000 0000 0000 0000 0000140 4b82 386d 5aa3 0002 0001 0001 0001 0000 0000150 4b82 386d 5aa3 0002 0000 0000 0000 0000 0000160 4b82 386d 4bf3 0004 0001 0001 0000 0000 0000170 4b82 386d 4bf3 0004 0000 0000 0000 0000通过hexdump工具看到的数字是16进制的。因为linux的input_event事件定义例如以下 struct input_event {struct timeval time;__u16 type;__u16 code;__s32 value; };结合之前设置的linux,code分析可知。hexdump打印的各列数据含义例如以下 第一列行号 第2~5列输入事件时间戳即结构体中的time。 第6列输入事件类型即结构体中的type。 第7列按键的键值即结构体中的code。 第8列按键的状态即结构体中的value1表示按下0表示松开。 细心的朋友会发现按下并松开一个按键后能看到四行数据这是因为每一个input_event后会接一个linux同步事件从上述log能够看到。同步事件的typecodevalue都为0。 到这里就完毕了TQ335x的按键驱动移植。尽管过程非常easy但已经体会到了DTS的优点。对于一些通用的功能能够不改动内核源代码、不又一次编译内核。仅改动dts配置就能实现所需的功能如这里的gpio按键功能。dts方式启动内核有着巨大的优势。必须弄清DTS的编写规则以后会记录DTS相关的笔记的。 本文作者girlkoo 此链接http://blog.csdn.net/girlkoo/article/details/41323563 转载于:https://www.cnblogs.com/yxwkf/p/5042492.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/924742.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

wordpress 网站显示加载时长山东建设厅官方网站二建报名

vue创建完项目以后如果报parsing error no babel config file。。。这样的错误的话,关闭项目,用vscode进入项目中打开项目就可以解决了。 1 代码保存的时候会自动将单引号报错为双引号 导致eslint报错的问题, 解决思路: 在项目根…

网站设计用什么软件做的抚州律师网站建设

Date.parse() 方法解析一个表示某个日期的字符串,并返回从1970-1-1 00:00:00 UTC 到该日期对象(该日期对象的UTC时间)的毫秒数,如果该字符串无法识别,或者一些情况下,包含了不合法的日期数值(如…

2025 年润滑脂厂家 TOP 企业品牌推荐排行榜,道达尔润滑脂,工业润滑脂,合成润滑脂,高温润滑脂,轴承润滑脂推荐这十家公司!

在当前工业生产领域,润滑脂作为保障设备稳定运行的关键耗材,其品质与供应服务的重要性日益凸显。然而,市场上润滑脂品牌数量众多,产品质量参差不齐,给企业采购带来诸多困扰。部分品牌存在产品参数不达标、供应链不…

2025切割机厂家TOP企业品牌推荐排行榜,五轴水刀,大理石水刀,全自动水刀,高压水刀,手持式水刀,高压水刀,大理石水刀,便携式水刀切割机公司推荐!

在当前制造业快速发展的背景下,切割机作为关键加工设备,其市场需求持续攀升,但行业也面临诸多亟待解决的问题。一方面,市场上切割机品牌数量众多,产品质量参差不齐,部分厂家为追求短期利益,在生产过程中降低标准…

二十八、API之《System 类》——与框架交互的“桥梁”

二十八、API之《System 类》——与框架交互的“桥梁”pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas&qu…

2025橡胶木板材厂家TOP企业品牌推荐排行榜,泰国橡胶木板材,橡胶木免漆板,橡胶木 PET,橡胶木门板,AA 橡胶木,橡胶木指接板公司推荐!

在当下的家居建材市场中,橡胶木板材凭借其出色的性价比、良好的物理性能以及丰富的应用场景,备受消费者与行业从业者的青睐。然而,随着市场的蓬勃发展,各类橡胶木板材品牌如雨后春笋般涌现,质量参差不齐,这给消费…

网站建设哪家公司便宜wordpress游客投稿

类 类的基本特性 数据抽象和封装继承多态 1 类的构成——抽象 概念 数据抽象是一种依赖于接口和实现的分离的编程技术。类的接口包括用户所能执行的操作;类的实现包括类的数据成员、负责接口实现的函数体以及定义类所需要的的各种私有函数。封装实现了类的接口和实…

2025润滑油供应商最新权威推荐排行榜:聚焦耐磨润滑油、工业润滑油、鑫美工业润滑油、壳牌润滑油、道达尔润滑油助力企业采购决策

当前工业领域对润滑油的需求持续增长,但市场乱象却让企业采购面临诸多难题。部分供应商缺乏合规供货渠道,产品无原厂认证与溯源体系,假冒伪劣产品导致设备故障频发、运维成本激增;还有供应商供应链响应慢,紧急用油…

网站手机版二维码怎么做腾讯域名怎么做网站

编码是信息从一种形式或格式转换为另一种形式的过程,也称为计算机编程语言的代码简称编码。 用预先规定的方法将文字、数字或其它对象编成数码,或将信息、数据转换成规定的电脉冲信号。 编码在电子计算机、电视、遥控和通讯等方面广泛使用。 解码&#x…

多状态循环泵控件开发

所遇问题 描述:在使用定时器设置泵的运行状态时 ,可以成功运行 ,但是会一卡一卡的这里猜测的是定时器时间设置过短导致它本身一个周期还未运行完成就重新开启下一轮的运行 但是将时间设置大了之后 ,结果并不是这样…

2025活塞杆厂家TOP企业品牌推荐排行榜,精密,不锈钢,调制,超长,油缸,气缸,镀铬,大直径,精细活塞杆推荐这十家公司!

在当前工业自动化快速发展的背景下,活塞杆作为液压油缸、气缸等关键执行部件的核心连接部件,其质量与性能直接影响着众多行业设备的运行精度和使用寿命。然而,当下活塞杆市场呈现出较为复杂的局面,不同制造商的产品…

藁城外贸网站建设投稿 wordpress

官网:https://spring.io/projects/spring-cloud 官方说法:Spring Cloud 为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理、服务发现、熔断器、智能路由、微代理、控制总线、一次性令牌、全局锁、领导选举、分布式会话…

实用指南:WSL2搭建Hadoop伪分布式环境

实用指南:WSL2搭建Hadoop伪分布式环境pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Mon…

3整数规划-分支定界法

分支定界法(Branch and Bound Method 一、分支定界法概述 1. 定义与定位 分支定界法是求解 整数规划问题(纯整数、混合整数、0-1规划)的 核心全局优化算法,由 Land 和 Doig 于1960年提出。 其核心思想是通过“分支…

西安网站建设服务网站备案个人使用

Android Deobfuscation11/11/2019本文内容ProGuard、DexGuard 和 R8 是用于对 Android 应用程序的代码进行优化和模糊处理的工具。 它会删除未使用的代码、重命名具有语义模糊名称的类、字段和方法,使基本代码更小,更难反向工程。 若要在 Android 应用中…

完整教程:Ubuntu 系统安装 Prometheus+Grafana(附shell脚本一键部署↓)

完整教程:Ubuntu 系统安装 Prometheus+Grafana(附shell脚本一键部署↓)pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family…

网站的设计与制作论文题目成都高端网站建设哪家好

这世界上有后悔药– www.houhuiyao.cc 后悔药数据恢复 站长语前面的内容也提到过update或delete误更新删除了数据后如何恢复。实际生产环境中常常因各种不同场景导致一些办法有效一些办法无效,当然,最有效的办法依然是备份!虽然啰嗦&#xff…

重庆市住房和城乡建设部网站自己怎么开发app软件

文章目录 性能比较区别使用方式和行为 性能比较 最终总结:如果数据在1万以内的话,for循环效率高于foreach和stream;如果数据量在10万的时候,stream效率最高,其次是foreach,最后是for。另外需要注意的是如果数据达到10…

详细介绍:【计算机视觉】形态学的去噪

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

阿里巴巴做网站的电话号码wordpress社

JavaScript返回上一页代码区别: window.history.go(-1); //返回上一页window.history.back(); //返回上一页//如果要强行刷新的话就是:window.history.back();location.reload();window.location.go(-1); //刷新上一页