嵌入式软件开发常用的3种架构

摘要:对于单片机程序来说,大家都不陌生,但是真正使用架构,考虑架构的恐怕并不多,随着程序开发的不断增多,架构是非常必要的。

应用程序的架构大致有三种:

1、简单的前后台顺序执行程序,这类写法是大多数人使用的方法,不需用思考程序的具体架构,直接通过执行顺序编写应用程序即可。

2、时间片轮询法,此方法是介于顺序执行与操作系统之间的一种方法。

3、操作系统,此法应该是应用程序编写的最高境界。

一、程序框架设计

1、前后台顺序执行法

这是初学者们常用的程序框架设计方案,不用考虑太多东西,代码简单,或者对系统的整体实时性和并发性要求不高;初始化后通过while(1){}for(;;){}`循环不断调用自己编写完成的函数,也基本不考虑每个函数执行所需要的时间,大部分情况下函数中或多或少都存在毫秒级别的延时等待。

  • 优点:对于初学者来说,这是最容易也是最直观的程序架构,逻辑简单明了,适用于逻辑简单,复杂度比较低的软件开发。

  • 缺点:实时性低,由于每个函数或多或少存在毫秒级别的延时,即使是1ms,也会造成其他函数间隔执行时间的不同,虽然可通过定时器中断的方式,但是前提是中断执行函数花的时间必须短。当程序逻辑复杂度提升时,会导致后来维护人员的大脑混乱,很难理清楚该程序的运行状态。

  • 4
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
嵌入式软件开发中实现串口通信软件架构的解耦可以通过以下几个步骤来实现: 1. 抽象串口接口:定义一个独立于具体串口硬件的抽象接口,例如SerialPortInterface,其中包含常用的串口操作方法,如发送数据、接收数据、设置波特率等。 2. 实现串口适配器:针对不同的具体串口硬件,实现对应的串口适配器类,例如SerialPortAdapterA、SerialPortAdapterB等。这些适配器类继承自SerialPortInterface,并实现其中定义的方法。 3. 设计串口管理模块:创建一个串口管理模块,负责管理所有的串口通信。该模块可以包含如下功能: - 动态检测可用串口:通过遍历系统中的串口设备,自动识别并初始化可用的串口适配器。 - 提供统一的接口:封装串口适配器的具体操作,提供统一的接口给上层模块使用。 - 提供事件机制:定义事件回调机制,当串口接收到数据时,通过事件通知上层模块进行处理。 4. 定义消息传输协议:设计一个消息传输协议,定义数据包的格式和规则。可以使用固定长度、起始标识和校验等方式来确保数据的完整性和正确性。 5. 实现业务逻辑模块:在上层模块中,根据具体的业务需求,编写相应的业务逻辑代码。通过串口管理模块提供的接口来进行数据的发送和接收,而不需要关心具体的串口硬件和通信细节。 通过以上步骤,可以实现串口通信软件架构的解耦,将串口硬件的操作与业务逻辑模块进行解耦,提高了代码的可维护性和可扩展性。同时,也方便了对不同串口硬件的适配和切换。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值