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:在 MCU 域中使用 OCMC_RAM

Guru**** 2416110 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1519145/j721exsomxevm-using-ocmc_ram-in-mcu-domain

器件型号:J721EXSOMXEVM

工具/软件:

大家好。

我正在通过 UART 引导 SBL。

我的裸机应用程序在 mcu1_0 (Cortex - R5F0) 上运行、想要访问 OCMC_RAM 区域 — 0x41C00000 - 0x41C80000 中的位置。

在下表中、从  8.3.使用 SYSFW 的 MCU1_0 应用开发 — Processor SDK RTOS J721E、我可以看到在 SBL 执行后应用可以回收存储器区域 (512KB)。

但当我运行我的应用时、当它尝试访问 0x41C0000 地址时、该应用会挂起。

OCMC 的哪些区域 (41C00000 - 41D00000)~1MB 应保持不变、可以使用什么?

谢谢!

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

    尊敬的 Arun:

    [报价 userid=“646009" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1519145/j721exsomxevm-using-ocmc_ram-in-mcu-domain

    OCMC 的哪些区域 (41C00000 - 41D00000)~1MB 应保持不变、可以使用什么?

    [/报价]

    我将对此进行更多的研究、并返回给您。

    此致、

    Karthik

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

    当然、谢谢!

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

    尊敬的 Arun:

     跳转到 MCU1_0 应用后、可以回收 OCMC。 您能详细介绍一下如何加载 mcu1_0 裸机应用吗?

    此致、

    Karthik  

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

    尊敬的 Karthik:

    我正在使用 SBL 在锁步模式下引导 R5F。  

    正在通过 UART 模式加载该应用程序。

    应用程序工作正常、直到我必须访问位置 0x41C00000。

    在链接器文件中、我将 0x41C000000 - 0x41C80000 (512KB) 定义为 OCMC_RAM、我的 APP 部分指向该区域。

    谢谢!

    BR

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

    尊敬的 Arun:

    感谢您的答复。 您能否回答以下问题?

    1. SBL 是否已成功引导、您是否还能确认 SBL 未在 while 循环中。

    2.当您说应用程序挂起时,它是崩溃还是等待一些其他事件发生? 访问内存时发生的确切错误是什么?

    3. OCMC_RAM 部分是否附带如下所示的属性 (RWIX)? 我相信您的应用的 BSS 部分已映射到 OCMC_RAM、对吗?

    OCMC_RAM (RWIX):origin=0x41C00000 length=0x80000  

    此致

    Karthik

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

    尊敬的 Karthik:

    SBL 通过 UART 引导模式成功引导、没有问题。

    2.应用程序启动打印信息,当调用函数时,控制台上没有输出。 上述函数是一个 asm 代码、除了在 OCMC_RAM 中的随机位置执行“nop"操作“操作外、没有任何作用。 我为 BTCM 存储器以及 MSMC SRAM 运行了该应用程序、运行正常。

    3.是的。 我已经添加了完全相同的部分,  OCMC_RAM (RWIX): origin=0x41C00000 length=0x80000, 带 (RWIX)。  没有、我将.bss 放在 DDR 中。

    谢谢!

    BR

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

    尊敬的 Arun:

    您能否分享您的链接器命令文件和 MCU 应用生成的存储器映射文件。

    此致

    Karthik

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

    尊敬的 Karthik:

    请看一下。

    .benchTEXT 是我添加的部分。

    e2e.ti.com/.../ocmc_5F00_ram_5F00_linker_5F00_map.zip

    上面的.zip 具有链接器和映射文件。

    谢谢!

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

    尊敬的 Arun:

    从链接器文件中、我可以看到.BENCHTEXT 被定向到 OCMC_RAM_SCISERVER ( origin=0x41C82000 length=0x60000)。 在 OCMC_RAM_SCISERVER 存储器部分执行 MCU 应用程序时、是否说该应用程序挂起? 前面您提到、您无法 访问 OCMC_RAM Region - 0x41C00000 - 0x41C80000 中的位置。 您能澄清一下吗?

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

    尊敬的 Karthik:

    Im 抱歉、此文件错误。 但我已经尝试了 OCMC_RAM 的所有段、即 0x41C00000-0x41D00000。 (1 MB)

    我已经尝试将.BENCHTEXT 段放置在 OCMC_RAM 的所有可能未使用的存储器区域中。 到目前为止、没有任何办法奏效。

    OCMC_RAM 区域 — 0x41C00000 - 0x41C80000、这是第一次尝试、然后我也尝试了其他未使用的段。

    以下是我使用的 512KB OCMC_RAM(文件中的 L3_RAM 区域):
    e2e.ti.com/.../OCMC_5F00_512KB.zip

     0x41C00000-0x41D00000 (1MB) 范围内的任何存储器地址都无法访问。

    谢谢  

    BR

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

    尊敬的 Arun:

    很抱歉晚回复。  

    从存储器映射文件中、我可以看到 SMS_BM_L3.oer5f 放置在  OCMC_RAM 中、即 0x41C00000-0x41D00000。 通常、在引导过程中、SBL 使用 0x41c00000 中的存储器位置。 SBL 加载 MCU1_0_sciserver_app。 在加载过程中、不应加载/更改上述存储器。 例如、在您的情况下、.benchTEXT 段应与“no load“指令一同归属。 建议将.bss 段保留在这些存储器中、而不是.text 段。  

    此致

    Karthik。

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

    您好 Karthik。

    感谢您的回答。

    假设我想使用 ATCM 放置上述裸机应用程序。 ATCM 是否同样如此?  
    或者、我可以在没有任何问题的情况下使用整个 32KB 的 ATCM?

    谢谢。

    BR

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

    尊敬的 Arun:

    由于 ATCM 由 R5 SBL 启用、因此您可以使用整个 32KB 的 ATCM 而不会出现任何问题。

    此致、

    Karthik

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

    你(们)好 Karthik。
    我确实尝试将.benchtext 部分放在 ATCM 存储器区域中、即 origin:0x00 length:0x8000。 (R5F 区域视图)

    但我的应用在尝试访问 0x00000100 - 0x8000 内的任何位置后再次挂起。

    因为为 SBL 保留前 100 个字节。  

    这是我的链接器和.map 文件。
    e2e.ti.com/.../atcm.zip

    同样、尝试访问 BTCM (0x41010000) 的同一应用程序工作完全正常。

    谢谢!

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

    尊敬的 Arun:

    从 J721e SBL 链接器命令文件中、我没有看到 ATCM 存储器用于 SBL。 请确认您已通过 R5F 内核在本地启用 TCM 存储器。   如果未出现、请参阅文件 packages/ti/boot/sbl/sbl/api/k3/sbl_MISC.asm soc 文件中的 API _sblTcmEn。 需要 在 R5F 中调用该函数以启用 TCM 存储器。

    此致

    Karthik

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

    尊敬的 Karthik: 感谢您的快速响应。

    最后一个问题是、在使用_sblTcmEn API 启用 ATCM 后、是否可以将 ATCM 属性从默认 X 更改为 RWIX?

    谢谢!

    BR

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

    尊敬的 Arun:

    是的、它是允许的、您可以将属性更改为 RWIX。 此外、正如您在上一线程中提到的、 将保留前 100 个字节供 SBL 重定位复位矢量。  

    此致

    Karthik

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

    尊敬的 Karthik:

    您能详细说明一下、

    SBL 加载 MCU1_0_sciserver_app。 在加载过程中、不应加载/更改上述存储器

    这仅适用于区域  0x41C00000 - 0x41C80000(前 512KB)。 但另一个区域 0x41C80000-0x41CC0000 (256KB) 可以用于我的应用、如下图所示?

    请确认。

    谢谢!  

    BR

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

    尊敬的 Arun:

    [报价 userid=“646009" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1519145/j721exsomxevm-using-ocmc_ram-in-mcu-domain/5876003 #5876003“]

    这仅适用于区域  0x41C00000 - 0x41C80000(前 512KB)。 但另一个区域 0x41C80000-0x41CC0000 (256KB) 可以用于我的应用、如下图所示?

    [/报价]

    您可以使用 存储器区域 0x41C80000-0x41CC0000 (256KB)  合适的开关。

    此致、

    Karthik