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:尝试从 OSPI 闪存启用 XIP 时出现 LP-AM261 调试问题

Guru**** 2789005 points

Other Parts Discussed in Thread: UNIFLASH, LP-AM261, SYSCONFIG, AM2612

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1598476/am2612-lp-am261-debug-issues-when-trying-to-enable-xip-from-ospi-flash

器件型号: AM2612
Thread 中讨论的其他器件: LP-AM261SYSCONFIG、UNIFLASH

大家好、E2E 专家:

我正在尝试 LP-AM261、试图评估代码和数据放置的不同场景下的性能。

我正在为 AM261x 11.0.0.29 使用 SysConfig 1.25.0 和 SDK。

我从示例\examples\drivers\gpio\gpio_led_blink\am261x-LP 开始、在这里、我能够成功地构建、加载和执行示例(从 OCRAM 执行的代码)。 当时、我不知道启动过程的大部分、因此我不确切知道芯片中加载的引导引脚和 SBL 是什么。 不过、我可以保证引导引脚没有处于 UART 模式、也没有处于 xSPI 模式。

然后、我剥离了与 LED 闪烁相关的代码、并添加了用于处理器性能评估的代码。 我能够直接从 CCS 构建、加载和执行成功、并从 OCRAM 执行代码。  

我的下一个目标是从外部 OSPI 闪存执行该代码。 我按照 https://dev.ti.com/tirex/explore/content/mcu_plus_sdk_am261x_10_00_01_10/docs/api_guide_am261x/BOOTFLOW_XIP.html 中说明 的步骤操作、然后构建了软件。

尝试从 CCS 加载应用程序不起作用、但我非常确定在某个时候我已经在 Debug Output 窗口中看到成功进行闪存编程的日志、但在上面列出的页面上、您需要一个工具来刷写 OSPI 闪存、因此我使用了 SDK 中\tools\boot 的 uart_uniflash.py 工具、使用这个.cfg 文件:

#首先指向 sbl_uart_uniflash 二进制文件,它作为一个服务器来刷写一个或多个文件
-- flash-writer=sbl_prebuilt/am261x-lp/sbl_uart_uniflash.release.tiimage

#对 OSPI PHY 调优攻击向量进行编程
--操作=flash-phy-tuning-data

#发送引导加载程序时、请确保闪存偏移为 0x0。 ROM 期望引导加载程序位于偏移量 0x0 处
-- file=sbl_prebuilt/am261x-lp/sbl_ospi_moremol_elf.release.tiimage --操作=flash --flash-offset=0x0

#发送应用程序映像时,请确保闪存偏移为 0x81000(默认值)或引导加载程序配置的任何偏移
--file=../../../../../workspace_ccstheia/gpio_led_blink_am261x-lp_r5fss0-0_nortos_ti-arm-clang/Release/gpio_led_blink_am261x-lp_r5fss0-0_nortos_ti-arm-clang.mcelf --operation=flash-sector-write --flash-offset=0x81000

#为此应用程序发送 XIP 映像,由于闪存偏移是在映像中指定的,因此无需指定闪存偏移
--file=./../../../../workspace_ccstheia/gpio_led_blink_am261x-lp_r5fss0-0_nortos_ti-arm-clang/Release/gpio_led_blink_am261x-lp_r5fss0-0_nortos_ti-arm-clang.mcelf_xip --operation=flash-mcelf-XIP

闪存编程成功、当我将引导引脚设置为 xSPI 模式时、控制台显示一切正常:

xSPI_BOOT_SBL_Log.jpg

根据上面的页面、我想在 launch.json 文件中添加“loadSymbolsOnly"选项“选项、这样调试器就不会在调试开始时尝试进行闪存(在这种情况下,我无法只连接到目标)。 连接后、我可以更新一些性能测量变量、因此我猜我的应用程序的代码运行正常。 我还能够更改高速缓存设置以评估使用或不使用指令和/或数据高速缓存时的性能。

