S32K324 DFlash exception causing BUS FAULT

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
已解决

S32K324 DFlash exception causing BUS FAULT

跳至解决方案
1,363 次查看
zzt
Contributor I

Hello NXP Community and Experts,

I am encountering a persistent Bus Fault exception on S32K324 microcontroller, which seems to be triggered when accessing the DFlash memory.

Observations:

When debugging, BFSR and BFAR registers show a bus fault on access to address 0x1000a000. I obsecured that some abnormal behaviors happened in DFlash(At the beginning of one Fee bank)Some bytes of contents kept alternating between "????????" and "FFFFFFFF". Other flash banks operate normally. 

registers.pngdump.png

      Alternating between "????????" and "FFFFFFFFF"

What I have tried:

The same abnormal behavior persists whether the MCU is under set or stopped at breakpoint. 

Could you please point out the potential causes for a DFlash exception? Any suggestions or guidance would be greatly appreciated. Thank you in advance for your support!

#S32K3 

 

标记 (1)
0 项奖励
回复
1 解答
1,336 次查看
lukaszadrapa
NXP TechSupport
NXP TechSupport

Hi @zzt 

If the debugger shows ???????? characters, such data are corrupted due to double bit ECC error.
Generally, ECC error can occur due to:
1. Overprogramming. ECC is handled on 64bit (one double word) boundary. Users are allowed to program only a double word which is in fully erased state. If the double word is not in erased state (all bytes are 0xFF), it's necessary to erase whole sector (8KB).
2. Program or erase operation is terminated by unexpected reset, so the flash is left in undeterministic state.
3. Flash wear-out - when too many program/erase cycles have been performed on the flash.

In your case, it's caused by (2), most likely. Please take a look at:
https://community.nxp.com/t5/S32K/S32K3-Hard-fault-exception-on-startup-for-ECC-error-in-DFlash/m-p/...

Regards,
Lukas

在原帖中查看解决方案

2 回复数
1,337 次查看
lukaszadrapa
NXP TechSupport
NXP TechSupport

Hi @zzt 

If the debugger shows ???????? characters, such data are corrupted due to double bit ECC error.
Generally, ECC error can occur due to:
1. Overprogramming. ECC is handled on 64bit (one double word) boundary. Users are allowed to program only a double word which is in fully erased state. If the double word is not in erased state (all bytes are 0xFF), it's necessary to erase whole sector (8KB).
2. Program or erase operation is terminated by unexpected reset, so the flash is left in undeterministic state.
3. Flash wear-out - when too many program/erase cycles have been performed on the flash.

In your case, it's caused by (2), most likely. Please take a look at:
https://community.nxp.com/t5/S32K/S32K3-Hard-fault-exception-on-startup-for-ECC-error-in-DFlash/m-p/...

Regards,
Lukas

1,178 次查看
zzt
Contributor I

Hello Lukas,

Thank you for your explanation! It was very helpful. I have some follow-up questions and would appreciate your further insights.

I hope to make a conditional check for Dflash ECC Errors once the software enters HardFault, and execute an erase operation if this specific fault is detected. I plan to check these conditions:

  1. BFARVALID bit in SCB->BFSR is set.

  2. Either PRECISERR or IMPRECISERR bit in SCB->BFSR is set.

  3. The fault address in SCB->BFAR in the DFLASH address range.

     Do you think this logic is sufficient enough to identify a DFLASH ECC error? Are there any other flags or registers that I should also check to make this condition more precise and avoid false positives? (I noticed that MCRS[31] EER sometimes not set to 1 even though dflash ecc error happened)

    Thank you for your assistance. It is greatly appreciated.

Best,

Zzt

S32K3 

 

