2125655_zh-CN

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

2125655_zh-CN

2125655_zh-CN

rt685 HiFi4,从 MCU 加载时 DSP 代码行为不稳定

你好,
,我正在制作一个音频处理演示,该演示在 R685-AUD-EVK 上运行。我已按照入门资源的要求进行了操作,MCU 和 DSP FW 主要基于 SDK 中的"audio_demo_bm" 。

MCU FW 仅对 GPIOS 进行基本初始化,以实现简单的用户界面。
DSP FW 初始化音频输入/输出的 I2S 和 DMA,数据使用 " 三重缓冲器 " 方法进行缓冲,如恩智浦的一份应用笔记中所建议。
一旦接收到 1 毫秒的音频数据(即 1 毫秒),I2S/DMA 接收 ISR 就会调用实际的音频处理功能。已收到 48 个左样本和 48 个右样本)。
音频数据的处理使用 natureDSP 库函数。

到目前为止,当构建 MCU 固件和 DSP 固件并在调试模式下运行时,一切都按预期运行,但我观察到从 MCU 加载 DSP 固件时会出现问题(发布版本,DSP_IMAGE_COPY_TO_RAM = 1)。

当音频处理函数(从 ISR 调用)放在".iram0.text 中时"(指令 TCM 存储器)时,DSP FW 出现异常。
xt-ocd 打印:

错误:Exception details: exccause:0x0, excvaddr:0xff0042, epc:0x240205bc, epcdbg:20e022

如果将函数放在非 TCM 内存中,或者在调试模式下加载 DSP FW,则不会出现这种情况。

有没有什么东西可以解释观察到的问题?
这是否与内存对齐有关?

i.MX RT600Re: rt685 HiFi4, erratic DSP code bahaviour when loaded from MCU

@Omar_Anguiano感谢您的回复。

我发现 post_build 脚本没有复制".iram0.text"切入包含在 MCU 代码中的二进制文件,因此实际的功能代码不存在于内存中。
我没有进一步研究对齐问题,因为我目前可以继续使用"调试" 模式工作。

BR Witali

Re: rt685 HiFi4, erratic DSP code bahaviour when loaded from MCU

对齐问题可能是一个潜在的问题,我发现如果它是为调试版本而构建的,则不会发生这种情况。
在为发布版本进行构建时,编译器可能会添加一些优化级别,这可能会影响示例的工作方式。
如果 MCU 无法正确复制 .iram0.text 或对齐,DSP 可能会获取无效指令,从而导致出现 exccause:0x0(非法指令)。

致以最崇高的敬意,
Omar

Tags (1)
No ratings
Version history
Last update:
‎11-21-2025 09:55 AM
Updated by: