主题中讨论的其他器件:HALCOGEN、 SEGGER
大家好!
我们的应用需要降低 SCI RX 中断的中断延迟。 因此、我尝试通过 FIQ 进行路由、FIQ 在调试编译中部分起作用、但在版本编译中不起作用。 据我所见、在调试构建中、处理器始终在0x0000000C 停止、这向我说明了一个指令预取中止。
我执行了以下操作来找出根本原因:
- 项目是使用 HALCoGen 4.7.01设计的、并使用带有 MPU 的 FreeRTOS
- 该工程是使用 CCS 10.2.0.9和 TI 编译器 v20.2.1.LTS 编译的
- 如果所有 SCI 中断均通过 IRQ 处理、则代码运行良好
- 将 RX 中断从低电平更改为高电平(在 HALCoGen 的 SCI 页面上)、启用 VIM 上的新通道并将其分配给 FIQ
- HALCoGen 现在在 sci.c 中生成一个带有"#pragma INTERRUPT (linHighLevelInterrupt、FIQ)"修饰的中断处理程序
- 在 RAM 设置中、我为 IRQ 和 FIQ 堆栈长度分配了0x200
- 如果我在 FIQ 处理程序(在 switch (VEC)语句中、除了"default"子句之外、不执行任何操作、代码仍然会崩溃
- 使用一些调试引脚、我感觉处理器永远不会达到 sci.c 中的 FIQ 处理程序函数
- 如果我让代码从 IRQ 电平上的 SCI RX 开始、并在其他 SCI 中断之一中将其切换至 FIQ、则代码在切换后崩溃。
是否可以、添加这个"#paragma interrupt (..、FIQ)"来获得一个有效的 FIQ 处理程序就可以完成更多的工作? 我在这里还缺少其他东西吗? 我们非常感谢您提供的任何提示。
1月