大家好、
要求: 协处理器每1ms 通过 SPI 获取一次数据并将其发送到主机处理器。
1)
a.如果使用以下代码进行初始化、使用 CCS 调试、可以看到每1ms 启动一次 SPI 请求。 AUXIO_I_DRDY_IRQ 始终为高电平、因此死区环路始终运行、fwGenAlertInterrupt 唤醒、并且主处理器 scTaskAlertCallback 不执行。


b.客户唤醒系统以移动系统、如以下代码所示。 每次执行 scTaskAlertCallback 时切换电平、使用逻辑分析仪的1引脚测试、理论上它不应翻转。 但逻辑分析仪只执行了一次。 为什么会这样?



C.通过将死区环路移除到以下代码中、可从逻辑分析中看出、数据并不是每1ms 获取一次。 为什么?


d: 上述数据由逻辑分析仪在 CCS 开发工具调试模式下捕获、当代码被移植且协处理器和 M3协同工作时、比较上面问题 C 的图、您可以看到无法捕获 SPI 信号、 但当采集到 scTaskAlertCallback 时、该信号会切换。 上图(问题 C)捕获 SPI 信号、但无法捕获 scTaskAlertCallback 处于活动状态时切换的信号。 在 CCS 开发工具的调试和运行期间可被捕捉的信号是相反的。 移植代码后、如果系统正常运行、很难确切地确定 SPI 信号的样子。

2) 2) 根据逻辑分析仪的上图、基本上可以确定正在执行 scTaskAlertCallback。 将 SPI 数据取出并发送到主机、但奇怪的是主机收到了完全相同的数据。


3) 3) 基于问题2的绿色数据、差异在于客户在测试时手动更改了第一个数据。 代码 D2应后跟 D3、这成为主机上的 D4。 这个问题很常见、甚至有一种情况、E8后面跟44。 为什么会这样?


您能帮助检查这个案例吗? 谢谢。
此致、
切里




