zoukankan      html  css  js  c++  java
  • 关于裸机编程的框架整理(一)

    之前写过单片机状态机的框架编写,软件定时器的编写等,这些都是在中大型裸机框架中经常用到的,否写就无法很难写好软件。

    本文则再次整理一些裸机框架的一点思路。

    毫无疑问,裸机里面,状态机、软件定时器都是要用到的,但是在整个工程里面,需要合理设计框架,合理利用状态机和软件定时器,至关重要了。

    裸机就是大循环+各种中断。
    中断里面,就是快进快出,这个是普遍使用的原则;除非大循环啥事不干,则可以在中断里面处理事情,但这种情况相对来说,还是少数。

    大循环等于单线程。因此,通常情况下,任务都在大循环里面处理的,任务里面细分很多小任务,小任务的处理速度就比较重要了。
    比如,任务中有5个任务,每个人任务里面处理不同的事务,如果其中一个任务的处理时间较长,则会拖累其他的4个任务,哪怕其他4个任务,都是处理非常快,但是由于第5个任务处理很慢,导致系统性能就降低了很多。
    因此,我们需要将处理慢的这个任务进行优化。

    优化的方式可能有:
    1、如果任务里面有for循环,比如读取很多通道的传感器采集的信息,那么可以一次只读一个,尽管读完所有的信息时间变慢了,但是整体性能提升了,不会阻塞后续的任务执行,而且通常传感器读取的信息需求不是特别快,能满足要求就行,1s内读取所有的信息未尝不可。

    2、如果一个任务需要很长的时间才能执行一个完整的周期,那么干脆就使用状态。如果485主从机通信,这种情况下通常就是状态机来执行。

  • 相关阅读:
    C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files/编译错误
    连接数据库配置 System.Data.Common.DbProviderFactory
    c# socket 发送邮件
    code first 数据迁移
    adb shell monkey
    汇编语言学习小总结
    zookeeper快速安装配置
    编译自己的Hadoop Eclipse插件
    在Windos上使用Eclipse进行Hadoop开发的环境搭建
    Hive安装配置以及整合HBase和hadoop
  • 原文地址:https://www.cnblogs.com/CodeWorkerLiMing/p/14458468.html
Copyright © 2011-2022 走看看