控制器|嵌入式开发:嵌入式基础——不要忘记实时性

控制器|嵌入式开发:嵌入式基础——不要忘记实时性

微控制器每天都变得越来越强大 , 这使得许多嵌入式开发人员忘记了资源受限的本质 。 微控制器不是一般的计算设备 , 可以像现代个人电脑或手机一样拥有无限的内存和时钟速度 。 大多数基于微控制器的应用是为实时应用而设计的 。

实时应用程序有必须满足的最后期限 , 否则系统性能可能会下降或更糟 , 系统可能会失败! 将实时系统与 Windows、Mac OS 或 Linux 等 PC 操作系统进行比较 , 在这些操作系统中 , 有人可能会单击并等待数十秒 , 然后系统才会响应 。 实时嵌入式系统中不可接受的行为 。
实时嵌入式系统由两种不同的截止期类型组成;软硬实时期限 。 软实时截止时间是应该总是被满足的系统定时截止时间 , 但是如果由于某种原因它们没有被满足 , 则用户或系统降级 , 但是系统总体上仍然起作用并且执行其目的 。 软实时期限的一个例子是对按钮是否被按下进行采样 , 或者可能在监视器上为用户显示低优先级信息 。
【控制器|嵌入式开发:嵌入式基础——不要忘记实时性】另一方面 , 硬实时期限对系统非常关键 。 错过严格的实时截止日期意味着系统可能会发生灾难性的事情 。 例如 , 踩下制动踏板 , 而不是在100毫秒内响应 , 制动器在几秒钟后接合 。 错过最后期限是系统失败的标志 。

对于相当多的嵌入式开发人员来说 , 资源受限的微控制器已经变得不那么资源受限了 。 十年或二十年前 , 开发人员通常开发几十千字节代码空间和几千字节RAM的系统 。 今天 , 高端微控制器有1兆字节的闪存空间和256千字节或更多的RAM 。 时钟速度超过200 MHz , 这使得这些微控制器感觉像是通用CPU , 开发人员不再需要关心系统定时 。
实时、基于时间的软件是实时嵌入式系统的全部 。 今天有太多的开发人员开始完全忽略时间 。 假设有足够的CPU马力来处理应用程序 , 开发人员开始忽略合理的工程原则 。 例如 , 我见过许多系统 , 甚至高端系统 , 其中开发人员任意选择任务优先级 , 忽略测量任何与时间相关的东西 , 然后当他们的系统随机地意外运行并错过最后期限时 , 他们会感到困惑 。
每个微控制器都受到某种形式的资源限制 , 无论是在简单的Cortex-M0+还是复杂的Cortex-M4上开发 , 开发人员都必须花时间检查他们的系统、测量时间并监控他们的任务执行情况 。 无论是初学者还是有经验的嵌入式开发人员 , 都需要记住 , 我们是在资源受限的系统上工作 , 了解每个功能、组件和中断的时序对于交付一个无论在何种情况下都能按预期运行的全功能系统至关重要 。