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.

[参考译文] AM2612:在 syscfg 中添加 BiSS 设置时遇到问题

Guru**** 2777545 points

Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1602972/am2612-problems-were-encountered-when-adding-biss-settings-in-syscfg

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

我使用的软件版本如下: CCS12.8.0/SYS/Config 1.24.2/适用于 AM261x 的电机控制 SDK 10.2.0.07
 
我的当前程序已配置有 EtherCAT 并使用 PRU-ICSS0 。 程序可以正常运行和通信。 当我尝试通过启用在 SYSCFG 中添加 BISSC 配置时 CONFIG_BISSC0 、将其配置为 ICSSM1. 、设置 BISSC_CH0_CLK 最终目的 GPIO71 BISSC_CH0_TX 最终目的 GPIO72 、和 BISSC_CH0_RX 最终目的 GPIO74 —我执行直接编译 而不修改任何代码 (SYS/Config 本身和编译过程都不会报告任何错误)。
 
对固件进行编程后、我将执行以下步骤: 连接目标-> CPU_RESET -> Load out file 。 此时、代码不会在main()函数之前停止、而是直接运行。 如果单击暂停按钮、我可以看到代码停止在HwiP_user_prefetch_abort_handler_c()
 
我已经多次尝试过这个,并获得了同样的结果。 相反、如果我删除了 SYS/Config 中的 BISSC 配置、一切都正常工作。
 
