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.

downloading app to store in flash memory on concerto, CCS4.2.5

I have developed an application that transfers the .hex file over my communication network, then converts it to binary and stores the records first in available high flash memory of which I have plenty of excess. I store everything from .reset_isr thru the end of  .text. All works well except when trying to program the .cinit section and only that section. The error code returned is 0xf4. The data read is all 0xffs. The .cinit section is normally placed at 0x002043a8. My high flash programming test has placed it at 0x002443a8 as well as 0x002543a8. Both give me the errors. I have not been able to find an explanation for error code 0xf4. Can anyone offer an explanation?

How is .cinit initially programmed and is it possible to avoid any changes to this section when making application code modifications in the future? In other words, is there a way that I can I just skip programming this section and assume it would normally not change when my application program changes? This would be a work around and may be necessary. Can anyone help, please.

Thanks,

Pat

 

 

  • I'm not sure I completely understand what you are asking for and the exact problem you are facing. Could you provide some additional details please?

    Pat Harris said:
    All works well except when trying to program the .cinit section and only that section. The error code returned is 0xf4.

    Where is this error code coming from? How exactly are you programming the sections?

    The .cinit section contains tables for explicitly initialized global and static variables, so if those variables don't change, that section should not change. The location of the section though may vary depending on the size and placement of other sections, but if it is explicitly placed at a specific address, it should always be linked to that address.

     

  • AartiG,

    Thanks for responding,

    I have since determined that the problem lies with the .cinit memory boundary, apparently. When I force the .cinit start address to e.g.   0x0024400 rather than 0x002443a8 , the flash will program properly. The problem is, how do I change the .cinit start address?

    Thanks,

    Pat

     

  • Pat Harris said:
    The problem is, how do I change the .cinit start address?

    You mean the address to which the .cinit section is linked in the application itself? If so, that is controlled by the linker command file. The linker command file has SECTIONS directives to specify where different sections get linked. You can specify a hard-coded address or a memory region to which sections are to be linked. The Linker Users Guides have more details on how this can be done.

  • AartiG,

    OK, that worked. I just couldn't find where it had been set initially.

    Thanks,

    Pat