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.

[参考译文] TMDS64EVM:当我尝试使用 AM6422 的 CR5 进行闪存写入时、会导致数据中止。

Guru**** 2805935 points

Other Parts Discussed in Thread: AM6422, SYSCONFIG

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1624497/tmds64evm-when-i-try-to-flash-write-with-cr5-of-am6422-it-results-in-data-abort

器件型号: TMDS64EVM
主题: AM6422SysConfig 中讨论的其他器件

您好、TI 支持团队。

我使用的是 CCS20 和 MCU_PLUS_SDK_am64x_11_01_00_17。
我使用 AM6422、IS25LX256 闪存和定制电路板。

当使用 AM6422 CR5 执行 Flash_write 时、会发生 DATA_ABORT。
调试时、
ospi_v0_lld.c
编译函数的选项
OSPI_writeFifoData

static void OSPI_writeFifoData(uintptr_t indAddr, const uint8_t *src, uint32_t wrLen)
{
    uint32_t temp = 0;
    uint32_t remaining = wrLen;
    uint32_t *srcPtr = (uint32_t *)src;

    while (remaining > 0)
    {
        if (remaining >= CSL_OSPI_FIFO_WIDTH)
        {
            CSL_REG32_WR(indAddr, *srcPtr); --> Data abort occurs here!
            remaining -= CSL_OSPI_FIFO_WIDTH;
        }

这些参数包括:
indAddr=1610612736
src = 0x7009E480
wrLen=256

在 SysConfig 中、CONFIG_MPU_REGION4 的起始地址为 0x60000000。

我想尽快知道什么是错的。

此致、

今泉清正。

 

 

 

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

    附加说明:在 CR5 SysConfig 的 OSPI 设置中、启用 DAC 已启用、读取模式为 READ_MODE_DAC。

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

    此自定义闪存使用 CCS12.5、MCU_PLUS_SDK_am64x_09_01_00_41 中的相同代码运行。

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

    请参阅以下章节“ 闪存编程故障 “(来自 AppNote:www.ti.com/.../sprads5.pdf)  

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


    您好 Vaibhav Kumar。
    感谢您的答复。


    对于 SysConfig 中的 CONFIG_MPU_REGION4、
    这是否意味着我应在“区域属性“中将“缓存“设置为“严格排序“?
    我改变了它,但没有改善,我仍然得到相同的错误。

    我该怎么办?

    此致、
    今泉清正。

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

    附加说明。
    我尝试了从 MCU SDK 11.1 导入 ospi_flash_IO_am64x-evm_r5fss0-0_nortos。
    我在 SysConfig 中检查了 CONFIG_MPU_REGION、
    但地址 0x60000000 不在那里。
    我从头开始创建了 R5 工程。
    是否应首先删除 0x60000000 处的 CONFIG_MPU_Region3?

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

    请尝试以这种方式添加、请注意您所在区域的设置中主管没有写入权限。 进行更改后、请告知我们结果。

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

    您好 Vaibhav Kumar。

    您的快速答复将非常有帮助。

    更改设置后、不再发生数据中止。
    目前、似乎已正确执行闪存读取和写入。
    到底出了什么问题?
    我希望提供更多详细信息。

    此致、
    今泉清正。

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

    访问权限设置是否不正确?
    或者允许代码执行检查是否错误?
    我不明白它是如何工作的。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    访问权限设置是否不正确?
    或者允许代码执行检查是否不正确?

    我很高兴它能为你效劳。

    是、您突出显示的两个原因都是正确的。

    基本上、内核处于监控模式、然后执行闪存写入、擦除和读取。 但您选择了“监控器模式“只读、但它应该是“读取“和“写入“。

    希望这有所帮助。

    另请参阅我在上面链接的应用手册来调试进一步的闪存故障。