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.

[参考译文] J721EXSOMXEVM:无法写入寄存器- MCU1_0 SBL

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1514128/j721exsomxevm-unable-to-write-to-registers---mcu1_0-sbl

器件型号:J721EXSOMXEVM

工具/软件:

大家好。

我正在使用 SBL 在锁步模式下引导 MCU 域 Cortex - R5F (mcu1_0)。

我在 R5F 上运行了裸机代码、但我尝试写入的任何寄存器都无法写入。 我可以成功读取寄存器、但对寄存器的写入失败。

上面的代码片段显示、我正在尝试首先读取 CTRLMMR_GTC_CLKSEL 寄存器、然后将0xF 写入该寄存器。  

但当我运行程序时、可以看到没有写入寄存器。 我已尝试直接使用地址、写入以及使用"hw_types.h" API (HW_WR_REG32 (addr、value))。 但两者都无法写入寄存器。

请提供帮助。

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

    尊敬的 Arun:

    [报价 userid="646009" url="~/support/processors-group/processors/f/processors-forum/1514128/j721exsomxevm-unable-to-write-to-registers---mcu1_0-sbl

    但当我运行程序时、可以看到没有写入寄存器。 我已尝试直接使用地址、写入以及使用"hw_types.h" API (HW_WR_REG32 (addr、value))。 但两者都无法写入寄存器。

    [/报价]

    您能告诉我寄存器地址吗?

    此致、

    Karthik

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

    尊敬的 Karthikean:

    感谢您的回答。

    寄存器地址为 0x00108030  ( CTRLMMR_GTC_CLKSEL 0010 8030h)。

    我甚至尝试了写入计数器值寄存器 GTC_CNTCV_LO - 00A9 0008h 和 GTC_CNTCV_HI - 00A9 000Ch。

    仍然、我无法写入寄存器。 (读取正在发生)

    谢谢你。

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

    尊敬的 Karthikean:

    有任何关于这方面的信息吗?

    还有一个问题。  

    该寄存器 CTRL_MMR_GTC_CLKSEL 的默认值为0、它对应于时钟信号 MAIN_PLL3_HSDIV1_CLKOUT。

    我无法计算出该信号的频率。 是200MHz 还是250MHz 还是其他产品?

    谢谢!

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

    尊敬的 Arun:

    CTRL_MMR0模块具有保护机制、可防止虚假写入更改值
    不会重复。 需要解锁 MMR 寄存器以写入 CTRLMMR_GTC_CLKSEL 寄存器。

        printf("CTRL_MMR_UNLOCK \n");
            
         Board_init(BOARD_INIT_UNLOCK_MMR);            //  MMR Unlock
         
         HW_WR_REG32(0x00108030, 0x0F);
         
         Board_deinit(BOARD_DEINIT_LOCK_MMR);          //  MMR Lock
         
         printf("CTRL_MMR_GTC_CLK Write Complete\n"); 

    [引述 userid="646009" url="~/support/processors-group/processors/f/processors-forum/1514128/j721exsomxevm-unable-to-write-to-registers---mcu1_0-sbl/5830146 #5830146"]

    我无法计算出该信号的频率。 是200MHz 还是250MHz 还是其他产品?

    [/报价]

    请参阅以下文档。

    文件: /packages/ti/drv/sciclient /sysfw/binaries/system-firmware-public-documentation/5_soc_doc/j721e/pll_data.html soc  

    文件: /packages/ti/drv/sciclient /sysfw/binaries/system-firmware-public-documentation/5_soc_doc/j721e/clocks.html soc  

     

    此致、

    Karthik

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

    您好 Karthikean。  

    感谢您的回答。  

    我可以确认它可以正常工作、不知道寄存器有写保护。 是否有任何讨论相同内容的文档?

    谢谢!

    此致

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

    尊敬的 Karthikean:

    该寄存器的默认值 CTRL_MMR_GTC_CLKSEL、它对应于时钟信号 MAIN_PLL3_HSDIV1_CLKOUT。

    从您提供的文档中... 我能找到这个,

    因此、MAIN_PLL3_HSDIV1_CLKOUT 对应于、

    MAIN3 - 2000000000U - HSDIV1 (8)== 250MHz 。 我的理解是否正确?

    谢谢!

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

    尊敬的 Arun:

    [引述 userid="646009" url="~/support/processors-group/processors/f/processors-forum/1514128/j721exsomxevm-unable-to-write-to-registers---mcu1_0-sbl/5832728 #5832728"]

    MAIN3 - 2000000000U - HSDIV1 (8)== 250MHz 。 我的理解是否正确?

    [/报价]

    您可以参阅 https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-jacinto7/10_01_00_04/exports/docs/pdk_jacinto_10_01_00_25/docs/userguide/jacinto/faq/faq_module_clocking.html 常见问题解答、了解 哪个模块以什么频率运行很有帮助。

    此致、

    Karthik