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.

J721EXSOMXEVM: Usage of tiarmobjcopy.

Part Number: J721EXSOMXEVM

Tool/software:

Hello Team,

we are trying to do Flash operations on TDA4VMCR5 derivative.

we are using the MCAL package MCUSW_09_00_00_15_CONFIG + ti-processor-sdk-rtos-j721e-evm-09_00_00_02.

I have a query regarding the usage of tiarmobjcopy. i am referring the page : 

14.2. tiarmobjcopy - Object Copying and Editing Tool — TI Arm Clang Compiler Tools User's Guide

do you have any working example how to use this command. 

I have tried with the below command from our make file to generate .bin file for the application where i wanted to use this application in flash tool to download via bootloader. 

tiarmobjcopy.exe --dump-section <70000000> = simple_can_demo.bin $(PROJECT_ROOT)/output/bin/$(PROJECT).elf $(PROJECT_ROOT)/output/bin/$(PROJECT).bin

how ever i am getting error as below : 

The system cannot find the file specified.
make: *** [common.mak:321: all] Error 1

common.make is make file where i have added the tiarmobjcopy to execute.

Please send me if you have any working example available or how use these commands. 

Thank you,

Best Regards,

Vishwanatha N 

 

  • Here is an example of how to use tiarmobjcopy to create a binary file.

    tiarmobjcopy -O binary executable_file.elf binary_file.bin

    Thanks and regards,

    -George

  • Hello George,

    I have used same command to generate the bin file however size of bin is more almost 1GB this is because i have got the reason that memory address i have as below : 

    EXCTABLE (RX) : origin = 0x00000000 , length = 0x01000
    RESET (RX) : origin = 0x00001000 , length = 0x01000
    FLASH (RX) : origin = 0x41C00000 , length = 0x60000
    RAM (RWX) : origin = 0x41C60000 , length = 0xA0000

    Exception table and reset table i have placed at address 0x00000000 and code and data at address 0x41C00000

    From the gap b/w 0x00000000 and 0x41C00000 is filled with some junk value. 

    how to over come this situation ?? 

    I have tried to place exception table at address 0x41c00000 due to ARM architecture limitation is is not taking exception table at address other than 0x0000

    This is based V bit of register SCTLR, System Control Register, VMSA 

    if V bit 0 then it reads exception table from address 0x0000000

    if V bit  1 then it reads exception table from address 0xFFFF0000

    I was going though ARM architecture manual as well  to check whether we can map exception table to different address , It says some thing about security extension feature. Could you please explain more where exactly this feature implementation has to be taken care ? Is it in OS this has to be implemented ? 

    Since it is Non secured feature so we are not able to map exception table to different address hence bin file size is more. 

    Best Regards,

    Vishwanatha N  

      

  • To understand more about holes in binary files, please see the article An Introduction to Binary Files.  Please see if the flash utility, or whatever is next in the development process, supports something other than binary files.  

    As for other system specific startup details such as ...

    I have tried to place exception table at address 0x41c00000

    I lack the required expertise to be helpful.  Either start a new thread, or ask me to change the responsibility for this thread to those experts.

    Thanks and regards,

    -George

  • Hello, 

    I am trying to create two different bin files one for Exception table and other one for code sections with the below command : 

    tiarmobjcopy.exe --dump-section <70000000> = simple_can_demo.bin $(PROJECT_ROOT)/output/bin/$(PROJECT).elf $(PROJECT_ROOT)/output/bin/$(PROJECT).bin

    getting an error while generating bin file, Can we have any example for this command how to use ? 

    Can we use command like what i have given ? 

    Can we generate different bin for different sections and use the same for the flash tool to download ? 

    Yes please , Can you get some experts for this topic, we are in need of more information. 

    Best Regards,

    Vishwanatha N 

  • Can we generate different bin for different sections and use the same for the flash tool to download ? 

    I don't know.  I am not familiar with the flash tool that reads the binary file(s) as input.  For now, I presume the flash tool can either support multiple binary files, or can be run multiple times with different binary files, or something like that. 

    I am trying to create two different bin files one for Exception table and other one for code sections

    Here is how to do that.  I presume you know the ranges of memory that correspond to the exception table and to the code sections.  Inspect the linker map file.  Use the part titled SECTION ALLOCATION MAP.  Review each output section.  Ignore sections that are marked UNINITIALIZED or DSECT, or have a length of 0 bytes.  For the remaining sections, note the names of the sections that correspond to the ranges of memory for the exception table or to the code sections.  For this example, I presume the names of the sections for the exception table are .ex1 and .ex2, and the names of the sections for the code sections are .code1 and .code2.  Run commands similar to ...

    % tiarmobjcopy --only-section=.ex1 --only-section=.ex2 -O binary executable_file.out exceptions.bin
    % tiarmobjcopy --only-section=.code1 --only-section=.code2 -O binary executable_file.out code.bin

    The exceptions section binary file is named exceptions.bin, and the code sections binary file is named code.bin.

    Thanks and regards,

    -George

  • Hello George,

    Thank you for your support. 

    time being i am able to generate bin files and merged and using for flash tool. 

    will come back if any support needed. 

    Best Regards,

    Vishwanatha N