S32K311 UTest Programming: RWE Error and Crash During Programming

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

S32K311 UTest Programming: RWE Error and Crash During Programming

440 Views
Enoch_D
Contributor I

I am working on UTest programming on the S32K311 Microcontroller, and I am encountering a Read-While-Write Error (RWE) along with a controller crash during flash programming.

Issue:
After triggering the UTest programming sequence:

The controller jumps to the default handler (crash)
The RWE (Read While Write Error) flag is set

Context:
Application is executing from PFlash @ 0x00480000
UTest programming is initiated while running from PFlash
The actual trigger function (EHV set + polling) is executed from RAM

Implementation Flow:
1. Initialization & Preparation (FLASH_gSetPublicKey_Prepare)
Unlock UTest sector: PFLASH.PFCBLKU_SPELOCK[0].R &= ~(1U << 0);
Reset operation mode bits:EHV = 0,PGM = 0,ERS = 0
Clear status flags
Load target address: PFLASH.PFCPGM_PEADR_L.R = 0x1B000100U;
Load data into flash registers:
for (i = 0U; i < FLASH_lNumOfWords; i++)
{
FLASH.DATA[i].R = FLASH_pSrc[i];
}
Enable program mode: FLASH.MCR.B.PGM = 1U;

2. Programming Execution (from RAM) (FLASH_gSetPublicKey_Trigger)
Start programming: FLASH.MCR.B.EHV = 1U;
Poll until completion: Wait for DONE = 1
Stop programming:
FLASH.MCR.B.EHV = 0U;
FLASH.MCR.B.PGM = 0U;
Re-lock UTest sector

Observations:
Even though the trigger function runs from RAM, the system still:
Encounters RWE error & Jumps to default handler

Based on the above flow, I would appreciate if you could help identify the exact cause of the RWE fault and suggest the necessary corrections to ensure reliable UTest programming.

Thanks.

0 Kudos
Reply
1 Reply

369 Views
davidtosenovjan
NXP TechSupport
NXP TechSupport

Do you have disabled interrupts? Also flash prefetching and cache needs to be disabled as speculative or prefetch access to flash block 0 can occur what is same block as UTEST.

