I am developing an application for IMXRT1062 and had a question about the correct method to link the application to run from on-chip tightly coupled memory (ITCM for code and DTCM for data).
There seems to be some confusion in this area and numerous different forum posts, app notes and articles which do not always say exactly 100% the same thing.
Is there a definitive document somewhere that shows the recommended method to do this please?
I have a good register level understanding of the IMXRT1062 now and I know how to configure the ITCM and DTCM for different sizes.
But what I am not sure about is what settings you should change within mcuXpresso IDE to achieve this for your application, and changes that might need to be made to e.g. resetISR's, vector tables, linker scripts etc......
To start with, I would like code to be in ITCM and data to be in DTCM, and not to use OCRAM at all. We boot from external QSPI flash. So I will probably configure the flexRAM to be e.g. 256KB ITCM, 256KB DTCM and 0KB OCRAM (this setting is possible using IOMUX GPR registers, but unfortunately not using fuses which IMO is an oversight of NXP).
Can anyone help please?
That knowledge base article shows how to reallocate the flexRAM sizes, which is good, but it does not explain the steps needed to run the application from ITCM/DTCM instead of XiP from external QSPI flash.
Please can you help with these last steps?
I wouldn’t say it’s a definitive document, but I would recommend starting with the following Knowledge Base document which is an addendum to AN12077 (link also below, albeit changes are you have already seen this document). It covers the MCUXpresso setup to reallocate the FlexRAM so it will most likely be of help.
I hope that this information helps!