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.

[参考译文] F29H85X-F29H85X-EVM:SOM - SOM

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

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1503878/f29h85x-som-evm-f29h85x-som-evm

器件型号:F29H85X-EVM-EVM SOM
主题:SysConfig 中讨论的其他器件

工具/软件:

尊敬的

我尝试在两个内核 (CPU1、CPU3) 上使用 rtdma;当我在第一个内核上运行代码时、代码似乎会挂起。

你有一个 示例代码使用 rtdma 在两个核心.

此致

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

    尊敬的 Youcef:

    请参阅  F29x SDK GitHub 中的多核 RTDMA 示例。  

    此致、

    Aishwarya

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

    尊敬的 Aishwarya:  

     在示例中、您仅使用 RTDMA2。  在 代码中 、我尝试  在 CPU1 上使用 RTMA1、  在 CPU2 中使用 RTDMA2。  是否可以与您分享我的代码?

    此致

    Youcef Bouchebaba

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

    Youcef、

    虽然我无法查看代码、但如果您对配置、操作等有具体问题、我可以提供帮助 您应该能够只添加一个 RTDMA1 实例、或者在多核示例中仅将 RTDMA2 替换为 RTDMA1 作为初步测试用例。

    我还在下面分享了一个同时使用 RTDMA1 和 RTDMA2 的工程的 zip 文件、与 SDK 示例非常相似。 我使用 F29x SDK 1.01(GitHub 上的最新版本)和 SysConfig 1.23 创建此代码。 如果不起作用、请告诉我、但您也应该能够将配置复制到导入的 RTDMA 多核示例。 请忽略注释、它们来自原始示例Slight smilee2e.ti.com/.../8461.rtdma_5F00_rtdma1_5F00_rtdma2_5F00_cpu1_5F00_cpu2_5F00_multi.zip 

    此致、

    Aishwarya

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

    您好 Aishwarya

    当我运行代码时,我收到以下 错误 :

    C29xx_CPU1:闪存编程期间出现错误。 地址 0x1000101C、FMSTAT(某些器件上为 STATCMD)0x00000000、值 0x00000101
    C29xx_CPU1:请确保您要编程的存储器位置尚未编程。
    C29xx_CPU1:闪存编程期间出现错误。 地址 0x1000683C、FMSTAT(某些器件上为 STATCMD)0x00000000、值 0x00000101
    C29xx_CPU1:请确保您要编程的存储器位置尚未编程。

    此致

    Youcef

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

    Youcef、

    抱歉、SDK 中发生了存储器分配器工具更改、这将 在下周初反映在 GitHub 中。  如果您可以使用最新的星期一星期二运行示例、请在 SDK/SDK 上告诉我。 同时、您可以复制 RTDMA1 代码、并注释掉导入项目中的 RTDMA2 代码、这样就可以正常工作(刚刚对其进行了测试)。

    此致、

    Aishwarya

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

    您好 Aishwarya

     rtdma 示例 使用新的 SDK、但我有 以下问题

    (1) CPU1_SRAM_DATA 设置为 cData? 如何更改为 LD?   将 CPU2_SRAM_DATA 的问题设置为 LDATA。

    (2)   RTDMA2 似乎  仅在 CPU1  运行时启用、如果 CPU1 停止、RTDMA2 无法工作

    (3)  我们似乎 无法   通过以下 方式执行 RTDMA 的几个启动:

        DMA_startChannel (myRTDMA2Ch0_BASE);

           DONE=0
         while(!done)
          {
            DMA_forceTrigger (myRTDMA2Ch0_BASE);
              SysCtl_delay (10);
            }

           DONE = 0

        DMA_startChannel (myRTDMA2Ch0_BASE);

         while(!done)
          {
            DMA_forceTrigger (myRTDMA2Ch0_BASE);
              SysCtl_delay (10);
        }

    4   如果.txt 映射到 SRAM 程序、我认为多核 RDMA 示例将不起作用

    此致

    Youcef Bouchebaba

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

    Youcef、

    (1) CPU1_SRAM_DATA 设置为 cData? 如何更改为 LD?   CPU2_SRAM_DATA 的问题设置为 LDATA。

    此时、该工具基本上会根据可用的存储器来自动选择 SRAM。 我会让工具所有者回访 、传达反馈意见、并询问是否有任何灵活性。 您可以将 SysConfig 生成的链接器命令文件复制和禁用到手动文件中、并根据需要进行修改。

    (2) 似乎    只有在 CPU1  运行时才启用 RTDMA2、如果 CPU1 已停止、RTDMA2 才能正常工作

    您是说当 CPU1 暂停时、CPU2 也暂停并且 RTDMA2 不工作吗? 我认为 RTDMA2 全局和 MPU 设置由 CPU1 应用程序配置、因此当两个内核不同步时(例如 CPU2 已复位、但不是 CPU1 等)、可能会出现问题、但不确定此处的具体情况。

    (3)  我们似乎 无法   通过以下 方式执行 RTDMA 的几个启动:

        DMA_startChannel (myRTDMA2Ch0_BASE);

           DONE=0
         while(!done)
          {
            DMA_forceTrigger (myRTDMA2Ch0_BASE);
              SysCtl_delay (10);
            }

           DONE = 0

        DMA_startChannel (myRTDMA2Ch0_BASE);

         while(!done)
          {
            DMA_forceTrigger (myRTDMA2Ch0_BASE);
              SysCtl_delay (10);
        }

    [/报价]

    您看到的问题是什么? 信道是否不会重新启动、因为它在上一操作结束时被禁用?  

    4   如果.txt 映射到 SRAM 程序
    、我认为多核 RDMA 示例将不起作用

    CPU1 应用程序代码映射到闪存、因为它从 CPU1 闪存执行。 您可以在内存分配器工具的“SECTIONS"部分“部分中创建特定的输出段、并指定从何处加载/运行代码。 CPU1 .text 文件是否有在 SRAM 中使用的特定要求?

    此致、

    Aishwarya

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

    您好 Aishwarya

    (2)  当 CPU1 停止且 CPU2 正在运行时、RTDMA2 不会接收中断

    (3) 即使该通道 在上一操作结束时未停用、该通道也不会重新启动、

    (4) 当 我将所有 段映射到 SRAM (txt、bss、data...) 时、  当 RTDMA2 开始执行时、CPUI 进入无限循环。  

    此致

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

    Youcef

    对不起,延误,请再给我一天回来给你。

    此致、

    Aishwarya

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

    Youcef、

    我仍在重复 我最后提出的问题 我会尽快回复您。 谢谢你。  

    此致、

    Aishwarya

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

    Youcef、

    感谢您的灵活性。 请参阅以下内容。

    (1) CPU1_SRAM_DATA 设置为 cData? 如何更改为 LD?   CPU2_SRAM_DATA 的问题设置为 LDATA。

    我已将反馈转发给软件团队、我们将为未来的 SDK 版本研究此功能。

    (2)  当 CPU1 停止且 CPU2 正在运行时、RTDMA2 不会接收到中断

    在 CPU1 应用程序代码中的哪个位置、它是否停止? 这种行为是否会因您停止它的位置而发生变化? RTDMA2 全局和 MPU 设置由 RTDMA1 配置、因此如果 CPU1 在这些配置之前停止、则 RTDMA2 配置可能尚未发生。

    其他一些可能的问题 包括 CPU 不同步和/或时钟存在问题(但这可能不是这样)。

    (3) 即使 在上一个操作结束时未停用通道、通道也不会重新启动、

    在再次启动通道之前重新配置通道应该有助于解决此问题。  

    (4) 当 我将所有 段映射到 SRAM (txt、bss、data...) 时、  当 RTDMA2 开始执行时、CPUI 进入无限循环。  [/报价]

    确保 CPU1 和 CPU2 之间没有链接器命令冲突、并且在从中执行代码之前已正确初始化 SRAM。  如果此操作无法解决问题、您可以提供代码片段。 您是否在将 CPU1 映射到从 RAM 执行时存在特定问题(我提供的构建配置是闪存构建 BTW)

    此致、

    Aishwarya

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

    (2)  在 rtdma1 (CPU1) 启动后停止 CPU1  (已配置 RTDMA2)。 行为不会因我们阻止它的位置而改变

    (3) 即使在启动之前重新配置通道、也不能解决此问题。

    (4) 我已 扩展 led_ex2_blink_cpu1_cpu2_cpu3、使其在 CPU1 上使用 rtdma1、在 CPU2(或 CPU3)上使用 rdtma2。 没有链接器命令冲突。 是否可以与您共享代码?

    我还有另外两个问题:

    (a) 我想将 F29H85X 与 TMS2838 进行比较。 在 F29H85X 中、我使用以下 优化选项范式/级别 : “0"。“。   我想知道 TMS2838 SDK 上的等效优化级别是什么: 优化级别=“0" 还是“还是=“关闭“ ?  和速度与 大小=  “0" 或“或其他“值“?

    b)  我似乎无法将 CPU1 和 CPU3 的代码 (.txt) 加载 到闪存中 。  我只能将  CPU1 的代码加载到闪存中、但是 CPU3 的代码只能加载到 RAM 中 ?

    当我尝试   将 led_ex2_blink_cpu1_cpu2_cpu3 作为闪存 配置运行时、出现以下 错误:

               - C29xx_CPU1:写错寄存器 PC_FORCE:(错误 0xFFFFFAF) 或

           -此版本的闪存插件不支持从 CPU3 加载应用程序。   

    此致

    Youcef Bouchebaba

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

    您好 Aishwarya

    我已经澄清了 问题 2、3 和 4。 我还有另外两个问题 (a) 和 (b)。

    此致

    Youcef Bouchebaba

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

    尊敬的 Youcef:

    Aishwarya 目前不在办公室。 请预计回复会延迟、直到下周她回来。  

    此致、

    Delaney

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

    Youcef、

    (4) 我已 将 led_ex2_blink_cpu1_cpu2_cpu3 扩展为在 CPU1 上使用 rtdma1、在 CPU2(或 CPU3)上使用 rdtma2。 没有链接器命令冲突。 是否可以与您共享代码?

    是的、如果需要、请在此处或通过私人消息与我分享。 我将运行它以观察报告的行为。

    [引述 userid=“491530" url="“ url="~“~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1503878/f29h85x-som-evm-f29h85x-som-evm/5836142 #5836142“](a) 我想将 F29H85X 与 TMS2838 进行比较。 在 F29H85X 中、我使用以下 优化选项范式/级别 : “0"。“。   我想知道 TMS2838 SDK 上的等效优化级别是什么: 优化级别=“0" 还是“还是=“关闭“ ?  和速度与 大小=  “0" 或“或其他“值“?

    ‘、强烈建议也是默认将“O1"与“与 F29x 配合使用、以真正利用 C29x 处理器的许多优势。 ‘“SO0"将“将导致性能不佳。 ‘“等效“优化级别、因为 F29x 的性能 至少是 F28x 的两倍Slight smile。 您可以参阅 F29x 器件页面上的 CPU 和编译器相关文档。

    b) 似乎 我无法将 CPU1 和 CPU3 的代码 (.txt) 加载 到闪存中 。  我只能将  CPU1 的代码加载到闪存中、但是 CPU3 的代码只能加载到 RAM 中 ?

    这是正确的、因为闪存插件的未来版本将支持使用 CPU3 加载代码。  

    此外、对于未来有关不同主题的问题、请创建一个新主题、这样我们就可以将所有主题 分开、并且主题不会与最初的对话区分开来。  

    此致、

    Aishwarya

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

    Youcef、

    查看问题是否已解决和/或您有任何其他问题。

    此致、

    Aishwarya