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.

[参考译文] TMS570LS1114:使用 RTOS 时出现外部 SDRAM 访问问题

Guru**** 2392905 points
Other Parts Discussed in Thread: HALCOGEN, TMS570LS1114

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1107576/tms570ls1114-external-sdram-access-issue-using-rtos

器件型号:TMS570LS1114
主题中讨论的其他器件:HALCOGEN

尊敬的支持团队:

在我们的应用中、我们当前遇到了 使用 RTOS 访问外部 SDRAM 的问题。  为了进行测试、我们直接在主函数中写入和读取 RAM。 这似乎是没有问题的。  但是、在操作系统初始化后的另一个函数中、会发生 RAM 的某些区域未正确写入的情况。  禁用中断(使用操作系统函数 portENTER_critical ()/portEXIT_critical ())似乎可以解决问题,但这不是我们的解决方案。  随附的照片更清楚地描述了此问题:

  

在第一张照片中、可以看到一些区域仍然为0x00。 是否有任何解决 问题的工作解决方案或其他解决方案?

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

    您好 Konstandy,

    SDRAM 函数是否在任务中被调用? 在将数据写入 SDRAM 期间是否会定期调用中断 ISR?

    在没有 RTOS 的情况下将数据写入 main()中的 SDRAM 时是否启用了 IRQ?

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

    您好、QJ Wang、

    -我显示的示例是从其中一项跑动任务中调用的。

    -我们使用许多其他可以很好地使用中断的例程(例如 MIBSPI、CAN...)。

    -对于 main()的测试,操作系统操作期间激活的中断相同。  但是,SDRAM 在 main ()中调用_mpuInit_()后直接使用 ,其示例与随附的屏幕截图中所示的示例相同。

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

    字节写入使用 strb 指令、我不知道它是如何被其他 IRQ ISR 中断的。 SDRAM 的数据延迟时间和保持时间是否满足器件数据表中列出的 EMIF 规范?

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

    参数是根据 Halcogen 中的数据表(我们使用 IS42S16100H-7)设置的。 在没有操作系统或中断关闭  的情况下写入 SDRAM 没有问题、所以我认为参数是正确的。  

    我是否缺少其他任何可能会通过 taskENTER_critical 和 taskEXIT_critical 影响 SDRAM 的内容?  

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

    您好!

    我不是 FreeRTOS 的专家、因此我不确定 FreeRTOS 如何影响 SDRAM 访问。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [~ userid="429359" URL"μ C/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1107576/tms570ls1114-external-SDRAM-access-issue-using-using -rtos/4106586#4106586"]

    我是否缺少其他任何可能会通过 taskENTER_critical 和 taskEXIT_critical 影响 SDRAM 的内容?  

    [/报价]

     您的 TMS570LS1114器件是哪个芯片版本?

    TMS570LS12x/11x 微控制器芯片勘误表(芯片版本 B)(修订版 f) 具有勘误 器件#B064:

    查看随 HALCoGen 提供的 FreeRTOS 操作系统_portasm.asm 汇编器源文件、可以看到使用存储多 条 STMxx 指令的汇编器、因此 FreeRTOS 上下文切换代码可能会触发勘误 器件#B064。

    该勘误表在 TMS570LS12x/11x 微控制器芯片勘误表(芯片修订版本 C)(修订版 C)

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

    我们使用的是版本 C - TMS570LS1114CZWTQQ1。  

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

    同时,我们也解决了这个问题。 最终、这也与 MPU 相关。 访问 SDRAM 的任务没有正确的写入权限(没有严格要求)。