【发布时间】:2012-09-21 02:51:46
【问题描述】:
在工作中,我们正在讨论新平台的设计,其中一位高层管理人员表示它需要运行我们当前的代码库(Linux 上的 C),但需要实时,因为它需要在不到一秒的时间内做出响应到各种输入。我指出:
- 这并不意味着它需要“实时”,只是它需要更快的时钟和更精简的中断处理
- 要考虑的关键点之一是正在使用的操作系统。他们想坚持使用嵌入式 Linux,我指出我们需要一个 RTOS。由于内核/用户空间内存分裂,使用 Linux 会阻止“实时”,因此 I/O 是通过文件和套接字完成的,这会引入延迟
- 我们真正需要确定的是它是否需要确定性(例如,需要在 90% 的时间内在
在我看来,如果第 3 点是真的,那么它需要是一个实时系统,然后第 2 点是最大的考虑因素。
我有信心回答,但后来我在想……其他人怎么看? 我是在正确的轨道上还是我错过了什么?
“实时”系统和“确定性”系统之间有什么区别吗?除了 RTC 和 RTOS,我是否缺少执行真正实时系统所需的任何主要内容?
期待一些好的回应!
编辑:
目前收到了一些不错的回复,看来对我的系统和需求有点好奇,所以我会为感兴趣的人添加一些注释:
- 我公司销售的单位是几十万,所以我不想在价格上过度杀戮
- 通常我们销售主处理器板和独立显示器。还有一个连接的其他 CAN 设备网络。
- 板(当前)运行设备,还充当网络服务器,将基本 XML 文档发送到最终用户的显示器
管理层希望“快速”(真正约束来自可以通过 CAN 连接的设备。这些设备通常是电机控制设备,其要求包括“必须在 200 毫秒内做出响应”。
【问题讨论】:
-
实时计算机意味着硬时间限制,而不是仅满足 90% 的时间限制。时间限制是不是很难?这决定了您需要哪种系统。
-
我会说这取决于您平台的预期数量。与尝试移植到 RTOS 并在没有地址空间保护之类的东西的情况下生活相比,保留现有的 linux 代码并购买一个非常快的处理器要容易和快捷一百万倍。但如果产品量很大,那么 CPU 的成本就更需要考虑了。
-
@TJD - 即使使用最快的处理器也无法保证会满足约束条件。据我了解,具有 RTC 和高时钟速率的 uC 系统将(可能)成为操作系统的瓶颈。
标签: c embedded real-time definition deterministic