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.

[参考译文] TMS320F28P650DH:CLA 初始化序列

Guru**** 2520650 points
Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1408810/tms320f28p650dh-cla-init-sequence

器件型号:TMS320F28P650DH
主题中讨论的其他器件:SysConfig

工具与软件:

你(们)好

TRM 中的 CLA 初始化序列如下:

将 CLA 代码复制到 CLA 程序 RAM 中-> 初始化 CLA 数据 RAM、如有必要 ->配置 CLA 寄存器-> 初始化 PIE 矢量表和寄存器 ->启用 CLA 任务/中断->初 始化其他外设

但在 cla_ex1_asin 演示代码中、初始化序列是:

PinMux_init();
cla_init();
MEMCFG_INIT ();
interrupt_init();

如果切换 CLA_init ()和  MEMCFG_init ()、则 MCU 无法正常运行。 我是否理解顺序错误?

谢谢

Joe

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

    你(们)好

     请您仔细阅读下面的主题。  
    谢谢

    Joe

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

    您好、Joe。

    很抱歉耽误你的时间。 TRM 中列出的顺序如下:  

    1. 将 CLA 代码复制到 CLA 程序 RAM  中:在 cla_init ()中完成

    2. 如有必要、初始化 CLA 数据 RAM: 在 cla_init ()中完成

    3. 配置 CLA 寄存器

    -使用分配的 PCLKCRn 寄存器启用 CLA 外设时钟: 在主代码的 Device_init ()中完成

    -填充 CLA 任务中断向量: 在 cla_init ()末尾调用的 mycla_init ( )中完成

    -选择任务中断源: 在 cla_init ()末尾调用的 mycla0_init ( )中完成

    -Enable IACK 从软件启动任务,如果需要: 在 cla_init ()末尾调用的 mycla0_init ()完成  

    -将 CLA 数据 RAM 映射到 CLA 空间,如有必要: 在 MEMCFG_init ()中完成

    -将 CLA 程序 RAM 映射到 CLA 空间: 在 MEMCFG_init ()中完成

    4. 初始化 PIE 向量表和寄存器: 在 主代码的 Interrupt_initVectorTable()中完成

    5. 启用 CLA 任务/中断: 在 cla_init ()末尾完成,在 cla_init ()末尾调用

    6. 初始化其他外设: 示例中未使用其他外设

    您可以更正的是、SysConfig 生成的代码并未严格遵循 TRM 顺序。 但这只是建议顺序;初始化也可以按照 SysConfig 执行的顺序完成(如示例中所示)。 SysConfig 生成的代码以这种方式完成、以便使 初始化对每个外设保持模块化。 Device_init()和 Interrupt_initVectorTable()通常也总是在 main()函数的 Board_init()之前调用、这确实会导致其中一些建议的初始化不按顺序进行、但不会 导致任何问题。

    我建议对工程使用 SysConfig 时、先按照生成代码的顺序(cla_init ()、然后按 MEMCFG_init ())。

    此致、

    Delaney