AnsweredAssumed Answered

I.MXRT1064 code placement

Question asked by Anuj Tanksali on Jun 27, 2019
Latest reply on Jul 3, 2019 by Anuj Tanksali



I am using I.MXRT1064 EVK board for development. The architecture scheme which i will be using will contain a boot loader at 0x70000000. Application will be running at 0x70004000. The bootloader project is separate and application project is separate. 


In my application project i want to configure my flash start address to 0x70004000. How do i do it using MCUXpresso or using linker script file. Currently my application always starts from 0x70000000 and at this address currently there are sections defined  ".boot_hdr.conf" and then ".boot_hdr.ivt", ".boot_hdr.boot_data"

(see attached test_Debug.ld)


I am changing the address using the MCUXpresso memory settings (see attached mcuxpresso memory.PNG). Am changing the address highlighted in the image to 0x70004000. Now if i jump to address 0x70004000 from my bootloader then my application should start. Is this the correct way or i will have to do something else?


Assuming above changes to start application from 0x70004000 are correct then what is the significance of  ".boot_hdr.conf" and then ".boot_hdr.ivt", ".boot_hdr.boot_data" which do not get generated if flash start address is 0x70004000. these sections are only visible in map file if flash start address is 0x70000000. 



Another question is i wanted to place a structure at a fixed address in memory suppose 0x70003000 how do i do that using MCUXpresso settings. will i have to manually mention section (e.g. defined as __attribute__((section("test_struct")))  in my linker file or it can be done in MCUXpresso settings. if yes then how?