标记 (1)
0 项奖励
回复
%3CLINGO-SUB%20id%3D%22lingo-sub-2175671%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ES32K324%20DFlash%20%E5%BC%82%E5%B8%B8%E5%AF%BC%E8%87%B4%E6%80%BB%E7%BA%BF%E6%95%85%E9%9A%9C%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2175671%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E6%81%A9%E6%99%BA%E6%B5%A6%E7%A4%BE%E5%8C%BA%E5%92%8C%E4%B8%93%E5%AE%B6%E4%BB%AC%EF%BC%8C%E5%A4%A7%E5%AE%B6%E5%A5%BD%E3%80%81%3C%2FP%3E%3CP%3E%E6%88%91%E5%9C%A8%20S32K324%20%E5%BE%AE%E6%8E%A7%E5%88%B6%E5%99%A8%E4%B8%8A%E9%81%87%E5%88%B0%E4%BA%86%E6%8C%81%E7%BB%AD%E7%9A%84%E6%80%BB%E7%BA%BF%E6%95%85%E9%9A%9C%E5%BC%82%E5%B8%B8%EF%BC%8C%E8%AF%A5%E5%BC%82%E5%B8%B8%E4%BC%BC%E4%B9%8E%E6%98%AF%E5%9C%A8%E8%AE%BF%E9%97%AE%20DFlash%20%E5%86%85%E5%AD%98%E6%97%B6%E8%A7%A6%E5%8F%91%E7%9A%84%E3%80%82%3C%2FP%3E%3CP%3E%E6%84%8F%E8%A7%81%EF%BC%9A%3C%2FP%3E%3CP%3E%E8%B0%83%E8%AF%95%E6%97%B6%EF%BC%8CBFSR%20%E5%92%8C%20BFAR%20%E5%AF%84%E5%AD%98%E5%99%A8%E5%9C%A8%E8%AE%BF%E9%97%AE%E5%9C%B0%E5%9D%80%200x1000a000%20%E6%97%B6%E6%98%BE%E7%A4%BA%E6%80%BB%E7%BA%BF%E6%95%85%E9%9A%9C%E3%80%82%E6%88%91%E7%A1%AE%E4%BF%A1%E5%9C%A8%20dFlash%20%E4%B8%AD%E5%8F%91%E7%94%9F%E4%BA%86%E4%B8%80%E4%BA%9B%E5%BC%82%E5%B8%B8%E8%A1%8C%E4%B8%BA%EF%BC%88%E5%9C%A8%E4%B8%80%E4%B8%AA%20Fee%20bank%20%E7%9A%84%E5%BC%80%E5%A4%B4%EF%BC%89%E4%B8%80%E4%BA%9B%E5%AD%97%E8%8A%82%E7%9A%84%E5%86%85%E5%AE%B9%E4%B8%80%E7%9B%B4%E5%9C%A8%20%22%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%22%20%E5%92%8C%20%22%20FFFFFFF%20%22.%E5%85%B6%E4%BB%96%E9%97%AA%E5%AD%98%E6%93%8D%E4%BD%9C%E6%AD%A3%E5%B8%B8%E3%80%82%20%3C%2FP%3E%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22registers.png%22%20style%3D%22width%3A%20909px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22registers.png%22%20style%3D%22width%3A%20909px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F358501iCCC0DC9FA59C6BD6%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22registers.png%22%20alt%3D%22registers.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22dump.png%22%20style%3D%22width%3A%20475px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22dump.png%22%20style%3D%22width%3A%20475px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F358502i68E34B9E8A6070D9%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22dump.png%22%20alt%3D%22dump.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%20%20%20%20%20%20%E4%BA%A4%E6%9B%BF%E4%BD%BF%E7%94%A8%22%3F%3F%3F%3F%3F%3F%3F%3F%22%20%E5%92%8C%22FFFFFFFFF%22%3C%2FP%3E%3CP%3E%E6%88%91%E5%B0%9D%E8%AF%95%E8%BF%87%E7%9A%84%3C%2FP%3E%3CP%3E%E6%97%A0%E8%AE%BA%20MCU%20%E5%9C%A8%E6%96%AD%E7%82%B9%E5%A4%84%E5%A4%84%E4%BA%8E%E8%AE%BE%E7%BD%AE%E7%8A%B6%E6%80%81%E8%BF%98%E6%98%AF%E5%81%9C%E6%AD%A2%E7%8A%B6%E6%80%81%EF%BC%8C%E9%83%BD%E4%BC%9A%E5%87%BA%E7%8E%B0%E5%90%8C%E6%A0%B7%E7%9A%84%E5%BC%82%E5%B8%B8%E8%A1%8C%E4%B8%BA%E3%80%82%20%3C%2FP%3E%3CP%3E%E8%83%BD%E5%90%A6%E8%AF%B7%E6%82%A8%E6%8C%87%E5%87%BA%E5%AF%BC%E8%87%B4%20DFlash%20%E5%BC%82%E5%B8%B8%E7%9A%84%E6%BD%9C%E5%9C%A8%E5%8E%9F%E5%9B%A0%EF%BC%9F%E5%A6%82%E8%83%BD%E6%8F%90%E4%BE%9B%E4%BB%BB%E4%BD%95%E5%BB%BA%E8%AE%AE%E6%88%96%E6%8C%87%E5%AF%BC%EF%BC%8C%E5%B0%86%E4%B8%8D%E8%83%9C%E6%84%9F%E6%BF%80%E3%80%82%20%E6%8F%90%E5%89%8D%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E6%94%AF%E6%8C%81%EF%BC%81%3C%2FP%3E%3CP%3E%23S32K3%20%3C%2FP%3E%3CBR%20%2F%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2185440%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20S32K324%20DFlash%20exception%20causing%20BUS%20FAULT%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2185440%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E4%BD%A0%E5%A5%BD%EF%BC%8C%E5%8D%A2%E5%8D%A1%E6%96%AF%E3%80%81%3C%2FP%3E%3CP%3E%E8%B0%A2%E8%B0%A2%E6%82%A8%E7%9A%84%E8%A7%A3%E9%87%8A%EF%BC%81%E8%BF%99%E5%BE%88%E6%9C%89%E5%B8%AE%E5%8A%A9%E3%80%82%E6%88%91%E6%9C%89%E4%B8%80%E4%BA%9B%E5%90%8E%E7%BB%AD%E9%97%AE%E9%A2%98%EF%BC%8C%E5%B8%8C%E6%9C%9B%E6%82%A8%E8%83%BD%E6%8F%90%E4%BE%9B%E8%BF%9B%E4%B8%80%E6%AD%A5%E7%9A%84%E8%A7%81%E8%A7%A3%E3%80%82%3C%2FP%3E%3CP%3E%E6%88%91%E5%B8%8C%E6%9C%9B%E5%9C%A8%E8%BD%AF%E4%BB%B6%E8%BF%9B%E5%85%A5%20HardFault%20%E6%97%B6%E5%AF%B9%20Dflash%20ECC%20Errors%20%E8%BF%9B%E8%A1%8C%E6%9C%89%E6%9D%A1%E4%BB%B6%E6%A3%80%E6%9F%A5%EF%BC%8C%E5%B9%B6%E5%9C%A8%E6%A3%80%E6%B5%8B%E5%88%B0%E8%AF%A5%E7%89%B9%E5%AE%9A%E6%95%85%E9%9A%9C%E6%97%B6%E6%89%A7%E8%A1%8C%E6%93%A6%E9%99%A4%E6%93%8D%E4%BD%9C%E3%80%82%E6%88%91%E6%89%93%E7%AE%97%E6%A3%80%E6%9F%A5%E4%B8%80%E4%B8%8B%E8%BF%99%E4%BA%9B%E6%9D%A1%E4%BB%B6%EF%BC%9A%3C%2FP%3E%3COL%3E%3CLI%3E%3CP%20class%3D%22%22%3ESCB-%26gt%3BBFSR%3CSPAN%3E%20%E4%B8%AD%E7%9A%84%20%3C%2FSPAN%3EBFARVALID%3CSPAN%3E%20%E4%BD%8D%20%3C%2FSPAN%3E%20%E8%A2%AB%E7%BD%AE%E4%BD%8D%E3%80%82%3C%2FP%3E%3C%2FLI%3E%3CLI%3E%3CP%20class%3D%22%22%3E%3CSPAN%3E%3CSPAN%3E%20%3C%2FSPAN%3E%3C%2FSPAN%3EPRECISERR%3CSPAN%3E%3CSPAN%3E%20%3C%2FSPAN%3E%E6%88%96%3CSPAN%3E%20%3C%2FSPAN%3E%3C%2FSPAN%3EIMPRECISERR%3CSPAN%3E%3CSPAN%3E%20%3C%2FSPAN%3E%3CSPAN%3E%20%3C%2FSPAN%3E%20SCB-%3C%2FSPAN%3E%26gt%3BBFSR%3CSPAN%3E%3CSPAN%3E%20%3C%2FSPAN%3E%3C%2FSPAN%3E%E4%B8%AD%E7%9A%84%E4%BB%BB%E4%B8%80%E4%BD%8D%E8%A2%AB%E7%BD%AE%E4%BD%8D%E3%80%82%3C%2FP%3E%3C%2FLI%3E%3CLI%3E%3CP%20class%3D%22%22%3E%3CSPAN%3E%3CSPAN%3E%20%3C%2FSPAN%3E%3C%2FSPAN%3ESCB-%26gt%3BBFAR%3CSPAN%3E%3CSPAN%3E%20%3C%2FSPAN%3E%E4%B8%AD%E7%9A%84%3C%2FSPAN%3E%E6%95%85%E9%9A%9C%E5%9C%B0%E5%9D%80%E5%9C%A8%20DFLASH%20%E5%9C%B0%E5%9D%80%E8%8C%83%E5%9B%B4%E5%86%85%E3%80%82%3C%2FP%3E%3C%2FLI%3E%3C%2FOL%3E%3CP%3E%20%20%20%20%20%E6%82%A8%E8%AE%A4%E4%B8%BA%E8%BF%99%E7%A7%8D%E9%80%BB%E8%BE%91%E8%B6%B3%E4%BB%A5%E8%AF%86%E5%88%AB%20DFLASH%20ECC%20%E9%94%99%E8%AF%AF%E5%90%97%EF%BC%9F%E8%BF%98%E6%9C%89%E5%85%B6%E4%BB%96%E6%A0%87%E5%BF%97%E6%88%96%E5%AF%84%E5%AD%98%E5%99%A8%E9%9C%80%E8%A6%81%E6%A3%80%E6%9F%A5%E5%90%97%EF%BC%9F(%E6%88%91%E6%B3%A8%E6%84%8F%E5%88%B0%20MCRS%5B31%5D%20EER%20%E6%9C%89%E6%97%B6%E4%B8%8D%E4%BC%9A%E8%AE%BE%E7%BD%AE%E4%B8%BA%201%EF%BC%8C%E5%8D%B3%E4%BD%BF%20dflash%20ecc%20%E5%8F%91%E7%94%9F%E9%94%99%E8%AF%AF%EF%BC%89%E3%80%82%3C%2FP%3E%3CP%3E%20%20%20%20%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E5%B8%AE%E5%8A%A9%E3%80%82%E9%9D%9E%E5%B8%B8%E6%84%9F%E8%B0%A2%E3%80%82%3C%2FP%3E%3CP%3E%E6%9C%80%E5%A5%BD%E7%9A%84%3C%2FP%3E%3CP%3EZzt%3C%2FP%3E%3CP%3E%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fc-pwmxy87654%2FS32K3%2Fpd-p%2FS32K3%22%20class%3D%22lia-product-mention%22%20data-product%3D%221688-1%22%20target%3D%22_blank%22%3ES32K3%3C%2FA%3E%3C%2FP%3E%3CBR%20%2F%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2175888%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20S32K324%20DFlash%20exception%20causing%20BUS%20FAULT%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2175888%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E4%BD%A0%E5%A5%BD%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F234220%22%20target%3D%22_blank%22%3E%40zzt%3C%2FA%3E%3C%2FP%3E%0A%3CP%3E%E5%A6%82%E6%9E%9C%E8%B0%83%E8%AF%95%E5%99%A8%E6%98%BE%E7%A4%BA%20%3F%3F%3F%3F%3F%3F%3F%3F%20%E5%AD%97%E7%AC%A6%EF%BC%8C%E5%88%99%E8%BF%99%E4%BA%9B%E6%95%B0%E6%8D%AE%E7%94%B1%E4%BA%8E%E5%8F%8C%E4%BD%8D%20ECC%20%E9%94%99%E8%AF%AF%E8%80%8C%E6%8D%9F%E5%9D%8F%E3%80%82%3CBR%20%2F%3E%E4%B8%80%E8%88%AC%E6%9D%A5%E8%AF%B4%EF%BC%8C%E5%8F%91%E7%94%9F%20ECC%20%E9%94%99%E8%AF%AF%E7%9A%84%E5%8E%9F%E5%9B%A0%E5%8F%AF%E8%83%BD%E6%98%AF%EF%BC%9A%3CBR%20%2F%3E1.%20%E8%BF%87%E5%BA%A6%E7%BC%96%E7%A8%8B%E3%80%82ECC%20%E5%9C%A8%2064%20%E4%BD%8D%EF%BC%88%E4%B8%80%E4%B8%AA%E5%8F%8C%E5%AD%97%EF%BC%89%E8%BE%B9%E7%95%8C%E4%B8%8A%E5%A4%84%E7%90%86%E3%80%82%E7%94%A8%E6%88%B7%E5%8F%AA%E8%83%BD%E5%AF%B9%E5%A4%84%E4%BA%8E%E5%AE%8C%E5%85%A8%E6%93%A6%E9%99%A4%E7%8A%B6%E6%80%81%E7%9A%84%E5%8F%8C%E5%AD%97%E8%BF%9B%E8%A1%8C%E7%BC%96%E7%A8%8B%E3%80%82%E5%A6%82%E6%9E%9C%E5%8F%8C%E5%AD%97%E6%9C%AA%E5%A4%84%E4%BA%8E%E6%93%A6%E9%99%A4%E7%8A%B6%E6%80%81%EF%BC%88%E6%89%80%E6%9C%89%E5%AD%97%E8%8A%82%E5%9D%87%E4%B8%BA%200xFF%EF%BC%89%EF%BC%8C%E5%88%99%E5%BF%85%E9%A1%BB%E6%93%A6%E9%99%A4%E6%95%B4%E4%B8%AA%E6%89%87%E5%8C%BA%EF%BC%888KB%EF%BC%89%E3%80%82%3CBR%20%2F%3E2%E3%80%82%E7%A8%8B%E5%BA%8F%E6%88%96%E6%93%A6%E9%99%A4%E6%93%8D%E4%BD%9C%E5%9B%A0%E6%84%8F%E5%A4%96%20RESET%20%E8%80%8C%E7%BB%88%E6%AD%A2%EF%BC%8C%E5%9B%A0%E6%AD%A4%E9%97%AA%E5%AD%98%E5%A4%84%E4%BA%8E%E4%B8%8D%E7%A1%AE%E5%AE%9A%E7%8A%B6%E6%80%81%E3%80%82%3CBR%20%2F%3E3.%E9%97%AA%E5%AD%98%E6%8D%9F%E8%80%97%20-%20%E5%BD%93%E9%97%AA%E5%AD%98%E6%89%A7%E8%A1%8C%E4%BA%86%E5%A4%AA%E5%A4%9A%E6%AC%A1%E7%BC%96%E7%A8%8B%2F%E6%93%A6%E9%99%A4%E5%BE%AA%E7%8E%AF%E6%97%B6%E3%80%82%3C%2FP%3E%0A%3CP%3E%E5%B0%B1%E4%BD%A0%E7%9A%84%E6%83%85%E5%86%B5%E8%80%8C%E8%A8%80%EF%BC%8C%E5%BE%88%E5%8F%AF%E8%83%BD%E6%98%AF%E7%94%B1%E4%BA%8E%EF%BC%882%EF%BC%89%E9%80%A0%E6%88%90%E7%9A%84%E3%80%82%E8%AF%B7%E8%AE%BF%E9%97%AE%EF%BC%9A%3CBR%20%2F%3E%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2FS32K%2FS32K3-Hard-fault-exception-on-startup-for-ECC-error-in-DFlash%2Fm-p%2F2109306%2Fhighlight%2Ftrue%23M49516%22%20target%3D%22_blank%22%3Ehttps%3A%2F%2Fcommunity.nxp.com%2Ft5%2FS32K%2FS32K3-Hard-fault-exception-on-startup-for-ECC-error-in-DFlash%2Fm-p%2F2109306%2Fhighlight%2Ftrue%23M49516%3C%2FA%3E%3C%2FP%3E%0A%3CP%3E%E9%97%AE%E5%80%99%EF%BC%8C%3CBR%20%2F%3ELukas%3C%2FP%3E%3C%2FLINGO-BODY%3E