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.

[参考译文] J721S2XSOMXEVM:访问 MCU 计时器寄存器空间时出现问题

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1593403/j721s2xsomxevm-issue-accessing-mcu-timer-register-space

器件型号: J721S2XSOMXEVM

我正尝试访问 MCU 寄存器空间以实现其中一项要求。 但是、一旦我尝试从寄存器地址读取0x40400038(如下面的屏幕截图 mcu_adm.0.png 所示 Timer_Access_Failure_) 

MCU_MCU (Timer_Access_Failure_0.png)

整个存储器区域变得无法访问、如以下 Timer_Access_Failure_1.png 屏幕截图所示

MCU_MCU (Timer_Access_Failure_1.png)

我已经尝试通过软件和通过读取此内存  外设 “Trace32 IDE“中的“Notebook"菜单“菜单、但每次都遇到相同的问题。

我们有这方面的解决方案吗? 如果有人以前遇到过这种情况、我将非常感谢任何指导或建议。

 

此致、

Madhusudan Gupta.

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

    尊敬的 Madhusudan Gupta:

    我能够使用软件和 CCS 直接存储器访问 0x40400038 寄存器。 请找到随附的屏幕截图以供参考。

    e2e.ti.com/.../Timer_5F00_Reg_5F00_Access.zip

    此致、

    Karthik

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

    您好、

    1) 你是使用 SBL 这个映像,如果是,从那里我可以下载和使用它,因为我尝试了样例代码也,它抛出相同的例外。

    2) 您的开关设置是什么,如 SW3、SW8、SW9、SW13

    此致、

    Madhusudan Gupta.

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

    尊敬的 Madhusudan Gupta:

    我未在本测试中使用 SBL。 我直接通过 CCS 执行.xer5f 二进制文件、并且器件配置为无引导模式。

    https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-j721s2/latest/exports/docs/psdk_rtos/docs/user_guide/evm_setup_j721s2.html 

    我使用的开关设置为:

    SW8[1–8]:1000 1000
    SW9[1–8]:0111 0000
    SW3[1–8]:0xxx xxxx


    此致、

    Karthik

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

    您好、

    MCU 计时器似乎由 TIFS 提供保护。

    要访问它们、所有权需要转移到 R5 Core 而不是 SYSFW、您认为什么?

    此致、

    Madhusudan Gupta.

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

    您好:

    FYI、我们尝试通过写入以下寄存器从防火墙启用它、并成功进入主计时器 0 –7、但不 适用于 MCU 计时器外设。

     a) CBASS_FW_Idmtimer_dmc1m_smcu_0_timer_cfg_VBP_FW_REGION_0_CONTROL (0x45108000) -- 0x30A   

    将 0x30A 写入上述寄存器后、说明前面所述的问题 不再发生 1、我们能够看到转储中的存储器。

    然后、我们尝试了以下步骤以获取读/写访问权限、但未成功。

     b) CBASS_FW_Idmtimer_dmc1m_smcu_0_timer_cfg_vbp_fw_region_0_permission_0 (0x45108004) -- 0x60FFFF

    我们将 0x60 视为位 16:23、因为 MCU Core0 的 priv_id 为 96 (0x60)

     c) CBASS_FW_Idmtimer_dmc1m_smcu_0_timer_cfg_vbp_fw_region_0_permission_1 (0x45108008) -- 0x60FFFF

     d) CBASS_FW_Idmtimer_dmc1m_smcu_0_timer_cfg_vbp_fw_region_0_permission_2 (0x4510800C) -- 0x60FFFF

     e) CBASS_FW_Idmtimer_dmc1m_smcu_0_timer_cfg_VBP_FW_REGION_0_start_address_l、

    CBASS_FW_Idmtimer_dmc1m_smcu_0_timer_cfg_VBP_REGION_0_start_address_h、

    CBASS_FW_Idmtimer_dmc1m1_MCU_0_timer_cfg_VBP_FW_REGION_0_END_ADDRESS_l、

    CBASS_FW_Idmtimer_dmc1m1_MCU_0_timer_cfg_VBP_FW_REGION_0_END_ADDRESS_h

    根据 MCU_Timer0 存储器范围、即 0x40400000 - 0x40400FFF、已经具有适当的值

     

    此后、我们尝试写入 MCU_Timer 外设地址范围以启动计时器、但遇到了 说明中所述的异常、因为存储器区域保持受保护状态。

     

    注释 :我们获得了主域计时器 0-7 的访问,通过遵循这些步骤中提到的点 A - E.

         我很期待 访问 MCU 域计时器存储器范围、也不希望使用 SBL API、 希望能了解寄存器级别的详细信息。

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

    尊敬的 Madhusudan Gupta:

    您能否告诉我是否有可从 MCU 域访问的特定计时器寄存器? 如果是、您能否提供相应的寄存器地址?


    此致、

    Karthik

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

    尊敬的 Karthikean:

    MCU 域 MCU Timer0-9 中有 10 个计时器、我会尝试在不同位置访问所有计时器、以便用于不同目的。

    我无法访问其中任何一个。

    计时器寄存器详细信息可在 Excel 工作表中的以下位置找到
    https://www.ti.com/lit/zip/spruj28

    FYR、

    MCU Timer0 地址范围从 0x40400000 - 0x4040006F 开始

    MCU Timer1 地址范围从 0x40410000 - 0x4041006F 开始

    您只需遵循此架构 (0x404 0000 - 0x404 006F)、从而计算 MCU 计时器外设地址范围。

    此致、

    Madhusudan Gupta.

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

    您好、

    感谢您分享详细信息。我会尝试在我的结束,并回到你。

    此致、

    Karthik

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

    尊敬的 Madhusudan Gupta:

    我可以直接在寄存器级访问 MCU Timer0 和 Timer1 寄存器。 请注意、某些计时器寄存器或特定位是只读的、因此写入不会生效。 确保仅访问每个计时器寄存器中的可写字段、并避免写入任何保留位、因为保留字段未定义并且可能导致意外行为。

    e2e.ti.com/.../Timer0_5F00_Access.zip

    此致、

    Karthik

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

    我完全了解寄存器的 R/O 或 R/W 访问说明符。

    我尝试在 ST 位上写入 1(这是一个 R/W 位)、因为我们遇到了这些解释的问题。

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

    尊敬的 Madhusudan Gupta:

    我可以访问 ST 位 在中 Timer_TCLR 寄存器 (0x40400038) 控制静态偏移发生器。 您能告诉我您是如何尝试访问此寄存器的? 您是否为此使用了任何驱动程序示例、以及您正在使用哪种引导模式? 如果可能、您还能分享您的代码吗?

    此致、

    Karthik