MCU程序框架

       参加工作3年以来辗转于不同MCU编写的过程中,每使用一款新的MCU总要重新开发,但是不同MCU的差异性导致程序编写进度缓慢,程序混乱难以维护。因此我意识到程序框架的重要性,它能帮助你将程序从不同硬件环境中抽离出来,独立运行,从而使得程序一致性强易于维护和移植。在此我发表一下自己的薄见,如有设计不合理之处,请各位大佬指出。

       首先应先依据功能划分将不同功能封装到不同的C文件中,形成对应的外围驱动文件,该驱动文件负责与硬件层进行沟通,其中和硬件挂钩的程序尽可能统一封装到初始化和销毁2个函数中,其他需要贯穿整个驱动文件的程序应写成宏的方式(例如GPIO电平控制) ,使其方便在不同平台移植。

       外围驱动文件只能调用硬件资源,例如中断、定时器。其中,不同的驱动文件之间禁止调用!当需要与其他的外围驱动文件进行信息交换时,应该向消息平台发送请求,由消息平台统一进行调度。

       消息平台实际上是一个消息队列,所有的消息按照时间顺序依次进入,由主循环进行消息处理。为保证系统的实时性,消息应尽可能保证在短时间内完成,对于一些耗时长的消息可采用切片处理的方式,时间一到就将未处理完的消息重新压入队列,并开始处理下一个消息。消息平台的优先级应低于所有中断的优先级。对于中断来说,中断只负责接收数据并将数据通过指针的方式发送给消息平台,由消息平台统一处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值