S32K324: Why are variable changes in Cache not visible in the debugger?

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

S32K324: Why are variable changes in Cache not visible in the debugger?

Jump to solution
1,041 Views
aprilaaa
Contributor I

I am currently working with the S32K324 and noticed an issue when use trace32 observing variables during debugging. Specifically, I can observe changes to variables in non-cacheable sections, but not those in cacheable sections.

 

// This change is visible
volatile uint32 g_cnt __attribute__((section(".non_cacheable_data")));

// This change is NOT visible
volatile BaseType_t testResult = 0x33U;

g_cnt++; // Observed change: OK
testResult = 0x5AU; // Observed change: FAIL (Value remains 0x33 or unchanged in memory window)

aprilaaa_0-1769408579878.pngaprilaaa_0-1769408579878.png

 

 

aprilaaa_0-1769408474300.pngaprilaaa_0-1769408474300.png

 

 

 

0 Kudos
Reply
1 Solution
995 Views
davidtosenovjan
NXP TechSupport
NXP TechSupport

There are some TRACE32 options affecting this

(1) OnCE access - SYStem.CpuAccess

(2) NEXUS access - SYStem.MemAccess and SYStem.Option DUALPORT

Also it depends on used access class (you may see it in the memory dump window for instance) - see attached manual screenshot.

access_classes.pngaccess_classes.png

Try to use access class DC.

Otherwise I would recommend to contact Lauterbach support.

View solution in original post

0 Kudos
Reply
2 Replies
996 Views
davidtosenovjan
NXP TechSupport
NXP TechSupport

There are some TRACE32 options affecting this

(1) OnCE access - SYStem.CpuAccess

(2) NEXUS access - SYStem.MemAccess and SYStem.Option DUALPORT

Also it depends on used access class (you may see it in the memory dump window for instance) - see attached manual screenshot.

access_classes.pngaccess_classes.png

Try to use access class DC.

Otherwise I would recommend to contact Lauterbach support.

0 Kudos
Reply
835 Views
rweiss
Contributor V

The screenshot shows the state before the assignment takes place. You would have to do at least one more step to execute the variable assignment.

Tags (1)
0 Kudos
Reply
%3CLINGO-SUB%20id%3D%22lingo-sub-2300175%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ES32K324%3A%20Why%20are%20variable%20changes%20in%20Cache%20not%20visible%20in%20the%20debugger%3F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2300175%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EI%20am%20currently%20working%20with%20the%20S32K324%20and%20noticed%20an%20issue%20when%20use%20trace32%20observing%20variables%20during%20debugging.%20Specifically%2C%20I%20can%20observe%20changes%20to%20variables%20in%20non-cacheable%20sections%2C%20but%20not%20those%20in%20cacheable%20sections.%3C%2FP%3E%3CBR%20%2F%3E%3CP%3E%2F%2F%20This%20change%20is%20visible%3CBR%20%2F%3Evolatile%20uint32%20g_cnt%20__attribute__((section(%22.non_cacheable_data%22)))%3B%3C%2FP%3E%3CP%3E%2F%2F%20This%20change%20is%20NOT%20visible%3CBR%20%2F%3Evolatile%20BaseType_t%20testResult%20%3D%200x33U%3B%3C%2FP%3E%3CP%3Eg_cnt%2B%2B%3B%20%2F%2F%20Observed%20change%3A%20OK%3CBR%20%2F%3EtestResult%20%3D%200x5AU%3B%20%2F%2F%20Observed%20change%3A%20FAIL%20(Value%20remains%200x33%20or%20unchanged%20in%20memory%20window)%3C%2FP%3E%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22aprilaaa_0-1769408579878.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22aprilaaa_0-1769408579878.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22aprilaaa_0-1769408579878.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F374188iB54A722A5ACE4E5E%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22aprilaaa_0-1769408579878.png%22%20alt%3D%22aprilaaa_0-1769408579878.png%22%20%2F%3E%3Cspan%20class%3D%22lia-inline-image-caption%22%20onclick%3D%22event.preventDefault()%3B%22%3Eaprilaaa_0-1769408579878.png%3C%2Fspan%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FP%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22aprilaaa_0-1769408474300.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22aprilaaa_0-1769408474300.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22aprilaaa_0-1769408474300.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F374185iD31CC0E665FD3159%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22aprilaaa_0-1769408474300.png%22%20alt%3D%22aprilaaa_0-1769408474300.png%22%20%2F%3E%3Cspan%20class%3D%22lia-inline-image-caption%22%20onclick%3D%22event.preventDefault()%3B%22%3Eaprilaaa_0-1769408474300.png%3C%2Fspan%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FP%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2300315%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20S32K324%3A%20Why%20are%20variable%20changes%20in%20Cache%20not%20visible%20in%20the%20debugger%3F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2300315%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EThere%20are%20some%20TRACE32%20options%20affecting%20this%3C%2FP%3E%0A%3CP%3E(1)%20OnCE%20access%20-%20SYStem.CpuAccess%3C%2FP%3E%0A%3CP%3E(2)%20NEXUS%20access%20-%20SYStem.MemAccess%20and%20SYStem.Option%20DUALPORT%3C%2FP%3E%0A%3CP%3EAlso%20it%20depends%20on%20used%20access%20class%20(you%20may%20see%20it%20in%20the%20memory%20dump%20window%20for%20instance)%20-%20see%20attached%20manual%20screenshot.%3C%2FP%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22access_classes.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22access_classes.png%22%20style%3D%22width%3A%20336px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22access_classes.png%22%20style%3D%22width%3A%20336px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F374222i3A9785898F9156F8%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22access_classes.png%22%20alt%3D%22access_classes.png%22%20%2F%3E%3Cspan%20class%3D%22lia-inline-image-caption%22%20onclick%3D%22event.preventDefault()%3B%22%3Eaccess_classes.png%3C%2Fspan%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3ETry%20to%20use%20access%20class%20DC.%3C%2FP%3E%0A%3CP%3EOtherwise%20I%20would%20recommend%20to%20contact%20Lauterbach%20support.%3C%2FP%3E%0A%3CP%3E%E2%80%83%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2321303%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20S32K324%3A%20Why%20are%20variable%20changes%20in%20Cache%20not%20visible%20in%20the%20debugger%3F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2321303%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EThe%20screenshot%20shows%20the%20state%20before%20the%20assignment%20takes%20place.%20You%20would%20have%20to%20do%20at%20least%20one%20more%20step%20to%20execute%20the%20variable%20assignment.%3C%2FP%3E%3C%2FLINGO-BODY%3E