程序小白
认证:优质创作者
作者动态
单片机应用与驱动开发之路:这时的你只需要扣动扳机。
1星期前
串口通信CRC校验大小端之分
3星期前
小小调度器——开局default,优雅总藏于细节之中
04-02 09:23
小小调度器——调度器核心的纯C实现
04-01 14:09
小小调度器——原来C代码还能这么写,原作者没少挨打吧!
03-27 15:42

单片机应用与驱动开发之路:这时的你只需要扣动扳机。

     身为单片机开发领域小白的我也是在多年以后才深刻的理解,为什么说驱动和应用分离的方式是一种艺术。他是真的能够提高生产力的发明,同样的原以为只有应用linux开发才会用到的东西,居然也也在RTOS上实现了。愿我们的牛马之路从此远离在车身上车出一个轮子的操作。。。从今以后我们一人饰两角(应用工程师和驱动工程师,可惜只能拿一份工资),利用强大的精神力将自己分裂成两个人写驱动的专注写驱动,写应用的专注写应用,千万不要再合体了。(扯远了。。。进入正题。。。)

      程序要实现其功能要有四个部分组成:应用(这个你来写)、驱动框架管理层和框架层(RTOS来实现)、驱动层(身为伟大无私奉献的你或他)、硬件(单片机,最终的执行者)如下图所示:

      举个栗子,基于上面的构架,一个应用程序需要通过串口发送一串数据出去是如何实现的呢。

     应用程序:兄弟(RTOS驱动框架),UART5这个家伙在不在?

     RTOS驱动框架:在的,等下我把他的微信号(返回句柄)发给你。

     应用程序:添加UART5这个家伙的微信(根据返回的句柄,open这个外设)。

     应用程序:兄弟帮我用115200、8、N、1的格式发送一段消息出去(通过control配置这个外设)。

      应用程序:兄弟帮我发一条消息出去,内容啥时候还我钱(通过write函数写入数据操作)。

       应用回调函数:再等等啊,一有钱马上还你。。。(收到消息的应用,松了一口气,对方还活着。。。)

       应用程序:好了,兄弟,下次有需要我再联系你,无情的删除了UART5的联系方式(通过close关闭了)。

       应用到此结束了,把应用程序扔进一个定时任务中,设定时间为一天,这样他就可以每天帮你催一次款。

      具体的原理流程如下:

     你并不需要关注I/O管理器是如何实现的,也不需要关注设备驱动程序是如何注册到I/O设备管理器的,这个时候的你就当自己只是一个应用工程师,你只需要使用rt_device_xxx()类型的API就完成了应用的功能的实现。

    当然后面我们会展开降设备驱动是如何编写的,如何注册到I/O设备管理器的,I/O设备管理器又是个啥?到时候你只需要简简单单的精神分裂下就可以听懂了。

     欲知后事如何?且听下回分解。

      

声明:本内容为作者独立观点,不代表电子星球立场。未经允许不得转载。授权事宜与稿件投诉,请联系:editor@netbroad.com
觉得内容不错的朋友,别忘了一键三连哦!
赞 2
收藏 4
关注 120
成为作者 赚取收益
全部留言
0/200
成为第一个和作者交流的人吧