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.

Compiler/AWR1843: TI-CGT-ARM_V18.12.1.LTS

Part Number: AWR1843


Tool/software: TI C/C++ Compiler

Hello All,

For TI-CGT-ARM-V18.12.1:

1) In AWR1843 device, the core cortex r4f has 3 memories (ROM, TCMA & TCMB), after building an application for that core, using a linker script which has no any information about sections allocation, as I wanted to watch its default sections allocation. I found that all section (.txt, .data, .bss & etc.) are allocated within the ROM range which hosts only the bootloader as mentioned in the technical user manual.

Through the linker script & the map file, am I dealing with real physical addresses or something else?

2) Through the linker there are two attributes (Load & Run addresses), used in section directive:

    - Does "load address" deal with the Serial Data Flash (SDF) ?

    - Does "run address" deal with TCMA & TCMB ?

3) When I flash a certain image, is it flashed on ROM/TCMA/TCMB/SDF ?

4) I have read in the manual that memory initialization could be done by hardware using (MEMINITSTART & MEMINITDONE) registers: 

    - Nothing happens after writing values to those registers, even their own values aren't changed.

The linker script:

The output map file:

Cortex R4F memories' ranges:

Thanks in advance.

  • Here is some general background which is related to your post.  Most customers begin a project with a development system such as a launchpad or an evaluation module.  These systems typically come with a software development kit.  This kit includes, among other things, a linker command file specific to the system.  This linker command file was written by an expert on the system.  Eventually, the time comes when that linker command file needs to be changed to work with the final product.  The article Linker Command File Primer shows you how to understand that file, so making those changes is often straightforward.

    Bishoy Michael1 said:
    using a linker script which has no any information about sections allocation

    No one works that way in practice.  

    Bishoy Michael1 said:
    Through the linker script & the map file, am I dealing with real physical addresses or something else?

    Real physical addresses.

    Bishoy Michael1 said:
    Through the linker there are two attributes (Load & Run addresses), used in section directive:

    Every output section has a run address and a load address.  By default, they are the same.  However, you can give a section different allocations for run and load.  A typical use case is programming initialized sections (code or data) in flash, and then, during system startup, those sections are copied to RAM.  In such a case the load address is used when programming the flash, the run address is used everywhere else.  

    Bishoy Michael1 said:

    Does "load address" deal with the Serial Data Flash (SDF) ?

        - Does "run address" deal with TCMA & TCMB ?

    3) When I flash a certain image, is it flashed on ROM/TCMA/TCMB/SDF ?

    The linker command file says how all of this works.  You tried to include a screen shot of your linker command file, but it didn't come through.  If you want me to look at it, please attach it to your next post.  So the forum will accept it, add the file extension .txt.

    Bishoy Michael1 said:
    I have read in the manual that memory initialization could be done by hardware using (MEMINITSTART & MEMINITDONE) registers: 

    Unfortunately, I lack the expertise to answer this question. Please start a new thread in the Sensors Forum.

    Thanks and regards,

    -George

  • Hello George,

    Bishoy Michael1

    Does "load address" deal with the Serial Data Flash (SDF) ?

        - Does "run address" deal with TCMA & TCMB ?

    3) When I flash a certain image, is it flashed on ROM/TCMA/TCMB/SDF ?

    The linker command file says how all of this works.  You tried to include a screen shot of your linker command file, but it didn't come through.  If you want me to look at it, please attach it to your next post.  So the forum will accept it, add the file extension .txt.

    - You mean that I can load to TCMA/B and run from SDF and vise versa ??

    - I have another inquiry:

    If I don't know how the linker is written (another one wrote it), and I just need the start addresses and sizes of .data and .bss sections, to be used in an assembly source file, how could that happen?. I know that there are functions called START() & SIZE(), but they are used in the linker. could they be used in a source file?

    Thanks & redards,

    Bishoy Michael

  • Bishoy Michael1 said:
    You mean that I can load to TCMA/B and run from SDF and vise versa ??

    The linker has support for doing that.  Please understand I am not familiar with your system, and so I cannot say whether any such approach is supported by the hardware, or is a good way to work, etc.

    Bishoy Michael1 said:
    I just need the start addresses and sizes of .data and .bss sections, to be used in an assembly source file, how could that happen?. I know that there are functions called START() & SIZE(), but they are used in the linker. could they be used in a source file?

    Please search the ARM assembly tools manual for the sub-chapter titled Address and Dimension Operators.

    Thanks and regards,

    -George