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.

MSP430G2553: MSP430G2553 ENTRY POINT SYMBOL

Part Number: MSP430G2553
Other Parts Discussed in Thread: MSPBSL, MSP430FR2311

Hello TI,
I have one question how could i assign an absolute address to "_c_int00_noinit_noargs" ti function?
this will help in designing my bootloader.

regards
Hossam

  • I cannot give you a concrete answer, but this reference may help. Sections 3.2, "Entry Point," and 8.4.10, "Define an Entry Point," from the MSP430 Assembly Language Tools (slau131) may provide some help. Don't let the term assembly deter you.

  • Thanks Thomas for your response, 
    I have tried to assign _c_int00 (my entry point)ti function to be at specific address but i found punch of errors.

    Can you help?

    regards
    Hossam
     

  • Hi,

    What you want to do?

    1. You can find the  _c_int00 address in .map file and put it in your bootloader

    2. You can directly jump to Reset address(0xfffe) in your bootloader

    3. You can put the main code at any place you like and put the _c_int00 entrance in Reset

    4. Put your bootloader code in main function, following our MSPBSL guide.

    Eason

  • Hi Eason,
    My question is simple and clear, I want to allocate the _c_int00  function at specific flash address, How is that?

    The address of _c_int00  is not fixed if you checked the map file. Any change in the code will change the _c_int00  allocated address so i want making it fixed? I hope this is clear.

    regards
    Hossam

  • Hi Hossam,

    I know it. But my question is why you want to do that?

    Anyway, here is the solution. I tired on MSP430FR2311.

    1. You need to move boot.c and boot_hooks.h in your own project.

    2. The compiler will choose which int00 as the  system startup routine. It changes from  "_c_int00_noinit_noargs" to "_c_int00" So you need to do like this:

    #pragma CLINK(_c_int00)
    #pragma location=0xf100
    CSTART_DECL _c_int00(void)
    {
       _c_int00_template(1, 1, 0);
    }

    3. Then it works. If you meet some error with MPU, you need to comment:

    //   if (NEEDS_MPU)
    //      __mpu_init();

    Eason

  • Thanks Esson. I have made it by your guide.

**Attention** This is a public forum