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.

ota bootloader

Hi people, I want to develop a OTA bootolader code for my project, however it needs to make the sum of some uint32_t variables. The compiler uses a RTS function to do that, but my OTA bootolader code must be isolated and must use only functions in its designed are of memory.

Is there some way to my code not invocate RTS functions? And if it needs a RTS function, use a local one?

  • You don't say which target CPU family you use.  In the explanation I give here, I presume you use the TI ARM compiler.  That's probably wrong.  But it is easy to adjust to the correct compiler.

    Giordano Bruno Wolaniuk said:
    Is there some way to my code not invocate RTS functions?

    There is no command line option which tells the compiler to never call RTS functions.  But you can detect, after the fact, whether that occurred.  This command ...

    % armnm C:\ti\ccsv6\tools\compiler\ti-cgt-arm_5.2.2\lib\rtsv7M3_T_le_eabi.lib | find " T "

    ... runs the names utility over that RTS library.  That find " T " command filters it to show you only the functions for which the library supplies the implementation.  Otherwise you also see data symbols, and the names of functions the library calls.  This command ...

    % armnm my_executable.out | find " T "

    ... shows the same thing for your final executable.  With some scripting, you can determine whether your executable calls anything in the RTS.  Some of those calls can possibly be removed.

    Giordano Bruno Wolaniuk said:
    if it needs a RTS function, use a local one?

    The source to the RTS library is located in a directory path similar to ...

    C:\ti\ccsv6\tools\compiler\ti-cgt-arm_5.2.2\lib\src

    You can use search to find which source file defines the RTS functions you use.  Copy those files into your project.  The compiler will treat them just like the rest of the source code.  In particular, it will not bring those functions in from the RTS library during the final link.

    Thanks and regards,

    -George

  • Thanks George Mock, I brought the file lsl32.asm to my source paste and my bootloader code is now using this file. But the problem is that the main.c is also using this function. In this case I want that user application uses the RTS source code, not the code in the bootloader area, so the bootloader isn't isolatede from aplication, as I want to. Is it possible?

    Thank you

  • I don't think I understand your question.  Regarding the user application and the bootloader ... Are they separate executables which are built separately?

    Thanks and regards,

    -George