VSOC-Obudai/secure-gateway

GitHub: VSOC-Obudai/secure-gateway

面向 Infineon AURIX TC3xx 车规微控制器的实时 CAN 总线安全网关固件,提供消息监控、过滤与诊断功能。

Stars: 0 | Forks: 0

# 汽车 CAN 总线安全网关固件 针对 Infineon AURIX TC37x (TriCore) 微控制器的裸机安全网关固件,旨在用于汽车环境中的实时 CAN 总线监控。 该固件跨三个 TriCore CPU 核心运行,通过硬件事件实现同步启动。Core 0 负责应用程序循环,而 Core 1 和 Core 2 保留用于未来的并行工作负载。CAN 子系统实现了使用 FIFO 队列的中断驱动 TX/RX 管道、具有可配置 ID 范围接受的硬件消息过滤,以及用于跨核串行输出的 ISR 安全自旋锁同步。四个不同的中断优先级分别独立处理消息传输、接收、丢失检测和协议错误分类——每个都映射到专用的中断线和 CPU0 服务。 串行 I/O 通过 ASCLIN 以 115200 波特率实现,采用直接寄存器级 TX 控制以实现确定性字符输出,绕过标准 FIFO 路径以确保在早期初始化期间的日志可见性。构建系统使用 CMake 与 Ninja 以及自定义的 tricore-elf-gcc 工具链文件,支持 Debug、Profile 和 Release 预设。固件部署通过 AurixFlasher 使用生成的 Intel HEX 输出完成。 ### 前置条件 #### AURIX Development Studio & GCC 编译器 请确保你已安装 AURIX Development Studio(我们需要其中的编译器工具集):[此处](https://www.infineon.com/design-resources/platforms/aurix-software-tools/aurix-tools/aurix-development-studio) 将编译器工具集添加到你的 PATH 环境变量中。我添加了这些: - C:\Infineon\AURIX-Studio-1.10.2\tools\Compilers\tricore-gcc11\bin - C:\Infineon\AURIX-Studio-1.10.2\tools\make - C:\Infineon\AURIX-Studio-1.10.2\tools\AurixFlasherSoftwareTool_v1.0.8 - C:\Infineon\AURIX-Studio-1.10.2\tools\Compilers\Tasking_1.1r8\ctc\bin - C:\Infineon\AURIX-Studio-1.10.2\tools\Compilers\sdcc_421\bin #### CMake & Ninja(更好的 C++ 体验) (在 Windows 上)确保你的 PATH 环境变量中包含以下路径 - C:\Users\AppData\Local\Programs\Python\Python312\Scripts\ - C:\Users\\AppData\Roaming\Python\Python312\Scripts - C:\Users\\AppData\Local\Programs\Python\Python312\ 你需要 CMake 和 Ninja。你可以使用 Python 安装它们。 ``` $ pip3 install cmake ninja ``` ### 编译与构建 你可以像这样查看可用的预设。 ``` $ cmake --list-presets ``` 你可以像这样执行整个构建管道(工作流): ``` $ cmake --workflow --preset tricore-debug ``` 或者,你可以单独运行每个阶段。通常一个 CMake 阶段包括 1. configure(配置):分析项目和环境并生成本地构建文件 `cmake -S . -B build` 2. build(构建):编译并链接目标 `cmake --build build` 3. test(测试):执行并验证单元测试 `ctest --test-dir build --output-on-failure` 4. package(打包):部署输出 `cmake --install build --prefix /opt/my_project` 在这种情况下,测试和打包是有意未实现的。 为什么?CMake 在工作流中没有实现刷写功能(这不是标准流程),这需要手动调整和编写脚本。这不值得……如果你愿意,可以稍后再做。 1. Configuration(配置)(生成平台无关的构建文件) ``` $ cmake --preset tricore-debug ``` 2. Build(构建) ``` $ cmake --build --preset tricore-debug ``` ### 如何刷写 编译项目并导航到 bin 文件夹。 $ cd /build//bin ``` $ AurixFlasher -hex ./aurix-sec-gtw-http-server.hex ``` ### 终端(查看 UART 日志) 1. 安装 PuTTY 2. 在设备管理器中检查你的 COM 串口线路名称(通常是 COM4) 3. 在你的 PuTTY 中设置:连接类型:Serial,速度:115200 ### 文档 硬件规格和文档可在 docs 文件夹中找到。
标签:ASECLIN, Bash脚本, CAN FD, CAN总线网关, CMake构建, Infineon AURIX, Intel HEX, ISR安全, Ninja构建, TC3xx, TriCore微控制器, UART诊断, 中断驱动, 信息娱乐安全, 固件开发, 多核同步, 寄存器级编程, 嵌入式固件, 报文过滤, 报文队列, 汽车电子, 汽车网络安全, 硬件信号处理, 裸机编程, 车联网安全, 车载网络, 防御性驾驶