Using the flash overlay function of the 5748G causes the IVOR1 exception to be triggered

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

Using the flash overlay function of the 5748G causes the IVOR1 exception to be triggered

Jump to solution
769 Views
shanix
Contributor II

I want to use the flash overlay function of 5748G to map logical addresses to different physical addresses. I used 10 CRDs to map a contiguous logical address space starting at 0x09000000 with a size of 2560KB to the physical address of the flash starting at 0x012C0000, i.e. one CRD maps a space of 256KB.

I used the code shown in the figure. When the code is executed to configure the first 8 CRDs everything works fine, when word0 of the 9th CRD is configured an IVOR1 exception is triggered and it does it every time. I want to know why and how to solve this problem

Thanks!Snipaste_2023-07-01_15-26-13.png

0 Kudos
1 Solution
662 Views
lukaszadrapa
NXP TechSupport
NXP TechSupport

Hi @shanix 

there are 8 descriptors only. That's the reason. It's not very clear in the reference manual but it's mentioned in this section:

lukaszadrapa_0-1688377391248.png

 It's not mentioned in the section which talks about flash overlay but it's still the same number.

And if SAFE_CAL (Safety Calibration) is enabled, the number of regions is reduced to one half. The second half is used for redundancy. Only 4 descriptors can be used in this case.

Regards,

Lukas

View solution in original post

4 Replies
663 Views
lukaszadrapa
NXP TechSupport
NXP TechSupport

Hi @shanix 

there are 8 descriptors only. That's the reason. It's not very clear in the reference manual but it's mentioned in this section:

lukaszadrapa_0-1688377391248.png

 It's not mentioned in the section which talks about flash overlay but it's still the same number.

And if SAFE_CAL (Safety Calibration) is enabled, the number of regions is reduced to one half. The second half is used for redundancy. Only 4 descriptors can be used in this case.

Regards,

Lukas

656 Views
shanix
Contributor II
Thank you very much, I overlooked that.
Is there any way to map 10 flash blocks of 256KB size if there are only 8 descriptors . If I set the size of the remap region of each descriptor to a size larger than 256KB, e.g. 512KB, in order to make one CRD can map two 256KB blocks, the overlap function does not work.
0 Kudos
640 Views
lukaszadrapa
NXP TechSupport
NXP TechSupport

I did quick check on my side and it works also for 512KB size.

The description says:

"Region size is 512 KB. Low-order 19 bits of LSTARTADDR and PSTARTADDR must be zero"

Are your addresses aligned?

Regards,

Lukas

 

0 Kudos
631 Views
shanix
Contributor II
I didn't make the addresses aligned and that's the reason. Now it works well. Thank you!
0 Kudos