This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Changing entry point in .icf

can any one help me with a solution for the query in th above thread

  • Thanga Raj, My questions in the other post are not yet answered - I'm afraid I wouldn't be able to support w/o those responses.

    -/Praneet
  • Hi Praneet,

    My Application has already exceeded the RAM size, to avoid that we moved some of our functions to bootloader, which can be handled there .(because of this bootloader size exceeds 16K) Currently the same is working in CCS.  But I want to port it to IAR  there I dnt know how to change the entry point ??

  • Thanga Raj,

    I don't understand how this solves your problem - Even if it's moved to secondary bootloader, it would still be on SRAM, right? By how much did it exceed? I would want you to note that the initial 16KB (0x20000000 - 0x20003FFF) is shared b/w the application and bootloader, and can be used for the application's data.

    IMO, 'dynamic_lib_loader' application of the SDK relates better to your problem statement - If you could break your application into multiple binary images, the main application can load the required images at run time using NVMEM APIs. I suggest you take references from that application.

    -/Praneet
  • Hi Praneet,
    Thanks for your suggestions . I am already using all the 16K of the bootloader space , and I have my secondary bootloader as 28K and am using that also for my DATA section .
    Here using secondary bootloader is not a problem or an issue , am able to do it in CCS and I want to do it in IAR
    Is that not possible to change the entry point in IAR ?
  • Thanga Raj, I'm not sure how you did it in CCS - The only way I could think of doing it is by:

    - not having the application bootloader @ 0x20000000 - 0x20004000, and having it @ 0x20004000 - 0x2000C000 assuming your bootloader is of 32K. On IAR, you should change the SRAM section of the application bootloader's *.icf file

    define region SRAM        = mem:[from 0x20004000 to 0x2000C000];

    If you are setting the image offset in your bootloader, make sure you set it to 0x2000C000 (Assumption: bootloader is of 32K)

    - having your application code @ 0x2000C000 - 0x2003FFFF. On IAR, this can be done by defining the SRAM region in *.icf file of your application.

    define region SRAM = mem:[from 0x2000C000 to 0x200#FFFF];

    Note that the initial16KB that's shared b/w application & bootloader and the 32K (assumption) where the secondary bootloader is hosted, can be used for application's data after the program is loaded.

    -/Praneet

  • ((void(*)(void))(0x2000E001))();

    Like this we are calling to start our secondary bootloader ?

    Do the same we need to do in IAR