蓝冠官网《Q374919 》本文是关于软件开发,蓝冠官网 特别是嵌入式系统和实时应用程序编程的系列文章的第一篇。以后的文章自然会不时地提到XMOS技术,所以在开始之前,先看看XMOS适用的软件世界是很有意义的。
本文是关于软件开发,特别是嵌入式系统和实时应用程序编程的系列文章的第一篇。以后的文章自然会不时地提到XMOS技术,所以在开始之前,蓝冠注册 先看看XMOS适用的软件世界是很有意义的。
软件是一个神奇的东西。编程语言具有很强的表达能力,编译速度很快,有许多用于开发的抽象和工具,而且更新设备的功能也很快很容易。这意味着系统中由软件驱动的任何部分都是系统中最灵活的部分——一个神奇的部分。
然而,有一个地方软件真的很糟糕:快速实时处理。这是一种处理,当任务必须在一些外部事件之前完成时,蓝冠招商 例如,在屏幕刷新显示之间操作图像数据,或根据一些快速时钟向外部I/O针脚提供数据。
当然,软件也可以用于此,但所有美妙的易用性和灵活性似乎都消失了。软件开发变得很难维护。
的问题
那么,为什么软件在面对实时或界面驱动的应用程序时会出现问题呢?这些问题可以分为以下几类:
问题1:多任务
很自然,处理器可能要尝试执行多个任务,即使是最简单的问题。然而,处理器通常不能同时做一件以上的事情。即使是传统架构下的多核处理器在硬件上也只能同时做两到四件事。
问题是,在一个自然的单线程处理器上的多任务涉及到在处理器内和外以块的方式调度任务的软件调度。从单个任务的角度来看,日程安排意味着你不知道自己什么时候在家,什么时候出去,这使得它很难满足实时的约束。
问题2:中断
即使对于“单线程”应用程序,处理器也可能同时做多件事情。中断提供了一种隐式的多任务处理形式。中断触发(例如为I/O处理程序提供服务)与调度程序切换出任务是相同的。