MTK FeaturePhone平台关于中断的理解
2016-01-13 10:31
357 查看
最近在调试一个sensor的时候,要求产生中断后有一个弹出框,原以为很简单的一个事,调用一下popup的接口就可以了。
上面这一句话看完,水平立马见分晓。高手看完肯定直接说NO,而我就属于水平差的,添加了之后一触发中断就重启。
查看log 是DRVHISR错误。
首先得熟悉HISR和LISR的概念。简单说一下我的理解,就是ISR分HISR(high优先级)和LISR(low优先级),网上说法,相当于linux中断的上半部和下半部,这个很贴切。
HISR是属于响应优先级很高的,抢占式的,而eint就是hisr,也就是linux中的上半部。抢占后必须马上退出,这是如果再添加pop弹出框(pop需要时间延时),就会出现系统资源抢占导致内存出错,系统重启。个人觉得linux应该不会重启,因为linux有锁机制,没有验证过。
知道了原因,解决思路就很明确了,添加到mtk的mmi消息队列中,由系统来调配,eint产生后发消息就可以了。
具体的接口:setprotocoleventhandler send_msg4等。
补充:有必要学习一下nucleus系统。
上面这一句话看完,水平立马见分晓。高手看完肯定直接说NO,而我就属于水平差的,添加了之后一触发中断就重启。
查看log 是DRVHISR错误。
首先得熟悉HISR和LISR的概念。简单说一下我的理解,就是ISR分HISR(high优先级)和LISR(low优先级),网上说法,相当于linux中断的上半部和下半部,这个很贴切。
HISR是属于响应优先级很高的,抢占式的,而eint就是hisr,也就是linux中的上半部。抢占后必须马上退出,这是如果再添加pop弹出框(pop需要时间延时),就会出现系统资源抢占导致内存出错,系统重启。个人觉得linux应该不会重启,因为linux有锁机制,没有验证过。
知道了原因,解决思路就很明确了,添加到mtk的mmi消息队列中,由系统来调配,eint产生后发消息就可以了。
具体的接口:setprotocoleventhandler send_msg4等。
补充:有必要学习一下nucleus系统。
相关文章推荐
- AngularJS
- chrome查看hover样式方法
- jQuery获取及设置单选框、多选框、文本框
- Javascript学习笔记03——Js基本概念
- 记一次DataNode慢启动问题
- Node.js基础学习
- node.js初识
- BootstrapTooltip
- html动态显示时间
- 解析json之com.google.gson.Gson
- js jquery 计算两个时间相差天数
- HTML标签img--改变图片尺寸
- InputStreamReader和BufferedReader用法及真实案例
- 写给IOS开发工程师的网页前端入门笔记
- 【React Native开发】React Native应用设备运行(Running)以及调试(Debugging)(3)
- 一些js的用法
- 七个相关jQuery的最佳实践
- 前端动画库
- 基于jquery实现的仿优酷图片轮播特效代码
- 全面的framebuffer详解