2390216_zh-CN

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

2390216_zh-CN

2390216_zh-CN

S32K344芯片,在SPD中添加eMCEM_1模块后,使用引导加载程序下载失败。

理清逻辑并重写:正如标题所示,当我在应用程序代码中启用 eMCEM_1 时,使用官方引导加载程序下载应用程序失败。如果我不擦除芯片,我就无法再次进入启动状态,即使重新启动也无法解决问题。我怀疑重新启动后,启动程序跳转到了应用程序,但应用程序没有运行。禁用 eMCEM_1 后,此问题不会出现。启用 eMCEM_1 后,如何使用启动 来刷写应用程序?

Re: S32K344 chip, failed to download using bootloader after adding eMCEM_1 module in spd

@XPW

问题描述不够清晰。
如果应用程序是通过引导加载程序进行编程的,则应用程序中包含的 eMCEM_1 配置不应影响编程过程本身,因为应用程序在下载期间不会执行,它只是一个二进制文件。
只有在引导加载程序将执行权移交给应用程序之后,与 eMCEM/FCCU 相关的配置才会变得重要,此时检查以下内容会很有帮助:

  • FCCU状态登记册
  • DCM 标志,MC_RGM 标志。
  • 或者应用程序是否真的执行到了 main() 函数。

根据目前的描述,尚不清楚是编程操作失败,还是编程成功但问题在应用程序开始执行后才出现。

您能详细说明一下事件的具体顺序吗?


此致,

丹尼尔

Re: S32K344 chip, failed to download using bootloader after adding eMCEM_1 module in spd

经过调查,我发现启用时,一些全局变量没有按定义进行初始化
请选择部分进行解释
首先,当我没有启用目标时

XPW_0-1783494597992.png
RTD 文件中的 Clock_ip.c 文件

XPW_1-1783494731850.pngXPW_2-1783494792174.png

电源IP。c 在 RTD 文件下

XPW_3-1783494883662.png

XPW_4-1783494909192.png
可以正确初始化
但是,当我激活它时

XPW_5-1783495188492.png

XPW_6-1783495223242.png
RTD 文件中的 Clock_ip.c 文件

XPW_7-1783495794585.png

XPW_8-1783495823066.png

RTD 文件中的 Power_ip.c

XPW_9-1783495866324.png

XPW_10-1783495886502.png

全局变量初始化失败

请问是否有更好的解决方案?










Re: S32K344 chip, failed to download using bootloader after adding eMCEM_1 module in spd

@XPW

根据截图来看,变量最初初始化是正确的。但是,在 eMCEM 初始化之后,Clock_Ip_pfkNotificationsCallback 包含一个无效指针。
eMCEM 并不会神奇地改变指针值。这看起来更像是以下几种问题之一:

  • 启动初始化(.data 副本 / .bss)初始化)未正确完成。
  • 在 main() 函数之前发生 RAM 损坏。
  • 连接段重叠。
  • 堆栈损坏。

您能否使用 SPD 演示项目中的链接器文件进行测试?


BR,丹尼尔


Re: S32K344 chip, failed to download using bootloader after adding eMCEM_1 module in spd

链接文件已修改如下。

XPW_0-1783992772039.png

XPW_1-1783993101988.png

我定义了三个全局变量:

XPW_2-1783993317537.png

我发现当未启用时,执行init_data-bss后,

XPW_3-1783993342206.png

XPW_4-1783993406406.png

它似乎已按 4 字节对齐并正确赋值。

但是当我启用后,执行init_data-bss后

XPW_5-1783994068084.png

XPW_6-1783994226472.png

它似乎没有对齐。

Re: S32K344 chip, failed to download using bootloader after adding eMCEM_1 module in spd

这种现象的原因是什么?我应该如何调查和解决它?

Re: S32K344 chip, failed to download using bootloader after adding eMCEM_1 module in spd

@XPW

根据截图来看,我并不认为变量初始化本身存在问题。variable_a 是一个 8 位变量,启用 eMCEM 会引入其他变量,这可能会改变 .data 的布局。部分。因此,看到变量处于不同的偏移量是正常的,这本身并不表示存在数据损坏。
我认为关键问题是,当应用程序独立组网 \\(SA\\)时会出现此问题,还是只有在通过引导加载程序编程和启动时才会出现此问题。
能否在不使用引导加载程序的情况下,直接使用调试器对应用程序进行编程并运行该程序,从而重现该问题?如果问题仅在通过引导加载程序加载应用程序后出现,则调查应集中在引导加载程序编程过程、映像布局或引导加载程序交接上,而不是应用程序本身。


BR,丹尼尔

タグ(1)
評価なし
バージョン履歴
最終更新日:
1週間前
更新者: