Hi MissaelMaciel,
Answer your two questions:
1st - Our application requires to define the ITCM with 256KB of size. The team is concern that if we define the ITCM start address at 0xa000 we may wasting some space in ITCM that we may need in the future or maybe with this start offset the ITCM is not enough for the 256KB. I remember that in your very very first answer you recommended not to start the ITCM at 0x000 address. Is there any reason for that? What would be the best starting address for ITCM so we can configure and use the 256KB?
Answer:In fact, leave 0X2000 is OK, 0xa000 is just an example for you.
No, if you boot from external flash, it is the XIP method, you must leave 0x2000, first 0X1000 is used for FCBD, from 0x1000 is IVT, DCD, then above 0x2000 can put the app. This is the boot requirement.
But because of the bd file need: startAddress is non-zero address.
# Note: This is an example address, it can be any non-zero address in ITCM region
Then, I think you also can use app start address above from 0x3000.
I don't know why you need to put all your code in the internal TCM, in fact, you can put part of the code which must run in the internal RAM, other code still can in the external flash.
2nd - I saw that in the imx-itcm-unsigned.db file you configured the startAddress = 0x8000 and I did not see any relation of this value to any configuration in your project (or at least I was not able to track it). Where this number came from? Is this randomly define as the comment says "it can be any non-zero address in ITCM region"? I ran some experiments changing this start address and I found that if I use the start address defined in MCUXPresso for ITCM (0xa000) it is when I have the problem creating the image.
Answer: 0X8000 is the FCBD start area, then 0X8000+0X1000 is IVT DCD, then 0X8000+0X2000 is 0xa000 which is your app code. the first 0X2000 is used for FCBD and IVT dcd. That's why the startAddress is 0X8000, and my app is 0XA000.
take an example, if you use startaddress is 0X1000, then your app should be 0X3000.
Wish it helps you!
Best Regards,
kerry