实时数据库(RT)
概述
对于航空电子设备、自动驾驶系统、铁路和关键控制系统等领域的关键任务和安全关键型系统软件,时间至关重要。这些系统需要确定性、可预测且完全可控的数据库管理,以支持现代实时操作系统的时间和空间分区及实时调度。由于不可中断且对及时执行有严格要求,这些系统的数据管理必须施加严格的时间约束。
SmartEDB RT 是首个商业级、支持时间感知的数据库管理系统,确保事务的可预测执行。它是一种确定性的硬实时数据库系统,通过时间感知的事务处理来保证数据的时间有效性。
SmartEDB RT 在传统 SmartEDB 的基础上增加了事务优先级和截止时间调度功能。作为嵌入式数据库,它提供数据存储、检索和操作服务。与传统 SmartEDB 不同,eXtremeDB/rt 强调数据的时间一致性,而不仅仅是内部一致性。其内核通过实时事务管理器确保事务在截止时间内完成或撤销,但不会超时。
SmartEDB RT 内核的所有组件都具备时间感知能力,并采用高优先级最早截止期限优先(EDF)算法和优先继承(PI)算法进行事务调度。通过复杂的回滚机制,eXtremeDB/rt 确保事务只能在设定的截止时间内修改或检索数据,否则将被中断并强制回滚,以满足时间约束。
v1.2 新特性
- 实时性能监视器
- 异构多处理器系统上的共享内存数据库
- 在线备份重构
- 支持新平台(包括 NXP 和 STM 硬件;实时操作系统 Nucleus™、Azure ThreadX、MICROSAR)(查看完整支持列表)
- 性能和占用空间优化、缺陷修正
分发内容
SmartEDB RT 软件包包含以下组件:
- 数据库内核的源代码
- 主机工具(包括源代码和目标代码)
- 实时示例代码(Linux 桌面版位于 eXtremeDB_rt/samples/26-realtime,其他平台位于 eXtremeDB_rt/samples)
通过命令 make TARGET_PLATFORM=<平台>
可以为特定的目标平台构建目标代码。
此外,还提供了一个适用于 Linux 桌面环境的专用软件包。
SmartEDB RT 软件包快速入门指南
Deos™
将 SmartEDB 软件包的内容提取到任何 OpenArbor 工作区之外的目录中。
创建一个新的 OpenArbor 工作区,并依照 OpenArbor 用户指南添加适合目标的 Deos™ 平台项目。若使用实际电路板而非模拟器,请务必更新特定于平台的设置(例如 lwip.config)。
将解压包中的 SmartEDB_rt/SmartEDB 目录复制到工作区的顶层目录。
将 SmartEDB_rt/samples 目录中的一个示例复制到工作区的顶层目录。可以复制多个示例,但每次目标加载中只能包含一个。
将所选示例添加到 Deos™ 平台项目的依赖项列表中,以便将其包含在目标加载中。
更新目标加载并启动视频流以观察示例输出。
修改示例
这些示例包含预构建的 SmartEDB 数据库模式。如果模式发生更改,则需要使用软件包的 host/bin 目录中的 mcocomp 实用程序进行重建,例如:
mcocomp -x32 -p /path/to/sample/src /path/to/sample/schema.mco
这些示例旨在多种平台上运行。然而,这些平台的性能可能会有很大差异。在某些情况下,可能需要调整所提供的 PD XML 文件以实现最佳性能。
callback-deos 示例
此示例演示了“回调”方法的事务截止期限执行。该示例反复执行写入事务,同时重新调整截止期限。它记录并显示最佳和最差的事务执行时间。
reference_app 示例
此示例是一个演示应用程序,由多个任务组成,这些任务同时运行只读和读写事务。它设计得简单但可配置。更多详细信息,请参阅示例目录中提供的 README 文件。
Linux 桌面版
- 解压 tarball
cd eXtremeDB_rt
make
- 可选:
make MCO_BUILD_LOG=full
查看详细的构建日志(有关构建系统的描述,请参阅“在 Unix-Linux 上构建 SmartEDB 库”)
Linux 嵌入式
- 解压 tarball
cd eXtremeDB_rt
make TARGET_PLATFORM=toolchain-name
- 可选:
make MCO_BUILD_LOG=full
查看详细的构建日志(有关构建系统的描述,请参阅“在 Unix-Linux 上构建 SmartEDB 库”)
INTEGRITY (命令行)
- 解压 tarball
cd eXtremeDB_rt
{INTEGRITY installation path}/gbuild
INTEGRITY(MULTI IDE)
- 解压 tarball
- 启动 MULTI
- 打开 eXtremeDB_RT 项目文件
- 菜单栏 File - Open Project - default.gpj
- 可选:设置目标平台
- 菜单栏 Edit - Set Build target - Choose your target board
- 构建项目
- 菜单栏 Build - Build Top Project default.gpj
FreeRTOS™
这是适用于 ARM-A3 上“通用”FreeRTOS™ 的 SmartEDB RT 分发版。要构建数据库内核,请使用以下设置:
TARGET_OS=FreeRTOS
将目标操作系统传递给构建系统TARGET_PLATFORM=toolchain
定义用于构建kernel/applications的工具链MCO_FREERTOS_ROOT_DIR=path
定义了 FreeRTOS 源代码树(最顶层目录)的路径MCO_FREERTOS_PORT_DIR=path
定义了目标板端口文件的路径MCO_FREERTOS_PROJECT_DIR=path
定义了项目配置文件(FreeRTOSConfig.h)的路径
例如:
$ make TARGET_OS=FreeRTOS \
TARGET_PLATFORM=arm-none-eabi \
MCO_FREERTOS_ROOT_DIR=/home/user/FreeRTOS \
MCO_FREERTOS_PORT_DIR=/home/user/FreeRTOS/FreeRTOS/Source/portable/GCC/ARM7_AT91FR40008 \
MCO_FREERTOS_PROJECT_DIR=/home/user/FreeRTOS-package/FreeRTOS/FreeRTOS/Demo/ARM7_AT91FR40008_GCC
此外,为了将数据库内核与数据库感知型应用程序相连接,必须设置目标 BSP。请咨询您的电路板制造商以获取说明。