您好、TI 团队:
我目前正在尝试在我们的项目中实现和使用互连防火墙。 在开发过程中出现了几个问题、我想向您提出这些问题。
我们需要使用防火墙作为针对 MPU 的附加安全措施、用于将内核彼此分离。
我对防火墙故障的异常处理特别感兴趣。
使用中的 SDK 版本08.06.43
此帖子中提及的文档:
[A]技术参考手册 AM64x/AM243x、文献编号 SPRUIM2F
[b] TISCI 08.06.04 software-dl.ti.com/.../index.html
[c] AM243x MCU+ SDK 08.06.00用户指南 dev.ti.com/.../node
为了进行测试,我已经在运行 FreeRTOS 的 main()中从 R5F_0_0配置了用于 DDR16SS0 (防火墙 ID 1)的防火墙。
我配置了7个区域、这些区域与特定内核和用途相关联(最多2个内核的专用共享内存)、以及1个后台区域、该区域跨越整个2GB 的 DDR 空间。
当进入初始 FreeRTOS 任务时、我通过从防火墙存储器中读取来引发故障。
1.防火墙配置
[C]建议使用中的防火墙驱动程序 。 检查实现驱动程序通过直接写入寄存器来配置防火墙区域。
如[B]-FirewallFAQ 所述、不属于 DMSC 的防火墙仅可通过 TISCI 接口编程、并且"防火墙配置寄存器仅可由系统固件写入"。
弟子:这些事实不是互相矛盾的吗? 对防火墙进行编程的首选方式是什么?
2.防火墙异常寄存器
[a]中的第3.3.2.1章提到多个寄存器中的多个位:
- CBASH_EXCEPTION_LOCKEG_CONTROL[0]:DISABLE_F
- cbass_exception_logging_control[1] disable_pend
- cbass_exception_pend_set[0] pend_set
- cbass_exception_pend_clear[0] pend_CLR
我在3.4系统互连寄存器下的子章中找不到任何引用、并且在[A]中从未再次提到确切的命名。
问题:在哪里可以找到这些寄存器? 它们是否受 DMSC 控制?
3. CBASS 寄存器与 CBASS_FW 寄存器
第3.4章文档[A]中的"系统互连寄存器"包含被称为 CBASS 寄存器和 CBASS_FW 寄存器的子章。
从0x3A000000读取 CBASS0_pid 寄存器时、返回合理的值。 读取 CBASH_FW0_pid 时、返回0
问题:防火墙功能描述指的是这些寄存器集合中的哪一个? 应使用哪一个进行错误处理?
问题:通过从防火墙存储器中读取来引发防火墙异常时、从数据中止处理程序读取时、CBASS_EXCEPTION_LOGING 寄存器都保持0x0。 如何检索例外信息?
4. cbass_exception_logging_DATA0
在[a]中对该寄存器的描述是"传入事务的低32个地址位(31:0)"
问:这里到底是什么意思是"传入交易"? 在数据中止模式下、此字段与 DFAR 值是否相关?
5. CBASS0_EXCEPTION_LOGGING 寄存器包含在进入 main ()的断点停止时的数据
在对 TMDS243EVM 进行下电上电并在 R5F_0_0上运行调试会话之后,在进入 main()时停止执行~20秒。
我可能从存储器浏览器中观察到从0x3A000000开始的异常日志记录寄存器会使用看似合理的数据进行更新。
例如、CBASS_EXCEPULL_LOGGING_DATA0包含0x39FFFFAC -可在存储器浏览器中同时观察到的一个地址。
问题:鉴于我正在查找正确的寄存器、什么可能导致出现此异常?
您好
西蒙