功能安全和信息安全单元 (SSU) 是 C29x 器件中的集成模块,可为应用代码启用运行时功能安全和网络安全保护。借助 SSU 的功能,能够在硬件中实现强大的无干扰 (FFI) 功能、安全任务隔离、调试安全和固件更新保护,并保持实时控制系统所需的低延迟性能。SysConfig 工具是 MCU SDK 的一部分,提供了一个易于使用的图形用户界面 (GUI),用于配置 SSU 和在用户应用中启用功能安全和信息安全保护。本应用手册探讨了 SSU 的各种功能,以及嵌入式系统开发人员如何使用 SysConfig 在实时应用中设计和实施运行时功能安全和信息安全保护。
E2E™, Code Composer Studio™, and C2000™are TMs ofTI corporate name.
FreeRTOS®is a reg TM ofAmazon Web Services, Inc.
AUTOSAR®is a reg TM ofAUTOSAR Development Partnership.
Other TMs
德州仪器 (TI) C29 CPU 为实时控制应用提供出色的性能。C29 采用 128 位超大指令字 (VLIW) 架构、64 位定点和浮点运算、超低延迟处理和硬件中断优先级,可以很好地运行要求严苛的汽车和工业控制应用。SSU 与 C29 CPU 相结合,可在不影响实时性能的情况下帮助系统设计人员满足实时控制应用中严格的现代功能安全和信息安全标准。利用 SSU,用户可以实现真正的 FFI、安全任务隔离以及高级调试和固件更新安全性,同时保持要求严苛的实时控制系统所需的高速和低延迟处理。
本应用手册介绍了如何使用 C29x CPU 和 SSU 在实时控制系统中实现运行时应用程序的功能安全和信息安全。C29x SSU 架构提供了动态上下文相关内存保护、多个专用 CPU 栈指针的安全任务隔离以及多用户调试 ZONE 以实现信息安全。
有关特定器件上 C29x CPU 和 SSU 的详细说明,请参阅器件特定数据表和相应的技术参考手册 (TRM)。
本应用报告是使用 F29H85x 系列器件撰写的。MCU SDK 和 SysConfig 工具支持所有 F29x 平台器件。
TI E2E™ 社区还提供了其他支持。
SSU 是 C29 CPU 子系统不可分割的一部分,提供上下文关联内存保护和运行时代码隔离、调试安全性和安全固件更新。SSU 充当 C29 CPU 与系统其他部分之间的防火墙,执行用户访问保护策略,管理调试访问和闪存控制器操作。图 3-1 展示了集成在 C29 子系统中的 SSU 的简化概览。SSU 的可用功能可用于在实时控制系统中实现真正的 FFI,而不会增加软件开销,否则会对实时性能产生负面影响。利用 SSU,系统设计人员可以在同一个 CPU 内核上组合多个控制和通信功能,同时保持这些功能相互隔离。这可以减少实现系统目标所需的内核数量,或有助于实现更高的系统安全完整性级别。
本节包含关键概念的定义。
功能安全和信息安全单元使系统设计人员能够在实时嵌入式系统设计中实现与功能安全和信息安全相关的重要目标。这些目标包括:
为应用程序配置 SSU 的第一步是确定所需的系统分区。SSU 为应用程序子系统的分区提供了三个层次:
这种分区使第三方开发商能够在同一芯片上开发、调试和维护应用程序功能,而无需访问主用户的代码和数据资产。此外,每个用户 ZONE 还提供两级调试授权:
例如,第三方开发人员等辅助用户可在 ZONE2 中调试应用模块,同时也可获得 ZONE1 的部分调试访问权限,这样辅助用户就能在上下文中有效调试应用,而无需访问主用户的资产。
每个器件都有 3 个可用的用户 ZONE:ZONE1、ZONE2 和 ZONE3。ZONE1 是主用户 ZONE;ZONE2 和 ZONE3 是辅助用户 ZONE。
.bss
、.const
和其他包含数据和变量的链接器输出段。CPU1.LINK1
具有一些特殊的固定权限,除了 AP 定义的保护外,还能访问某些系统配置寄存器。CPU1.LINK2
是系统安全根 LINK (SROOT),具有特殊的固定权限,可访问系统配置寄存器和覆盖控制。该 LINK 通常在 RTOS 级别执行特权主机功能。图 6-1 展示了单 CPU 单 ZONE 系统上的 SSU 系统分区示例。在该系统中,RTOS 在 STACK2.LINK2
中运行,负责初始化系统配置、设置外设和中断,并启动主执行循环。有两个控制功能:Control Loop1 和 Control Loop 2。这些控制功能中的每一个都放在单独的应用模块 (LINK) 中,并且两个应用模块放在同一沙盒中。在此系统中,两个控制功能之间需要物理安全隔离,但不需要信息安全隔离。第四个模块承载通信代码,例如 UART 或 CAN-FD 代码。由于来自外部接口的数据可能会对系统中的其他功能构成安全威胁,因此该模块被置于单独的沙盒中。最后,第五个模块包含系统中所有其他模块共享的公共代码函数。与该模块相关的 LINK 被定义为其他 LINK 的访问保护继承 LINK (APILINK)。通用代码模块也被置于单独的沙盒中,以保持与系统其他部分的信息安全隔离(同时保持继承的权限)。
SysConfig 完全支持多核应用。内置内存分配器工具可自动管理多个 CPU 上与应用模块相关的内存区域,还可管理整个器件的外设分配。SysConfig 工具还包括共享内存功能,用于定义可在同一 CPU 或多个 CPU 上的模块之间共享的内存区域。