现在的位置:首页 > 软件开发行业资讯 > 文章详情

嵌入式系统之控制循环_东营软件开发

嵌入式系统之控制循环_东营软件开发 在这种设计中,软件有一个简单的循环,这个循环调用各个子程序,每个子程序管理硬件或者软件的某一部分。中断通常用来设置标记或者更新软件其他部分能够读取的暂存器。

系统使用简单的API来完成允许和禁止中断设置。如果处理得当的话,它能够在嵌套子程序中处理嵌套调用,在最外面的中断允许嵌套中恢复前面的中断状态。这种方法是实现Exokernel的一个最简单的方法。

通常在循环中有一些子程序使用周期性的实时中断控制一组软件定时器,当一个定时器时间到的时候就会运行相应的子程序或者设置相应的标志。

任何可能发生的硬件事件都应该有软件定时器的支持,硬件事件大概每万亿次出现一次错误,对于现代的硬件来说大概是一年发生一次,对于以百万计大规模生产的设备来说,遗漏一个软件软件定时器在商业上可能是灾难性的。

有时测试软件运行一组基于软件的安全定时器,它们周期性地复位硬件中的软件看门狗。如果软件错过一个事件,安全定时器软件将会捕捉到它。如果安全定时器出错,看门狗硬件将会复位系统。

可以使用指向每个状态机函数的指针实现状态机,函数可以用C++、C或者汇编语言等实现。变化的状态将不同的函数放到指针中,每次循环运行时都会运行函数指针。

许多设计人员建议每个循环读一次输入输出设备、并且保存得到的结果,这样可以保证逻辑过程的在一致的参数上运行。

许多设计人员喜欢将状态机设计成每个状态仅仅检查一到两项内容,通常是检查硬件事件和软件定时器。

设计人员建议多级状态机应该让低层状态机早于高层状态机运行,这样高层就能够根据正确的信息运行。

如内部燃烧控制这样的复杂功能通常根据多维表格进行处理,代码通常进行查表处理而不进行复杂的计算,为了减小表格的大小以及成本软件可以在条目之间进行差值运算。

在最小的单片机中,尤其是只有128位组堆栈的8051中,控制环允许好的连接器使用静态分配的数据覆盖本地变量。在这种机制中,离子程序调用树末端越近的变量得到的存储器地址越高。当开始一个新的分支的时候,它的变量可以在以前分支遗弃的空间中进行重新分配。

简单控制循环的一个主要缺点是它无法保证响应特定硬件事件的时间。

细心的设计可以很容易地保证中断不会被长时间禁止,这样中断代码就可以在非常精确的时间运行。

控制环的另外一个主要缺陷是增加新的特性的时候会变得复杂。需要花费很长时间的算法必须小心地进行分解以使得每次只有一小部分在主循环中运行。

这种系统的优势是它的简单性,并且在很小的软件上,循环运行地很快几乎没有人关心它是不可预测的。

它的另外一个优势是这种系统保证运行软件的质量,无法将不好的运行结果归咎为其他的操作系统。


----东营软件开发----

想要了解更多详情欢迎来电咨询18678812288,或登陆网址www.jnwzjs.net。联系人:王经理。