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.

[参考译文] AM2634:RBL固件将使用0x7010万至0x701FFFFFFF的OCRAM?

Guru**** 2538950 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1099448/am2634-rbl-firmware-will-use-the-ocram-from-0x70100000-to-0x701fffff

部件号:AM2634

各位专家,您好!  

我发现在QSPI引导模式下, 0x7010万到0x701FFFFFFF OCRAM具有随机初始值,但不具有0x0或0xF。 我想这是因为RBL固件使用此空间,如果不使用,请更正。  

我的客户在其应用程序中使用两个内核,我发现当他们将堆栈部分(.stack,irq_stack等)放入 0x7010万~0x701FFFFFFF OCRAM时,内核1-0有时会进入预取中止或数据中止异常。 这应该是由堆栈的随机初始值引起的。  

因此,我建议在  链接程序cmd文件中添加一些语句,以避免此错误?  

此致,  

意愿  

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

    您好,

    7010万 0x701fff"]我发现在0x701OC0或0xFF[0x701F]模式下 没有随机值,但没有0x701SPI]

    我还没有RBL/SBL内存使用情况的摘要。 我会调查并与您联系。

    SBL是否完成执行? SBL完成后,应用程序代码中是否发生中止?

    中止发生在何处? 它们是否发生在两个内核上? 如果仅将其中一个内核的堆栈置于OCRAM范围内,是否仅在该内核上发生中止?

    我不知道为什么堆栈内存中的随机值会导致问题,因为堆栈内存是显式推送/弹出的,当值推送到堆栈时,随机值将被覆盖。 您是否发现将内存初始化为已知的预定值可解决中止问题?

    此致,
    弗兰克

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

    您好,

    可执行文件从JTAG加载时是否正常工作? 如果将随机数据模式写入堆栈内存区域,它们是否可以从JTAG工作?

    此致,
    弗兰克

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

    您好,Frank,  

    在JTAG调试模式中,由于RAM的初始值为0x0,因此该程序可以工作。 原因是RBL固件未 在NOBOOT模式下使用OCRAM。  

    此致,  

    意愿  

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

    您好,Frank,  

    感谢您的回复。  

    7010万 0x701fff/4075120#SBL]是否407.512万是否完成执行? SBL完成后,应用程序代码中是否发生中止?[/QUOT]

    SBL已完成,应用程序代码中出现中止。  

    aborts7010万 0x701fff/4075120#4075120]aborts?407.512万?</s>407.512万 它们是否发生在两个内核上? 如果仅将其中一个内核的堆栈置于OCRAM范围内,是否仅在该内核上发生中止?[/QUOT]

    发生的位置是随机的。 它们仅发生在内核1-0中。 当核心的IRQ_STacks部分位于0x7010万范围时,将发生中止。   

    [quote userid="1.6636万" url="~/support/msprocs/arm-based微控制器-group/arm-based微控制器/f/arm-based微控制器-forum/109.9448万/am2634-rbl-firmware-will -use-The-ocram-frox70100000-to2634 -use-The-ocram-frox70100000-to 0x701fff/4075120#4075a7010万 0x701fff/4075120#4075a,407.512万,您4075您是否已确定了内存的初始化值?

    好主意。 我可以让客户尝试这种方法。   

    此致,  

    意愿  

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

    您好,

    当您使用首字母缩写词"RBL"时,您是指"SBL"吗?

    好的,我建议清除堆栈区域,因为这是在JTAG调试模式中观察到的。

    我会等待实验结果。

    此致,
    弗兰克

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

    您好,Frank,  

    我认为SBL不会操纵OCRAM空间(从0x7010万到0x701FFFFFFF),除非应该在其中放置一些内核的appimage。 从内存内容 中,我认为 OCRAM的随机值  是由R5F的ROM bootloader (RBL)写入的。 请帮助确认RBL固件是否会执行此操作。 谢谢。  

    可以通过将堆栈部分分配到0x7000万到0x7010万来解决此问题。 但我也会让客户在其第二个引导加载程序(SBL)中清理OCRAM。 感谢您的指导。  

    此致,  

    意愿  

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

    您好,

    内部专家告诉我以下信息: ROM使用来自TCMA的初始640B (IVT和启动代码)和16 KB 作为TCMB中的堆栈和全局数据。

    7010万 0x701fff/4076609#400000000]通过407.6609万通过将4亿将问题分配到0x7609[0x70609]0707000]</s>7.0609万 70.7万

    最好知道有一个变通办法。

    7010万 0x701fff/4076609#4076I](407.6609万(引用4076引用第二个加载器),但也会让客户在他们的SB76L[中清理)

    好的,我很想知道实验的结果。 正如我之前所说,我看不到OCRAM中的随机值如何导致堆栈出现问题。 他们是否确定这些随机值是SBL加载的静态代码/数据?

    此致,
    弗兰克

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

    您好,Frank,  

    感谢您的信息。  

    7010万 0x701fff/4077439#4077439#4077439]我407.7439万我想407.7439万想知道407.7439万知道实验的结果。 正如我之前所说,我看不到OCRAM中的随机值如何导致堆栈出现问题。[/QUOT]

    在可能的情况下,我可以想象,如果一些局部变量被用作指针,但没有初始化,堆栈中的随机变量将导致异常。  

    7010万 0x701fff/4077439#4077439#40MB/TCMA]使用407.7439万使用<xmt-block0>407.7439万16 KB 和TC439[40MB]的初始代码和TCMB/TCMB]

    好的,我需要在客户字段和我的CC卡中检查此信息。 如果这些随机值不是RBL编写的,我认为他们需要再次检查SBL。  

    将更新信息,感谢您的帮助。  

    此致,  

    意愿  

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

    您好,

    [QUOTE userid="49.3764万" url="~/suppers/pimcers/arm-based微控制器-group/arm-based微控制器/f/arm-based微控制器-forum/109.9448万/am2634-rbl-firmware-will -use-The-ocram-frof-0x70100000-to2634 -use-The-ocram-frof-0x70100000-to 0x701ffff-/4078086#4078086#7010万 0x701ffff-/4078086#4078086#如果407.8086万如果在407.8086万在本地堆栈初始化中使用了一些随机变量,则可以想象,但不会出现异常情况,那么在本地堆栈初始化中会出现异常。  [/引述]

    优点,但在使用这些变量之前,应该先初始化! 清除堆栈会掩盖问题。

    此致,
    弗兰克