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.

[参考译文] RM48L952:RM48:TI 引导加载程序中闪存初始化驱动程序与 HalCoGen 生成的实现之间的差异

Guru**** 2481465 points
Other Parts Discussed in Thread: HALCOGEN

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/678921/rm48l952-rm48-difference-between-flash-initialization-driver-in-ti-bootloader-and-halcogen-generated-implementation

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

您好!

我们使用的是 Hercules RM48l952zwt。 用于 RM 48和4.3.00 HalCoGen 的5.2.12 TI 引导加载程序。 在下面上传了 TI 引导加载程序和 HalCoGen 通用驱动程序。 TI 引导加载程序中的闪存初始化驱动程序与为闪存初始化生成的 HalCoGen 实现之间有何区别?  原因是 HalCoGen 生成的代码即使在交流电波动时也非常稳定、但 TI 引导加载程序版本会在初始化时损坏闪存。 在 TI 引导加载程序中、我们需要做些什么与 HalCoGen 代码一样、以便在初始化时出现类似的闪存损坏?  谢谢你。

e2e.ti.com/.../7103.boot_5F00_sdcard.zipe2e.ti.com/.../4762.HalCoGen-_2800_2_2900_.zip

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

    两个项目对闪存使用相同的设置:
    数据读取等待状态:3.
    地址等待状态:1.

    由于引导加载程序是6年前开发的、因此它不包含多个勘误表的变通办法。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 QJ、

    谢谢你。 我们正在发货、需要引导加载程序。 我们可以从何处开始仔细地将 HalCoGen 版本中的权变措施添加到 TI 引导加载程序版本? 是否有一个列表、我可以有条不紊地向下并将更改添加到列表中? 如果交流电波动、我们只需要 HalCoGen 初始化代码中的任何内容来保护闪存、使闪存在初始化时不会损坏。 再次感谢你。 塔米
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 QJ、我们进行了逆向工程、并在 HalCoGen 初始化代码和引导加载程序初始化代码之间执行了一个比较。 其中一些差异包括:

    1.in 函数_c_int00:

    1.1 _coreInitRegisters_();#31未在 halcogen 版本中初始化、#19未在引导加载程序版本中初始化

    1.2_coreInitStackPointer_() ;**两个版本的#31和内存分配都不同

    1.3 _coreEnableEventBusExport_();引导加载程序版本中缺少

    1.4_coreEnableFlashEcc_();引导加载程序版本中缺失

    1.5 _errata_CORTEXR4_66_();在引导加载程序版本中缺失、但没有要复制的源代码、它位于哪个库中?

    1.6 _errata_CORTEXR4_57_();引导加载程序版本中缺少、但没有要复制的源代码、它位于哪个库中?

    1.7不在引导加载程序版本中。 if (esmREG->SR1[2])!= 0U)  {  for (;;){ }//* Wait */

    在函数 systemInit 中、引导加载程序版本中缺少多路复用器

    3.在函数设置中:systemREG1->PLLCTL1 设置为不同= 0x00000000U | 0x20000000U  |(0x1F)<<24U   | 0x00000000U  |((6U - 1U)<<16U)   |((120U - 1U)<<8U);//在 HalCoGen 版本中设置为150U

    4.在函数中,设置闪存:flashWREG->FBFALBACK 的设置不同。 在引导加载程序版本= 0x00000000   |(SYS_ACTIVE << 14U)   |(SYS_SLEEP << 12U)   |(SYS_SLEEP << 10U)  |(SYS_SLEEP << 8U)

    |(SYS_SLEEP<< 6U)|(SYS_SLEEP << 4U)|(SYS_ACTIVLE<< 2U)| SYS_ACTIVE;                    

    在 HalCoGen 版本= 0x000000000000U  |(UINT32)((UINT32) SYS_ACTIVE << 14U)/*组7 */  |(UINT32)(((UINT32) SYS_ACTIVE << 2U) /*组1 */   |(UINT32)(((UINT32) SYS_ACTIVE << 0U);//组0 *


    5.在函数 trimPLO 中:引导加载程序版本设置不同 systemREG1->LPOMONCTL    =(1U <<24U)  |(16U <<8U)  | 8U;// halcogen 版本设置为16U


    6.在函数映射中:

    6.1 systemREG1->CDDIS 在引导加载程序版本中设置不同=(false << 4)/* AVCLK 1 off */ |(true << 5)/* AVCLK 2 off */ |(false << 8)/* VCLK3 off */  |(false << 10)/* AVCLK 3 off */                    |(false << 8)/* AVCLK off */* AVCLK off

    在 HalCoGen 版本= (UINT32)((UINT32) 0U <<4U)/* AVCLK 1 OFF */ |(UINT32)((UINT32) 1U <<5U)/* AVCLK 2 OFF */|(UINT32)(UINT32) 0U <<8U)/* VCLK3(UINT3)/关闭 (UINT32)
     |(uint32)((uint32) 0U << 10U)//* AVCLK 3 off */ |(uint32)(((uint32) 0U << 11U);//* AVCLK 4 off */

    6.2引导加载程序代码中缺少 systemREG1->PLLCTL2和 systemREG1->CLKCNTL,但在 HalCoGen 代码中设置

    6.3 systemREG2->VCLKACON1设置不同。 在引导加载程序版本=(1U << 24) | 1 << 20U |(SYS_VCLK << 16) |(1U << 8) | 1 << 4U 中

    在 HalCoGen 版本= (uint32)((uint32)(1U - 1U)<< 24U)  |(uint32)((uint32) 0U << 20U )|(uint32)(((uint32) SYS_VCLK << 16U) |(uint32)(uint32)   (uint32)< uint32 (uint32)| uint32

    7.在引导加载程序版本中、F021 API 库的版本不同(2.1.00、Cortex R4BE 和 LE 库) 、而 HalCoGen 集成版本不同(仅 Cortex R4 LE V3D16)

    我们能否安全地更改引导加载程序代码、使其与 HalCoGen 生成的代码相同? 对于我们没有的勘误代码、我们可以从哪里获得库? 我们能否安全地将 HalCoGen 版本的 F021库替换为引导加载程序版本?  再次感谢你。

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

    我们将更新引导加载程序。 有关器件初始化、请参阅此应用手册。
    www.ti.com/.../spna106d.pdf
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    QJ 您好、谢谢。 新的引导加载程序何时可用?  Tammy、请注意

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

    我将在第三季度发布新版本。 谢谢