现在、我需要帮助解决以下问题(从闪存和引导引脚设置为 xSPI 模式运行时):

  • 我不明白为什么没有断点有效。
  • 我不明白调试器在我点击重启按钮时做了什么,但很明显,它什么都不做。
  • 当我想要更改缓存设置时(禁用它,将区域分配更改为不可缓存,强制执行正常写入等) 通过.syscfg 文件或通过定义我自己的 ti_DPL_config.c 文件、我始终发现该内核卡在中止、预取或未定义指令异常中。 从 OCRAM 运行时更改了参数时、我没有问题。
  • 是否有引导模式引脚和 SBL 组合可以使 CCS 能够对闪存进行编程并调试应用程序、而无需其他工具?

如有任何帮助、我们将不胜感激。 谢谢

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

    您好、以防万一、以下是一些更新:

    • 我发现在 CCS 选项中有一种禁止软件断点的方法、因为断点负责更改已编程闪存的位并导致未定义指令异常。
    • 我发现选项,当连接到探头,只重置核心. 刷写后、在 xSPI 引导中复位电路板(使用 sbl_ospi_multiple_elf.release.tiimage)、并且在连接到探针后、我仍需要重新启动电路板、以便 SBL 在 TCMA 中加载 R5 向量、否则它一直为零。
    • 我注意到了另外一些东西:在 xSPI 模式下引导时、当我处于调试会话中时、电路板似乎有时会自行复位。 你有什么想法为什么会发生这种情况? 引导 ROM 是设置看门狗还是类似的设置?

    现在、我最大的问题是、当我将代码放入闪存时、除了在 启用 XIP 或就地执行中包含的器件之外、如果在从闪存执行第一个函数开始时禁用 L1D 和 L1P 缓存、则会出现一个预取中止操作、我无法理解。 我已经检查了 MPU 配置、看起来是正确的。 中止提供 0x0317F10C 的故障加法 (IFAR)、该加法与 Cortex-R5 手册、ARM 架构参考手册以及应用程序链接器.map 文件中的任何内容都不匹配。 当执行从闪存执行的指令 LDR PC PC、0 时、会发生中止。

    这对您来说意味着什么吗?

    谢谢、  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [报价 userid=“480323" url="“ url="~“~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1598476/am2612-lp-am261-debug-issues-when-trying-to-enable-xip-from-ospi-flash
    • 我不明白为什么没有断点有效。
    [/报价]

    在 XIP 中、仅支持 FOT 硬件断点。 不支持软件断点。

    [报价 userid=“480323" url="“ url="~“~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1598476/am2612-lp-am261-debug-issues-when-trying-to-enable-xip-from-ospi-flash
    • 我不明白调试器在我点击重启按钮时做了什么,但很明显,它什么都不做。
    [/报价]

    要重新编写代码、需要对电路板进行下电上电。 在 XIP 中、CCS 不用于加载代码。 它仅用作调试工具。

    当我要更改缓存设置时(禁用它,将区域分配更改为不可缓存,强制执行正常写入等) 通过.syscfg 文件或通过定义我自己的 ti_DPL_config.c 文件、我始终发现该内核卡在中止、预取或未定义指令异常中。 当我从 OCRAM 运行时更改参数时、我没有问题。

    这种行为实际上不是预期行为。 请问以下链接器是否已进行更改?

    另外、为了开始使用 XIP、您可以尝试使用  examples\hello_world_XIP_FSS1  示例、并查看您是否能够调试它。 我将上传 CCS 20.4.0 的调试指南。

    是否组合了引导模式引脚和 SBL、可以使 CCS 能够在无需其他工具的情况下对闪存进行编程并调试应用程序?

    我们无法使用 CCS 中的任何内置选项来对闪存进行编程。 选择要使用的选项

    - UniFlash GUI

    - UART UniFlasher

    - CCS JTAG Uniflash 项目。

    请参阅以下文档以了解详情。

    此致、

    Aswin

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

    尊敬的 Gael:

    请参阅以下常见问题解答来设置 XIP 调试。

     【常见问题解答】AM2612-Q1:如何使用 CCS Theia 调试 XIP 应用 

    如果您有任何问题、请告诉我。

    此致、

    Aswin

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

    尊敬的 Aswin:

    感谢本指南和您的回答、但我在所有要点(链接器,缓存设置,删除任何可以安装断点的内容,禁止软件断点等)上都是正确的。

    我在加载的应用开始时添加了无限循环、 此时可以 使用调试器进行控制。

    我删除了 GEL 脚本以让 SBL 引导、引导引脚处于 xSPI 模式(但我知道我可以使用 DevBoot 模式与 GEL 脚本)。

    在我的应用程序开始时、我禁用缓存:  

       CacheP_DISABLE (CacheP_TYPE_L1P);
       CacheP_DISABLE (CacheP_TYPE_L1D);

     我仍有以下问题:

    • 我观察到闪存的特定地址发生了一些错误:一旦 分支到应用程序中的特定位置(在闪存中)、但收到带有奇怪指令操作码的预取错误。 现在我修改了代码、我收到了这个位置不存在的数据的数据中止错误。 在屏幕截图中:步骤 0:执行 0x601ED140 和  0x601ED144 处的代码之前 (在 r0 中移动 0x60211900)。 步骤 1:R0 加载了 0x60211900(请参阅 R6 等于 0;请参阅地址 0x60211900 处的数据为 0x7005CE94)。 步骤 2:当指令 LDR R6、[r0]被执行时、R6 变为 0x0004F2C7、而不是  0x7005CE94)。 我在没有内存视图和反汇编视图的情况下尝试了此操作(以删除任何调试器对闪存的访问)、但它执行了相同的操作、并且每次都在完全相同的位置。 如果我修改代码、我认为错误会在其他地方看到、并可能导致不同类型的错误。
    • 在 xSPI 模式下引导时以及调试期间、board/CPU 会自行复位。 这是正常的吗? 是否有看门狗或类似内容?
    • 我降低了 JTAG 的频率 1MHz 写在一个指南中的某个地方,但我有时仍然有与“无法访问的 DAP,...“相关的消息。 我仍然可以进行调试、但我提到了。

    根据我观察到的情况、我认为这可能与 SBL 闪存配置错误有关。 我使用 SDK 11.00.00.29 中的预编译 SBL:

    -- file=sbl_prebuilt/am261x-lp/sbl_ospi_moremol_elf.release.tiimage --操作=flash --flash-offset=0x0

    如果我使用 DevBOOT 模式、是否 有 GEL 脚本可用于同时 在最大速度模式下配置 OSPI 闪存?

    谢谢

    第 0 步:

     

    第 1 步:

    第 2 步:

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引述 userid=“678771" url="“ url="~“~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1598476/am2612-lp-am261-debug-issues-when-trying-to-enable-xip-from-ospi-flash/6169250

    我删除了 GEL 脚本以让 SBL 引导、引导引脚处于 xSPI 模式(但我知道我可以使用 DevBoot 模式与 GEL 脚本)。

    [/报价]

    尊敬的 Gael:  

    我们无法在开发引导模式下使用 XIP。 如果您使用 GEL 脚本、则外设将复位。 在 XIP 中、当您在 main () 函数时、我们需要 OSPI 和闪存进行初始化并正常运行。 如果有凝胶,那么这将不会发生。 因此、XIP 调试应仅在 OSPI/QSPI 引导模式下进行。

    在我的应用程序开始时、我禁用缓存

    这是初始查询中提到的 SDK 示例还是修改后的示例?

    [引述 userid=“678771" url="“ url="~“~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1598476/am2612-lp-am261-debug-issues-when-trying-to-enable-xip-from-ospi-flash/6169250
    • 在 xSPI 模式下引导时以及调试期间、board/CPU 会自行复位。 这是正常的吗? 是否有看门狗或类似内容?
    [/报价]

    否、这完全不符合预期。  

    您能分享一下您正在使用的项目吗? 如果这是不可能的,我应该采取 hello 字 XIP 示例添加 cache disablement 吗?

    我想试一下。 我计划将 AM261 LP 与 macronix 闪存配合使用。

    我也想知道,观察是否也一样,没有缓存禁用?

    此致、

    Aswin

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

    尊敬的 Aswin:

    对于 DevBoot 模式来说、我没有尝试这种模式、因此我会坚持使用 xSPI 模式。 感谢您的澄清。

    我使用我根据有关启用 XIP 模式的页面进行了修改的 GPIO led 闪烁示例、并添加了公司代码以运行基准测试。

    为了共享该项目,我将准备完全相同的一个没有 我们的公司代码,我将验证我仍然有相同的问题,然后发送给你(在他的假期后)。

    同时、我可以提供项目的配置方面。 您将看到我还为 RL2 添加了 OCRAM 区域、但在 SysConfig 文件中、我将其禁用。

    main.c:

    gpio_led_blink.c:

    TI_DPL_CONFIG.c(由 CCS 生成)

    e2e.ti.com/.../3872.ti_5F00_dpl_5F00_config.c

    链接器命令文件(由 CCS 生成、添加了.txt 扩展名)

    e2e.ti.com/.../linker.cmd.txt

    以下也是我与 uart_uniflash 配合使用的.cfg 文件:

    e2e.ti.com/.../fast_5F00_sbl_5F00_ospi.cfg

    此致、

    Gael

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

    尊敬的 Gael:

    我认为链接器脚本没有太大问题。 请在您的方便处与我分享该项目。  

    我也可以问,

    -您可以通过不调试来运行软件吗? 过程是刷写和引导。

    -您是否尝试过 Hello World XIP 示例? 如果在该示例中也进行了相同的修改、您是否会看到相同的问题?

    此致、

    Aswin

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

    尊敬的 Aswin:

    我 复制了我的工程 、并 删除了我 公司 自己的代码。 我在 gpio_led_blink_main () 函数中留下了一些使用 PMU 函数测量执行时间的小代码片段。

    现在程序已在闪存中进行编译和编程、行为再次不同但不会被发现、我仍然会观察到一些不受调试器控制的复位。

    我观察到的问题 如下:

    • 在 gpio_led_blink_main () 中,第 65-74 行的循环是以特定方式展开的,但发生的情况是第一次调用 CycleCounterP_reset ()(在闪存中 0x60101B20 分支和链接指令)
    • 然后在  CycleCounterP_reset()(在闪存中的 0x601034FC)中、有一个指向 PmuP_enableCounter() 的单切位的分支指令(在 0x6010351C)。
    • 在 veneer 代码(地址为 0x601042AC)中、LDR PC 应加载地址 0x60103CA8(如下图所示)、但在执行(使用汇编步进)时 、PC 会保存 HWIP_CONSTABLE 地址(地址为 0x7004D39A)

    我在此处压缩了工程:

    e2e.ti.com/.../gpio_5F00_led_5F00_blink_5F00_am261x_2D00_lp_5F00_r5fss0_2D00_0_5F00_nortos_5F00_ti_2D00_arm_2D00_clang_5F005F00_simple.zip

    谢谢、

    此致

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

    尊敬的 Gael:

    因为、我面临一些包容性问题  

    #include “XQD00010_basic_types.h"。“。 该文件不存在于工程中。 它似乎包含在您的系统的本地。 为了检查工程、我使用此包含的宏和数据类型注释了代码的包含和代码行。  

    我评论了第 48、49、61 和 72 行。 我也没有 HAL_COMPUTE_TIME_DELTA_US 的定义。

    至此、我得以在 XIP 中调试应用。  

    您是否还能提供.h 文件、以便在我这边进行相同的设置?

    此致、

    Aswin

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

    您好、Aswin、抱歉。 这是缺少的文件、最初放置在.\gpio_led_blink_am261x-lp_r5fss0-0_nortos_ti-arm-clang__simple\SRC_FCC\all_includes\中

    e2e.ti.com/.../XQD00010_5F00_BASIC_5F00_TYPES.h

    HAL_COMPUTE_DELTA_TIME_US 函数在文件 gpio_led_blink.c 的底部定义

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

    尊敬的 Aswin:

    在 Hello XIP FSS 示例的同时、我注意到以下主题: https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1519859/lp-am261-xip-example-does-not-seem-to-run?tisearch=e2e-sitesearch&keymatch=hello%252520xip%252520fss%252520am261#

    若要修改 MCELF_XIP_RANGE 线路的 SDK 文件 devconfig/devconfig.mak 以运行示例、是否仍需要这样做?

    运行此示例是否需要其他特定步骤?

    谢谢

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

    尊敬的 Gael:

    该示例使用的闪存地址范围为 0x8000 0000 至 0x8800 0000。   因此、必须修改 devconfig.mak 文件。

    此致、

    Aswin

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

    尊敬的 Aswin:

    我尝试了 Hello World FSS1 示例。 以下 是我的意见:

    • 此示例在修改后的 devconfig.mak 下工作(并在仅加载符号的目标配置下工作) :在串行控制台中、我可以看到显示的“Hello world“。
    • 我仍然注意到一些意外的 CPU 重置。 在这种情况下、调试器会保持连接、但 CPU 显示为运行。
    • 还有一点我没有回答、但我仍然可以看到、在 UART 引导模式下刷写程序后、当我返回到 xSPI 模式然后使用调试器连接时、地址 0x0 上的存储器看起来为空(全零)。 我需要对 RBL 或 SBL 进行板复位(使用板按钮)、以便在地址 0x0 处加载必要的内容。

    然后、我通过添加两行缓存停用来修改工程、如下所示:

    我可以看到程序在某个地方仍然崩溃。 如果只做这些修改,在我的构建中,它会在 UART_Open () 函数中的某个位置崩溃,在该函数中,相对于 PC 指令的加载不会将闪存中存在的正确数据放入目标寄存器中。

    是否可能错误使用缓存函数? 或者它们不包括错误的缓存无效?

    在您这边、您是否在我发送给您的项目上取得了任何进展?

    此致、

    Gael

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

    尊敬的 Gael:

    [引述 userid=“678771" url="“ url="~“~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1598476/am2612-lp-am261-debug-issues-when-trying-to-enable-xip-from-ospi-flash/6189003
    • 我仍然注意到一些意外的 CPU 重置。 在这种情况下、调试器会保持连接、但 CPU 显示为运行。
    [/报价]

    在控制台中进行调试时是否看到任何错误/警告消息? 您能否确认这两个选项在调试器配置中是否被禁用?

    还有一件我没想到的事、但我仍然可以看到、在 UART 引导模式下刷写程序后、当我返回到 xSPI 模式然后我连接调试器时、地址 0x0 上的存储器看起来为空(全零)。 我需要对 RBL 或 SBL 进行板复位(使用板按钮)、以便在地址 0x0 处加载必要的内容。

    刷写映像后、需要进行复位。 复位发生时、RBL 将检查 OSPI 引导介质并加载 SBL。

    hello world 示例仅适用于为我禁用 L1P 缓存。 CacheP_disable() API 在内部执行缓存无效。

    在您分享的项目中、我面临着类似的问题。 如果没有缓存禁用功能、它似乎可以正常工作。  

    请问 XIP 中的缓存禁用的原因是什么?

    此致、

    Aswin

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

    尊敬的 Aswin:

    关于错误复位:我可以看到一些“无法访问 DAP“消息、但在连接了调试器的情况下复位电路板时会出现这些消息。 我认为这些在这种情况下是正常的、我在调试期间没有任何其他消息、除非发生复位。  工程属性中的两个框确实未选中。

    对于 电路板复位、是的、我 知道 刷写后需要重置电路板、但我注意到有时在调试器连接后需要重置电路板。 但也许我错过了刷写后的电路板复位... 好的

    对于数据和指令高速缓存、我 希望能够激活或停用它们 、并尝试不同的存储器配置(使用 MPU)以查看其对性能的影响。 我想能够展示最差的性能(没有任何加速器的 XIP)、最佳性能(如果程序合适,来自 OCRAM)以及我们可以处于中间的位置、具体取决于使用的加速器(缓存,MPU 属性、Optiflash 等)。

    我和你的结论是一样的:只要我 保持 缓存启用,我没有问题,我尝试玩远程二级缓存昨天. 结果是当我使用高达 128KB 高速缓存的 RL2 时我可以获得结果。 但当 RL2 配置为双模时、我再次观察到一些意外行为。 但这一次、我想这可能与 syscfg 级别的 RL2 配置有关、而不是缓存问题。 您是否知道在双模下使用 RL2 有任何问题/限制?

    了解这些行为可能指向 SDK 问题、但也可能指向芯片问题、因此我认为深入了解这一点大体上有帮助。

    此致、

    Gael

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是否意识到在双模式下使用 RL2 有任何问题/限制?

    双模式下的 RL2 表示您已将 RL2 配置为 256KB 正确吗? 让我在内部与团队核实是否存在双模式下的任何问题。

    此外、建议始终在启用高速缓存的情况下使用 XIP。

    另请查看基准测试示例: software-dl.ti.com/.../EXAMPLES_BENCHMARKS.html

    此致、

    Aswin

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

    尊敬的 Gael:

    我与驾驶员团队进行了检查。

    1.建议在启用缓存的情况下运行 XIP。

    2.双模式下的 RL2 存在一些已知问题。

    对于 256KB 高速缓存、您可以使用两个 RL2 实例来缓存不同区域的闪存

    此致、

    Aswin

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

    尊敬的 Aswin:

    1.是的,我知道,没有问题。 正如我解释的那样、这对我来说是一种衡量每一种机制的好处的方法。 顺便说一下(如果它有助于您持续调查禁用缓存时从外部闪存获取的未定义指令)、我能够使用 MPU 属性禁用缓存并使用不同的存储器配置、而在我从内部 OCRAM 执行应用程序时没有出现任何问题。

    禁用高速缓存时、是否会弹出未定义的指令? 这是否可能是缓存 禁用函数中存在错误(无效或内存同步不正确)?

    2.很高兴知道,谢谢。  是 RL2 IP 问题还是 RL2 CCS 软件问题?  在 CCS 中、是否有方法可以 AD 2 RL2 配置? 我只能看到一个 RL2 配置(图片中“+"按钮“按钮为按钮为灰色)

    谢谢、

    Gael

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

    尊敬的 Gael:

    禁用高速缓存时、是否显示了未定义的指令? 这是否可能导致缓存 禁用函数中出现错误(无效或内存同步不当)?

    我知道禁用了缓存的 XIP 不受支持、因为问题会追溯到硬件。 有关 XIP 的 SDK 基准测试还使用已启用缓存的 MPU 区域中缓存的闪存区域。 有多个基准测试、这些基准测试之间是一致的。

    此致、

    Aswin

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

    您好 Aswin。 对于 RL2 是可以的、因此您说在双模式下的 RL2 在 AM2612 上不可行?  那么问题来自哪里;文档错误(如果只有一个实例,可以使用双模式)? 或 SDK 中的 RL2 驱动器进行的无效配置?

    针对高速缓存和 XIP、您说启用高速缓存对 XIP 有限制?  您知道这种限制的原因吗? 它是与闪存控制器、SDK 驱动程序进行的闪存控制器配置相关、还是与 MPU 中针对内核访问所配置的存储器类型相关(存储器类型的正常可以对访问进行分组,但对于严格排序或器件,这不可能,这是否是问题?)、或者是否有任何其他问题?

    此致、

    Gael

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

    尊敬的 Gael:

    让我在内部与团队核实有关问题和原因。

    此致、

    Aswin

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

    尊敬的 Gael:

    您是否尝试过在启用缓存的 hello_world_XIP 示例中使用 256KB 的 RL2?  

    此致、

    Aswin