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.

AM4379: How to split a section where .cinit is placed

Part Number: AM4379

Hi experts,

I have a question regarding the handling of .cinit sections when using AM437x.
 
Q:Is it possible to split the section where the .cinit is placed?

Currently, constants and such that have an initial value of 0 are assigned to the .cinit and DATA_A sections.
/* Section */
.cint > DATA_A

DATA_B as a separate data section, and the image is to divide .cinit by content and place it in multiple sections.
(Perhaps the following description is NG?)
/* Section */
.cint > DATA_A
.cint > DATA_B

If you know of any configuration or description method, I would appreciate it if you could let me know.

Best regards,
O.H

  • Hello,

    Please confirm what software you are running on the AM437x.

    Regards,

    Nick

  • Hello Nick,

    Thank you for your reply. The following is the environment

    • CCS Version: 7.1.0.00016
    • Compiler and Linker Version: TI V16.9.2.LTS
    • SDK Version: ti-processor-sdk-rtos-am437x-evm-03.03.00.04-Windows-x86-Install

    I have checked the "ARM Assembly Language Tools v16.9.0.LTS User's Guide".

    As described in "8.5.5.7 Automatic Splitting of Output Sections Among Non-Contiguous Memory Ranges", the sections themselves can be split by using "|", but not the .cinit sections?

    Please let me know if I am missing some information.

    Best regards,
    O.H

  • Hello,

    Unfortunately, we are limited in the support we can offer because we no longer answer questions about AM437x RTOS on the forums. I have reassigned your thread to another team member just in case.

    Regards,

    Nick

  • Splitting output sections is a feature supported by the linker.  However, certain sections cannot be split, and .cinit is one of them.

    Thanks and regards,

    -George

  • Hello George,

    Thank you for your reply. I understood that .cinit cannot be split.

    This is an additional question. If you could give me your opinion, I would appreciate it.
    Q:In a use case like the one below, is there a possibility that the inability to split .cinit will affect what we want to achieve below?

    Our customer's software configuration is divided into two major control contents. Let's say control A and control B. The "DATA_A" and "DATA_B" that I mentioned before should be taken to mean the above Control A and Control B.

    They have received a request to completely separate control A and control B. The meaning of complete separation is that even if the contents of control A are changed, the contents of control B will not be affected.

    When they were checking the sections on the map file, they found that the ".cinit" section, which is related to a constant (const table) used frequently in the software, could not be separated between Control A and Control B.

    Also, the data is optimized(?) by the data content and does not seem to be a fixed address, even if the number of data is the same.

    If there is a way to separate the ".cinit" section between Control A and Control B, they was wondering if it would be possible to achieve the complete separation that they have requested.

    In conclusion, we would like to check if there is a possibility that the contents of control B will be affected when the contents of control A are changed due to the fact that .cinit cannot be split.

    Incidentally, they are seeking to achieve this in a way that has as little impact as possible since the product is already in mass production.

    Best regards,
    O.H

  • Please search the TI ARM compiler manual for the sub-chapter titled System Initialization.  Focus on the sub-chapter titled Automatic Initialization of Variables.  You'll see that the .cinit section is formed by contributions from the entire program.  So, if any part of the program related to variable initialization changes, then .cinit changes.  

    Thanks and regards,

    -George

  • Hello George,

    I understood. Thank you for your support!

    Best regards,
    O.H