我想询问如何解决此问题以及需要修改哪些文件或配置。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你(们)好

    您能否与添加的 BiSS-C 共享更新的 example.syscfg?
    此外、您是否更详细地了解哪个函数导致了中止?

    此致

    Dhaval

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

    尊敬的 Dhaval Khandla:

       没问题。 此网页似乎不支持上传 SYSCFG 间隔。 我已将其文件扩展名更改为 txt 并将其上传。 未使用 BiSS 配置的文件命名 example_withoutBiss.txt ;请检查它。

       此外、我认为程序已进入异常中断 然后执行 main(),所以我不知道哪个函数跳到HwiP_user_prefetch_abort_handler_c(). 我在调试会话中只能看到如下所示的调用序列:(我编译的函数序列是 整理的调试调用序列 、其从上到下的顺序是 与实际调试面板中显示的内容相反)
    HwiP_user_prefetch_abort_handler + 0x1c()地址HwiP_armv7r_handlers_nortos_asm.S:180 0x700FF9E4
    ----- >HwiP_user_prefetch_abort_handler_c()网址HwiP_armv7r_handlers_nortos.c:313 0x700FF86A
    ----- >HwiP_user_prefetch_abort_handler_c()电话HwiP_armv7r_handlers_nortos.c:386 0x700FF878
    此致。

     e2e.ti.com/.../example_5F00_withoutBiss.txte2e.ti.com/.../example.txt

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

    尊敬的 Dhaval:

    我有一些新发现需要分享:我的程序是根据 USB 示例程序进行修改的。 因此、在 syscfg 的 MPU ARMv7 配置中、USB 配置为 CONFIG_MPU_REGION4/0x7010000/128KB/非缓存
    相比之下、在 BiSS 示例例例程的 MPU ARMv7 配置中(我将仅介绍 USB 和 BiSS 不同的器件、前四个 CONFIG_MPU_REGION 设置相同)、它是通过进行配置的 CONFIG_MPU_REGION4/0x50D00000/16KB/严格排序 CONFIG_MPU_REGION5/0x72000000/16B/未缓存
    我认为这个配置是我的程序中 USB 和 BiSS 不兼容的根本原因。 我观察到的现象如下(不修改代码,仅更改 syscfg 设置):
    1. 略小于 1 CONFIG_MPU_REGION4/0x7010000/128KB/非缓存 、添加 BiSS 配置后、main()启动调试模式时、代码不会在函数之前停止、而是直接进入HwiP_user_prefetch_abort_handler_c()异常中断。
    2. 略小于 1 CONFIG_MPU_REGION4/0x50D00000/16KB/严格排序 CONFIG_MPU_REGION5/0x72000000/16B/未缓存 、我的 USB 功能无法正常工作。
    3. 如果我同时配置所有三个区域、USB 仍然无法正常工作。
    您能否建议如何配置这些设置以确保 USB 正常运行和正确的代码调试? 我希望这些发现有助于您帮助我解决此问题。 谢谢!
    此致
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Zhou:

    对延迟的回复表示歉意、让我检查一下、并在 1-2 天内回来

    此致、
    Shaunak

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

    您好、

    您可以尝试下面的 MPU 配置吗? 通过 BSC 配置和 USB 配置、我看到这两个实体都可以访问某些区域、因此我们需要尝试仔细配置它们。

     // ========== MPU REGIONS (7 total) ==========
    
      // Region 0: Base - all peripherals as Device
      mpu_armv71.$name             = "CONFIG_MPU_REGION0";
      mpu_armv71.size              = 31;                              // 4GB
      mpu_armv71.attributes        = "Device";
      mpu_armv71.accessPermissions = "Supervisor RD+WR, User RD";
      mpu_armv71.allowExecute      = false;
    
      // Region 1: TCMA
      mpu_armv72.$name             = "CONFIG_MPU_REGION1";
      mpu_armv72.size              = 15;                              // 64KB
      mpu_armv72.accessPermissions = "Supervisor RD+WR, User RD";
    
      // Region 2: TCMB
      mpu_armv73.$name             = "CONFIG_MPU_REGION2";
      mpu_armv73.baseAddr          = 0x80000;
      mpu_armv73.size              = 15;                              // 64KB
      mpu_armv73.accessPermissions = "Supervisor RD+WR, User RD";
    
      // Region 3: OCRAM (cached)
      mpu_armv74.$name             = "CONFIG_MPU_REGION3";
      mpu_armv74.baseAddr          = 0x70000000;
      mpu_armv74.size              = 21;                              // 2MB
      mpu_armv74.accessPermissions = "Supervisor RD+WR, User RD";
    
      // Region 4: USB DMA buffers - MUST be NonCached for DMA
      mpu_armv75.$name             = "CONFIG_MPU_REGION4";
      mpu_armv75.baseAddr          = 0x70100000;
      mpu_armv75.size              = 17;                              // 128KB
      mpu_armv75.attributes        = "NonCached";
      mpu_armv75.accessPermissions = "Supervisor RD+WR, User RD";
      mpu_armv75.allowExecute      = false;
    
      // Region 5: MSS_CTRL - Required by BOTH USB and BISSC
      mpu_armv76.$name             = "CONFIG_MPU_REGION5";
      mpu_armv76.baseAddr          = 0x50D00000;
      mpu_armv76.size              = 14;                              // 16KB
      mpu_armv76.attributes        = "Device";                        // Use "Device", NOT "Strongly Ordered"
      mpu_armv76.accessPermissions = "Supervisor RD+WR, User RD";
      mpu_armv76.allowExecute      = false;
    
      // Region 6: IPC/PRU shared memory - Required by BISSC
      mpu_armv77.$name             = "CONFIG_MPU_REGION6";
      mpu_armv77.baseAddr          = 0x72000000;
      mpu_armv77.size              = 14;                              // 16KB
      mpu_armv77.attributes        = "NonCached";
      mpu_armv77.accessPermissions = "Supervisor RD+WR, User RD";
      mpu_armv77.allowExecute      = false;
    
    
     

     
     最终配置摘要应与类似

    您能否尝试以下配置、重建并重新测试此示例、告诉我它是否有帮助?

    此致、
    Shaunak

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

    尊敬的 Shaunak:

    感谢您的及时回复。 我 根据您提供的代码片段修改了我的 SYSCFG、但结果保持不变。
    在 USB 功能正常工作的情况下,我在 SYSCFG 中添加了 BiSS 配置 ,然后编译,调试和加载程序,而不修改任何代码。 但是、程序仍在异常中断处停止、这与我前面所述的现象一致。
    我已 以 TXT 格式上传两个 SYSCFG 文件以供您查看。 请检查我的配置设置是否有任何错误。 如果您需要我方面的任何其他信息来帮助解决此问题、请随时告知我。
    此外、我的 USB 实现基于官方 SDK 并经过一些修改。 我不确定这是否会影响其与 BiSS 的兼容性。 有关 USB 修改的详细信息、请参阅以下链接: LP-AM261:USB 无法n‘t 运行稳定! — 基于 Arm 的微控制器论坛 — 基于 Arm 的微控制器 — TI E2E 支持论坛。
    此致。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Shaunak、

      最近在这一问题上是否取得了进展?

    此致

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

    尊敬的 Zhou:

    您是否可以与我分享您的项目?

    此致、
    Shaunak

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

    嗨、Shaunak。

    恐怕这无法实现、我们公司会阻止源文件和头文件在外部共享。 我能否以库文件或其他此类格式向您发送项目? 根据您所说的、这两个模块之间没有兼容性问题、问题实际上与我的项目有关、对吗?

    此致

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

    如果不是整个工程、您能否针对工作用例和非工作用例共享 linker.cmd 和.map 文件。

    此致、
    Shaunak

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

    尊敬的 Zhou:

    并附上电子邮件所述的更新后的 SysConfig 文件。

    e2e.ti.com/.../4111.example.syscfg

    此致、
    Shaunak