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.

How do i split my project into 2 .out files?



Here is what we are trying to do.  using CCSv4 right now

Our current project is too big for our projects update process so we need to split it into multiple files that we can load into memory as-needed. the problem is i have no idea how to do this.

 ideally i would like the create 2 binary files, one with just code and another with constants and be able to install them into flash memory seperately so at boot time they both get loaded and the program has no idea that it came from 2 different binary files. also it needs to be seperate enough to allow for expansion of one or the other. it would be nice to be able to specify the location of each binary.

 if i could find some boot example where it shows me how: A) i can make 2 out files out of one project and B) how i can specify the location of the second boot location and tell the first binary file where it lives i think i could figure it out.

does anybody know of any example projects or know how to do this?

  • Hello,

    I'm seen some similar use cases as to what you are proposing. In those cases, there were two separate projects - for each out file. From one of the out files, a symbol library is created so that it can be used by the other project when building, to reference symbols from the other project, without adding any actual code/data. Then both programs are flashed to the target separately. I think this would work in your case also. Does that sound right?

    Thanks

    ki

  • that does sound like something i would be interested in looking into...there are still many questions involving that

    1) How do i create a symbol table for one project in a second project?

    2) How do i boot the second flash into DDR memory so it is usable?

    3) Where do i flash the second hex file to (or does it not matter once the method for loading the second flash is discovered)?

  • cobsonchael said:
    1) How do i create a symbol table for one project in a second project?

    I attached a zip with the document that details the steps. The document uses an example of using C2000 and internal flash. You haven't mentioned what device you are using but the concept should apply to most devices. The only change is if you are not using the flash programmer to program internal flash.

    Note that this document was created for a specific use case which differs from yours. The use case referred to runs everything from flash (no copying and running from external memory). So it has not been tested to work in your use case. But I think it may work.

    cobsonchael said:
    2) How do i boot the second flash into DDR memory so it is usable?

    If you are using CCS to load the program to flash, make sure you build the application so the run address is from DDR memory. How to do this should be detailed in the user's guide for the assembler (section 7). I believe you (via application or otherwise) will need to copy the code to the respective addresses in DDR. 

    cobsonchael said:
    3) Where do i flash the second hex file to (or does it not matter once the method for loading the second flash is discovered)?

    If you are using CCS to load the program to flash, as long as CCS knows where to load the code, it will handle it itself. Otherwise it depends on how you are copying the code from flash to DDR.

    Hope this helps,

    ki

    symlib.zip