0 Kudos
Reply
%3CLINGO-SUB%20id%3D%22lingo-sub-2351536%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ES32K311%20UTest%20%E7%BC%96%E7%A8%8B%EF%BC%9A%E7%BC%96%E7%A8%8B%E8%BF%87%E7%A8%8B%E4%B8%AD%E5%87%BA%E7%8E%B0%20RWE%20%E9%94%99%E8%AF%AF%E5%92%8C%E5%B4%A9%E6%BA%83%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2351536%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E6%88%91%E6%AD%A3%E5%9C%A8%E5%AF%B9%20S32K311%20%E5%BE%AE%E6%8E%A7%E5%88%B6%E5%99%A8%E8%BF%9B%E8%A1%8C%20UTest%20%E7%BC%96%E7%A8%8B%EF%BC%8C%E5%9C%A8%E9%97%AA%E5%AD%98%E7%BC%96%E7%A8%8B%E8%BF%87%E7%A8%8B%E4%B8%AD%E9%81%87%E5%88%B0%E4%BA%86%E8%AF%BB%E5%86%99%E9%94%99%E8%AF%AF%20(RWE)%20%E5%92%8C%E6%8E%A7%E5%88%B6%E5%99%A8%E5%B4%A9%E6%BA%83%E3%80%82%3C%2FP%3E%3CP%3E%E9%97%AE%E9%A2%98%EF%BC%9A%E8%A7%A6%E5%8F%91%E4%BF%A1%E5%8F%B7%20uTest%20%E7%BC%96%E7%A8%8B%E5%BA%8F%E5%88%97%3CBR%20%2F%3E%E5%90%8E%EF%BC%9A%3C%2FP%3E%3CP%3E%E6%8E%A7%E5%88%B6%E5%99%A8%E8%B7%B3%E8%BD%AC%E5%88%B0%E9%BB%98%E8%AE%A4%E5%A4%84%E7%90%86%E7%A8%8B%E5%BA%8F%EF%BC%88%E5%B4%A9%E6%BA%83%EF%BC%89%3CBR%20%2F%3ERWE%EF%BC%88%E8%AF%BB%E5%86%99%E9%94%99%E8%AF%AF%EF%BC%89%E6%A0%87%E5%BF%97%E5%B7%B2%E8%AE%BE%E7%BD%AE%3C%2FP%3E%3CP%3E%E4%B8%8A%E4%B8%8B%E6%96%87%EF%BC%9A%3CBR%20%2F%3E%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E6%AD%A3%E5%9C%A8%E4%BB%8E%20pFlash%20%40%200x00480000%20%E6%89%A7%E8%A1%8C%20%3CBR%20%2F%3E%20uTest%20%E7%BC%96%E7%A8%8B%E6%98%AF%E5%9C%A8%E4%BB%8E%20pFlash%20%3CBR%20%2F%3E%20%E8%BF%90%E8%A1%8C%E6%97%B6%E5%90%AF%E5%8A%A8%E5%AE%9E%E9%99%85%E7%9A%84%E8%A7%A6%E5%8F%91%E5%87%BD%E6%95%B0%EF%BC%88EHV%20%E8%AE%BE%E7%BD%AE%20%2B%20%E8%BD%AE%E8%AF%A2%EF%BC%89%E6%98%AF%E4%BB%8E%20RAM%20%E6%89%A7%E8%A1%8C%E7%9A%84%3C%2FP%3E%3CP%3E%E5%AE%9E%E6%96%BD%E6%B5%81%E7%A8%8B%EF%BC%9A%3CBR%20%2F%3E1.%E5%88%9D%E5%A7%8B%E5%8C%96%20%26amp%3B%20%E5%87%86%E5%A4%87%20(flash_gsetPublickey_prepare)%20%3CBR%20%2F%3E%20%E8%A7%A3%E9%94%81%20uTest%20%E6%89%87%E5%8C%BA%EF%BC%9APFLASH.PFCBLKU_SPELOCK%20%5B0%5D%20.R%20%26amp%3B%20%3D%20~%20(1U%20%26lt%3B%20%26lt%3B%200)%EF%BC%9B%3CBR%20%2F%3ERESET%20%E6%93%8D%E4%BD%9C%E6%A8%A1%E5%BC%8F%20bits%3A%20EHV%20%3D%200%EF%BC%8CPGM%20%3D%200%EF%BC%8CERS%20%3D%200%EF%BC%8CERS%20%3D%200%20%3CBR%20%2F%3E%20%E5%8A%A0%E8%BD%BD%E7%9B%AE%E6%A0%87%E5%9C%B0%E5%9D%80%EF%BC%9APFLASH.PFCPGM_PEADR_L.R%20%3D%200x1b000100U%EF%BC%9B%E5%B0%86%E6%95%B0%E6%8D%AE%E5%8A%A0%E8%BD%BD%E5%88%B0%E9%97%AA%E5%AD%98%E5%AF%84%E5%AD%98%E5%99%A8%EF%BC%9Afor%20(i%20%3D%200%20%3CBR%20%2F%3E%20U%EF%BC%9Bi%20%26lt%3B%20Flash_lnumofWords%3B%20i%2B%2B)%20%7BFLASH.DATA%20%5Bi%5D%20.R%20%3D%20%3CBR%20%2F%3E%20%3CBR%20%2F%3E%20%3CBR%20%2F%3E%20%3CBR%20%2F%3Eflash_psrc%20%5Bi%5D%3B%3CBR%20%2F%3E%7D%20%3CBR%20%2F%3E%20%E5%90%AF%E7%94%A8%E7%BC%96%E7%A8%8B%E6%A8%A1%E5%BC%8F%EF%BC%9AFLASH.MCR.B.PGM%20%3D%201U%EF%BC%9B%3C%2FP%3E%3CP%3E2.%E6%89%A7%E8%A1%8C%E7%BC%96%E7%A8%8B%EF%BC%88%E4%BB%8E%20RAM%EF%BC%89%20(FLASH_gSetPublicKey_Trigger)%3CBR%20%2F%3E%E5%BC%80%E5%A7%8B%E7%BC%96%E7%A8%8B%EF%BC%9AFLASH.MCR.B.EHV%20%3D%201U%3B%3CBR%20%2F%3E%E8%BD%AE%E8%AF%A2%E7%9B%B4%E8%87%B3%E5%AE%8C%E6%88%90%EF%BC%9A%E7%AD%89%E5%BE%85%20DONE%20%3D%201%3CBR%20%2F%3E%E5%81%9C%E6%AD%A2%E7%BC%96%E7%A8%8B%EF%BC%9A%3CBR%20%2F%3EFLASH.MCR.B.EHV%20%3D%200U%EF%BC%9B%3CBR%20%2F%3EFLASH.MCR.B.PGM%20%3D%200U%EF%BC%9B%3CBR%20%2F%3E%E9%87%8D%E6%96%B0%E9%94%81%E5%AE%9AUTest%20%E6%89%87%E5%8C%BA%3C%2FP%3E%3CP%3E%E8%A7%82%E5%AF%9F%EF%BC%9A%3CBR%20%2F%3E%E5%B0%BD%E7%AE%A1%E8%A7%A6%E5%8F%91%E5%99%A8%E5%87%BD%E6%95%B0%E4%BB%8E%20RAM%20%E8%BF%90%E8%A1%8C%EF%BC%8C%E4%BD%86%E7%B3%BB%E7%BB%9F%E4%BB%8D%E7%84%B6%EF%BC%9A%3CBR%20%2F%3E%E9%81%87%E5%88%B0%20RWE%20%E9%94%99%E8%AF%AF%20%26amp%3B%20%E8%B7%B3%E8%BD%AC%E5%88%B0%E9%BB%98%E8%AE%A4%E5%A4%84%E7%90%86%E7%A8%8B%E5%BA%8F%3C%2FP%3E%3CP%3E%E6%A0%B9%E6%8D%AE%E4%B8%8A%E8%BF%B0%E6%B5%81%E7%A8%8B%EF%BC%8C%E5%A6%82%E6%9E%9C%E6%82%A8%E8%83%BD%E5%B8%AE%E5%8A%A9%E7%A1%AE%E5%AE%9A%20RWE%20%E6%95%85%E9%9A%9C%E7%9A%84%E7%A1%AE%E5%88%87%E5%8E%9F%E5%9B%A0%EF%BC%8C%E5%B9%B6%E6%8F%90%E5%87%BA%E5%BF%85%E8%A6%81%E7%9A%84%E4%BF%AE%E6%AD%A3%E5%BB%BA%E8%AE%AE%EF%BC%8C%E4%BB%A5%E7%A1%AE%E4%BF%9D%E5%8F%AF%E9%9D%A0%E7%9A%84%20UTest%20%E7%BC%96%E7%A8%8B%EF%BC%8C%E6%88%91%E5%B0%86%E4%B8%8D%E8%83%9C%E6%84%9F%E6%BF%80%E3%80%82%3C%2FP%3E%3CP%3E%E8%B0%A2%E8%B0%A2%E3%80%82%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2352917%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20S32K311%20UTest%20Programming%3A%20RWE%20Error%20and%20Crash%20During%20Programming%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2352917%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E6%82%A8%E6%98%AF%E5%90%A6%E7%A6%81%E7%94%A8%E4%BA%86%E4%B8%AD%E6%96%AD%EF%BC%9F%E6%AD%A4%E5%A4%96%EF%BC%8C%E8%BF%98%E9%9C%80%E8%A6%81%E7%A6%81%E7%94%A8%E9%97%AA%E5%AD%98%E9%A2%84%E5%8F%96%E5%92%8C%E9%AB%98%E9%80%9F%E7%BC%93%E5%AD%98%EF%BC%8C%E5%9B%A0%E4%B8%BA%E5%AF%B9%E9%97%AA%E5%AD%98%200%20%E5%9D%97%E7%9A%84%E6%8A%95%E6%9C%BA%E6%88%96%E9%A2%84%E5%8F%96%E8%AE%BF%E9%97%AE%E5%8F%AF%E8%83%BD%E4%BC%9A%E5%8F%91%E7%94%9F%EF%BC%8C%E8%80%8C%E9%97%AA%E5%AD%98%200%20%E5%9D%97%E4%B8%8E%20UTEST%20%E6%98%AF%E5%90%8C%E4%B8%80%E4%B8%AA%E5%9D%97%E3%80%82%3C%2FP%3E%3C%2FLINGO-BODY%3E