This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Code Loader - Jumping to Compiler Startup Code

Hello,

AN112 provides three different methods for code loader designs.

However, we are considering having our Code Loader jump to the compiler's C_C51Startup function of our Main Application instead of its Main function. This would allow us to leverage the functionality that the compiler's startup code provides (clearing data; initialization of globals, statics; setting stack pointer; etc.).

Also, our Code Loader (and many others) never needs to run after it passes control to the Main Application. So we believe that we would not need to ensure that the data areas for the two applications do not overlap.

These two ideas seem to work well together. The C_C51Startup should ensure that the data area is initialized before the Main function of the Application runs even if it overlaps the data area of the Code Loader.

Are there any problems or drawbacks in the Code Loader jumping to the Application's C_C51Startup function and having the data areas of the Code Loader and Application overlap? It seems simpler and safer to us.

Parents
  • I think you may not understand my question (or I am not understanding your responses). We have two different applications in flash. On reset, our Boot Loader will run and normally (if an Application update is not required) jump to our Main Application.

    NOW I get it, I would never expect anyone to default to running the bootloader.

    you are, in my opinion, doing it backwards.

    think about doing this: On reset, our Application will run and if an Application update is required set the required flag or whatever that will invoke the bootloader and do a FULL reset. When the bootloader is done it will reset the required flag or whatever that will invoke the bootloader and do a FULL reset.

    This way there will be no 'interaction'

    the "flag or whatever" must, of course, be non-volatile.

    Erik

Reply
  • I think you may not understand my question (or I am not understanding your responses). We have two different applications in flash. On reset, our Boot Loader will run and normally (if an Application update is not required) jump to our Main Application.

    NOW I get it, I would never expect anyone to default to running the bootloader.

    you are, in my opinion, doing it backwards.

    think about doing this: On reset, our Application will run and if an Application update is required set the required flag or whatever that will invoke the bootloader and do a FULL reset. When the bootloader is done it will reset the required flag or whatever that will invoke the bootloader and do a FULL reset.

    This way there will be no 'interaction'

    the "flag or whatever" must, of course, be non-volatile.

    Erik

Children
No data