原创 注册机制与消息机制-嵌入式微系统连载之七

2014-7-21 17:27 1332 14 3 分类: 消费电子

注册机制在嵌入式编程中很少提到,但回调函数大家经常接触,以软件定时器为例:

   


软件定时器设备通过函数Start把FunctionCallback作为参数传入定时器设备中保存,之后开启定时器,延时1000ms之后,定时器就会直接调用FunctionCallback,所以这个FunctionCallback就叫做回调函数。类似处理器的中断一样。


注册机制类似回调函数性质,只是把概念扩展到变量,上层应用通过注册函数地址或者变量地址到设备中保存,当设备中这个地址对应的函数被激活或者变量值有改变,就调用这个函数或者更改这个变量值,以此达到底层对上层的信息传递。


以ADC设备为例,我们看一下注册机制的应用。首先在ADC设备device_adc.c中定义一个用于注册变量地址的指针数组RegisterPointerBlock,初始值必须要指向一个空变量,否则若指向了一些有用的地址而导致这个地址对应的数据改变,会引起不可预测问题。


 

在设备中引入注册机制,应用层只需要把变量的地址注册到设备中,设备自己可以通过这个地址修改数据,这样解放了应用层,让应用层不需要关心如何获取数据。但是,注册机制也存在一些缺陷,那就是操作的数据,必须要原子操作,否则会导致两个应用层与设备同时修改一个数据的异常存在,出现数据错误,这个是需要避免的。

相对注册机制,消息机制是大家所熟悉的一种底层向上层传递的方式,msOS采用uC/OS-II,标配为业务逻辑与菜单界面两个任务,业务逻辑为高优先级,支持消息队列,设备发送的消息,都在业务逻辑中处理。
   

 
需要注意的是,msOS是采用的是uC/OS-II,它属于RTOS,业务逻辑与菜单界面虽然是两个独立的任务,但并不是同时运行的,一个时刻只能运行一个任务,业务逻辑的任务优先级高于菜单界面,所以在没有消息的时候,业务逻辑任务(LogicTask)在PendMessageQueue函数中挂起等待消息到来,这个时候退到菜单界面任务(MenuTask)执行,一旦按键设备检测到按键并通过PostMessageToLogicTask发送消息,就会激活业务逻辑任务,让业务逻辑任务抢占菜单界面任务运行。按键设备的运行是基于系统节拍的,它是在中断中运行,优先级比任务高,不会被任务抢占。

文章评论1条评论)

登录后参与讨论

用户1678053 2014-7-23 10:04

看看

用户1657263 2012-7-27 09:46

NPM网络性能分析仪是一款集IPS入侵检测、网络故障诊断、网络性能分析功能于一体的网络测试仪

用户1657263 2012-7-23 09:31

NPM网络性能分析仪是一款集IPS入侵检测、网络故障诊断、网络性能分析功能于一体的网络测试仪

相关推荐阅读
凤舞天 2019-01-20 20:07
运放的压摆率与增益带宽积,到底是怎么个关系?
今天在ADI上寻找一颗高速运放,但是看了ADI的运放列表,把我弄闷了,到底是选择压摆率高的还是增益带宽积大的。如下图:LT6275是40M增益带宽积,但是压摆率却到2.2K,非常高,相反LT6203X...
凤舞天 2019-01-13 12:53
雨滴慧目图像识别项目的产品定义过程详解!
需求来源:      俊知焊齿机的合金刀头上料机构,采用基恩士的光纤激光识别,对于一些对称性比较强的合金刀头,容易误判,所以高端的焊齿机采用价格昂贵的图像识别系...
凤舞天 2019-01-01 19:50
半导体空穴到底怎么导电的?
我们熟悉的半导体材料,常用的是P、N类型的,硅(SI)中掺杂元素硼(B),因为B三价,相对于SI的4价来说,缺少一颗电子,把这个缺失的部分叫做空穴,这类掺杂B的叫P型材料。对应的,掺杂了元素磷(P),...
凤舞天 2018-12-22 22:13
孩子的教育不应该只是学习,更应该是去挑战
大家会发现,很多优秀的知识分子,自己水平很高,但是自己的孩子却教不好,很多老师的孩子,小学成绩很好,初中也不错,但是到了高中,大学之后,很多走向平庸,这个似乎违背我们的认知。现在自己有小孩了,也面临知...
凤舞天 2018-12-01 11:34
MOS管应用概述(四):基本参数
mos管的基本参数,大家熟悉的必然是Ids电流,Ron导通电阻,Vgs的阈值电压,Cgs、Cgd、Cds这几项,然而在高速应用中,开关速度这个指标比较重要。上图四项指标,第一项是导通延时时间,第二项是...
凤舞天 2018-12-01 10:36
努力之前请先学会思考
公司这么多年下来,有一些人一直很努力,也很听话,让他做什么就做什么,然而一直以来他们很少自己主动做事,挑头做事,往往都是打个下手,听命令行事,一天无忧无虑,看看手机上上网,乐呵呵的,估计睡觉很容易睡着...
我要评论
1
14
关闭 站长推荐上一条 /2 下一条