[发明专利]一种管理嵌入式系统GPIO中断处理的方法有效
| 申请号: | 201711082969.8 | 申请日: | 2017-11-07 |
| 公开(公告)号: | CN107766141B | 公开(公告)日: | 2021-07-20 |
| 发明(设计)人: | 黄少锋 | 申请(专利权)人: | 福建北峰通信科技股份有限公司 |
| 主分类号: | G06F9/48 | 分类号: | G06F9/48 |
| 代理公司: | 暂无信息 | 代理人: | 暂无信息 |
| 地址: | 362012 福建省泉*** | 国省代码: | 福建;35 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 管理 嵌入式 系统 gpio 中断 处理 方法 | ||
本发明提供一种管理嵌入式系统GPIO中断处理的方法,包括抽象的GPIO中断事件的订阅管理单元、发布处理引擎单元,以及具体硬件的GPIO中断事件的发布处理实例单元。本发明统一接管嵌入式系统中所有的GPIO中断处理,使得GPIO的ISR模块的实现与具体硬件外设模块无关,使得对应的可阅读性、可维护性,不会随着外设模块的增多而降低,且简化了订阅者的ISR的编写工作量,并具备较好的移植性。
技术领域
本发明涉及嵌入式技术领域,尤其涉及一种管理嵌入式系统通用I/O(GeneralPurpose I/O,GPIO)中断处理的方法。
背景技术
一个GPIO端口,通常包含多个引脚,一般可关联32个引脚;但通常只会有一个中断向量。换句话说,多个引脚,共用了一个中断向量,从软件角度来讲,多个引脚,共用了一个中断处理程序(Interrupt Service Routine,ISR)。
在硬件设计上,通常一个GPIO端口,连接了多个不同外设,例如键盘、液晶等,因此,需要在同一个ISR里面,集中处理多个不同外设的中断请求。
对此,通常的做法是:每增加一个新的外设,就在ISR里面引用对应的外设模块,增加相关的中断处理。而随着外设的增多,ISR的体积随之变大,而且ISR与具体的外设模块是直接耦合在一块的,最终,当不同外设的数量比较多时,相应的,ISR的可阅读性变得比较低。
同时,通常需要将ISR独立形成一个模块,然后逐一引用对应的外设模块,同样随着外设的增多,用于引入模块的开销相应增多,也会降低ISR模块的可阅读性。
从软件角度来讲,软件模块的可阅读性的降低,直接导致了可维护性的降低,也就是说,对于上述做法,随着外设的增多,GPIO的ISR模块,可维护性会有所降低。
发明内容
本发明要解决的技术问题,在于提供一种管理嵌入式系统GPIO中断处理的方法,统一接管嵌入式系统中所有的GPIO中断处理,使得GPIO的ISR模块的实现与具体硬件外设模块无关,使得对应的可阅读性、可维护性,不会随着外设模块的增多而降低。
本发明是这样实现的:一种管理嵌入式系统GPIO中断处理的方法,包括抽象的GPIO中断事件的订阅管理单元、发布处理引擎单元,以及具体硬件的GPIO中断事件的发布处理实例单元。
所述的抽象的GPIO中断事件的订阅管理单元,用于管理指定的GPIO端口中断事件的订阅者的订阅和退订操作。
所述的指定的GPIO端口,对应为:订阅管理单元设计为抽象的、与硬件设备无关的单元,订阅管理单元并不关注硬件设备具备多少个GPIO端口,而仅仅由外部来指导、获取指定的GPIO端口信息。
所述的订阅和退订操作,对应为:操作指定GPIO端口的中断事件的订阅者链表,订阅,则插入新的链表节点,退订,则删除对应的链表节点。
所述的订阅者,至少包括以下关键属性:指定GPIO端口和GPIO引脚,以及ISR和自定义的ISR的上下文参数。当对应的中断事件发生时,ISR将被调用,同时自定义的上下文参数被传递给ISR,用于定制ISR的响应动作。
优选地,订阅者以静态存储类型的形式存在,订阅和退订操作就不需要引入内存管理操作,此时订阅者的属性需要增加:订阅者链表节点,用于链接链表。
所述的抽象的GPIO中断事件的发布处理引擎单元,不涉及具体硬件设备,而仅仅根据外部指定的GPIO端口信息,以及GPIO端口的中断事件标记信息,实现对中断事件的发布处理。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于福建北峰通信科技股份有限公司,未经福建北峰通信科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711082969.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种预防牛布氏杆菌的中草药饲料
- 下一篇:一种犊牛饲料





