兰州:嵌入式软件开发中常用的三种架构

软件开发


浏览:1033 次

每个人都熟悉单芯片程序,但恐怕真正使用架构来考虑架构的人并不多。随着程序开发的不断增加,架构是非常必要的。

有三种app架构:

1.程序的简单前后顺序执行。大多数人都使用这种写作方法。不必考虑程序的具体结构,而是通过执行序列直接编写app。

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

3.操作系统,此方法应为app编程的最高级别。

1、 程序框架设计

前后顺序执行方法。这是初学者常用的程序框架设计方案。没有必要考虑太多。代码简单,或者不需要系统的整体实时性和并发性;初始化后,传递while(1){}或for(;;){}`循环不断调用它编写的函数。它不考虑每个函数执行所需的时间。在大多数情况下,函数中存在毫秒级延迟等待。

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

缺点:实时性能低。因为每个函数都有或多或少的毫秒级延迟,甚至1ms,这会导致其他函数的间隔执行时间的差异。虽然可以使用定时器中断,但前提是中断执行时间必须短。当程序逻辑的复杂性增加时,会导致后期维护人员的大脑混乱,很难理解程序的运行状态。

2、 时间片理论

前后顺序执行方法与操作系统之间的程序体系结构设计方案。设计方案必须帮助嵌入式软件开发人员达到更高的水平。在嵌入式软件开发过程中,如果遇到以下几点,设计方案可以说是最佳选择,适用于程序更复杂的嵌入式系统;

当前的需求设计根本不需要操作系统。

任务功能不需要一直执行,但有一个间隔(例如,按键通常需要软件防抖。初学者通常会延迟大约10ms来判断,但10ms极大地浪费了CPU资源,CPU可以在这段时间内处理许多其他事情)

需要实时。

此设计方案需要使用计时器。通常,计时器为1ms(计时时间可以随意确定,但如果中断太频繁、中断太长、实时性能较差,则效率较低)。因此,应考虑每个任务函数的执行时间,建议不要超过1ms(如果可以通过程序优化缩短执行时间,则最好进行优化。如果无法优化,则任务的执行周期必须比任务花费的时间长得多)。同时,主循环或任务函数中必须没有毫秒级延迟。

3、 操作系统

嵌入式操作系统(EOS)是一种广泛使用的系统软件。过去,EOS主要用于工业控制和国防系统。对于单片计算机,通常使用UCOS、FreeRTOS、RT-Thread Nano和RTX等几种抢占式操作系统(其他操作系统如Linux不适用于单片计算机)

操作系统和“时间片理论”,就任务执行而言,操作系统不需要为每个任务花费太多时间。它需要设置每个任务的优先级,以在高优先级任务就绪时抢占低优先级任务;操作系统相对复杂,因此这里不详细描述。

4、 摘要

从上面的比较中,我们可以看出时间片方法有很大的优势。它具有前后阶段顺序执行方法和操作系统的优点。结构清晰、简单且易于理解,因此这是一种常用的单片机设计框架

统软云(甘肃先秦网络科技研究中心)成立于2000年,公司位于兰州市七里河区。拥有甘肃先秦网络研究中心和甘肃三民银行众创空间两个二级服务机构。公司主要从事应用软件开发、互联网运营等业务