Other Parts Discussed in Thread: HALCOGEN
Hello,
I've recently come across a problem that I'm struggling to resolve.
For background, we have developed a custom BootLoader which resides in Flash Bank 0, and we have modified our Application's memory allocations through the linker command script to utilize Flash Bank 1. This scheme has been stable and worked reliably for the past year or so. However, a few months ago, there was an update to Halcogen (4.7.0 -> 4.7.01) which caused some BootLoader <---> Application issues. I won't go into detail here, but the solution we found was to modify the HL_sys_startup.c in the application to perform necessary initialization, as the BootLoader will clear any reset sources. Let's call the pre-Halcogen update Application v1.0, and the post-Halcogen update Application v2.0. Application v2.0 was tested and seemed stable.
Now, the problem we're seeing today is that when using the Debugger, we encounter a Data Abort exception in Application v2.0, but NOT Application v1.0. this abort is repeatable, and I've been able to gather the following data:
- The abort always happens when attempting to read a peripheral register (ADC, N2HET, etc.)
- The DFSR reads 0x00001008, indicating an External reset by an AXI Slave device during a Read
- The DFAR reads 0xFFF7C004. The abort happens when reading the OPMODECR register of ADC1.
- The Auxiliary DFSR reads 0x00500000, which indicates an AXI peripheral port caused the abort
What's odd is that this only happens when debugging. When building the application and programming through the BootLoader, this issue isn't seen. Additionally, this issue isn't seen in Application v1.0.
Some additional information:
- We are using the XDS110 Debug probe native to the Hercules LaunchPad
- My CCS environment seems to have been corrupted. For some reason, I've had to modify each one of my projects and manually add a binary image to flash when debugging/flashing (before, this had been handled automatically). I'm unsure of how/why. My only guess is that I installed some Hercules sample projects, and it included an installation of "nowFlash" which seems like a legacy microcontroller flashing app. Maybe this has hooks in the CCS environment?
Any help would be appreciated.
Thank you,
James