This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CCS/TMS320C6745:如何将 C6745置于监控器模式?

Guru**** 2616675 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/657552/ccs-tms320c6745-how-to-put-c6745-into-the-supervisor-mode

器件型号:TMS320C6745
Thread 中讨论的其他器件:OMAPL138

工具/软件:Code Composer Studio

您好!

我们在 C6745 DSP 上将应用编写为裸机(非操作系统)。 我们不需要操作系统、DSP 应在外部中断上计算简单函数(如正弦波)的样本、将这些样本放入外部存储器并进入睡眠模式。 在之前的设计中、我们使用了 C6720 DSP 处理器、该处理器性能良好、但现在我们必须更快地计算样本。

C6745由外部主机 SPI (STM32F4系列 uC)引导。 当 DSP 结束引导(跳转和关闭操作)时、DSP 运行主程序。 通过查看项目的映射文件和跳转地址(跳转和关闭操作)、我们看到 DSP 跳转到 boot.obj、接下来可能跳转到 main()、因此它看起来是正确的。 由于我们不使用 OS、因此我们使用 CSLR 库根据需要配置所有寄存器。

遗憾的是、我们无法将 C6745置于监控器模式。

对于 C6720,当处理器启动 main()时,我们调用函数 CSL_sysinit ()。 此函数可能执行了一个过程、将此 DSP 置于特权(监控器)状态。 文件 CSL.h 中的 C6745库 CSLR 包含 CSL_sysinit ()的声明、但当我们调用它时、编译器无法找到此函数。

在库中找不到进入特权状态的正确过程。 如果没有转换到特权状态、我们就无法设置任何寄存器、例如 GPIO、以确认处理器运行。

请建议如何将 C6745 DSP 置于监控器模式。 一个简单的代码示例可能会解决我们的问题。

谢谢、致以诚挚的问候。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    请参阅 DSP CPU 和指令集用户指南的第8.4.2节"从用户模式进入监控器模式":

    www.ti.com/.../sprufe8b.pdf

    您可以通过调用 ASM SWE 进入管理员模式。 您可以通过查看 TSR.CXM 寄存器来验证 DSP 是否已进入监控模式、"0"表示监控模式。

    最棒的
    Sahin
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Sahin:

    感谢你的建议。 遗憾的是、我们无法使 C6745正常工作。

    我们没有 JTAG、因此 为了检查 DSP 是否正常工作、我们查看 GPIO 引脚。 如果 DSP 正在工作、它们应该切换。 不幸的是、他们没有。

    请查看 zippede2e.ti.com/.../7762.Test_5F00_C6745.zip 文件、并告诉我我们在哪里出错。

    此致、

    Marian

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好 Marian、

    我们为 c66x 内核定义了用于在 CPU 模式之间切换的函数。 可在中找到这些参数
    pdk_omapl138_1_0_3\packages/ti\cSL\arch\c66x\src\dsp_usrSpvSupport.c
    pdk_omapl138_1_0_3\packages/ti\cSL\arch\c66x\src\swenr.asm
    pdk_omapl138_1_0_3\packages/ti\cSL\arch\c66x\dsp_usrSpvSupport.h

    我们查看了 C66x 用户指南、这些函数可能与 C674x 兼容、即 SWE 和 SWENR、作为向后兼容的 ASM 调用。 您可以将这些用作参考。

    此致、
    Sahin