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 to create a symbol file

I'm try to debug RBL in DM6446 in ROM to find out why it cannot run UBL in NAND. It's difficult to read disassemble code without symbols.

I plan to read disassemble codes step by step, and add symbols for those I understood. Then I need to create symbol file manually.

I seached the help of CCSv5, and found:

"The symbol file can be a standard COFF output file (*.out) or a specific symbol file obtained during the build process."

How to create a symbol file during the build process? For example TI compiler arm 5.0.1. I tried armabs.exe, but abs files cannot be loaded as symbol file.

Which document describe the format of symbol files?

Any suggestions about how to read disassemble code are wellcome!

Best Regards,

Zhang Jianjun

  • Zhang,

    If the debug option is enabled (typically -g across several types of compilers such as TI ARM and GCC), symbols are already included in the ELF executable created during compile/link time. No other build options are required, but keep in mind that optimization will affect the debug experience (the optimizer will cause the code to not behave linearly as it will make several changes to the order of execution and allocation for performance).

    However, if the file you have is a plain binary or hex file, then this information is non-existent - these files are a stream of bits that contain an accurate copy of the code and data, but nothing else.

    Examples of ELF executables are the Linux' vmlinux file or u-boot's u-boot file.

    Specific to your case, the RBL is built into ROM and you would need the source code or an ELF executable. Not sure if these are available anywhere.

    Some useful links:

    http://processors.wiki.ti.com/index.php/U-boot_Debug_in_CCSv5

    http://processors.wiki.ti.com/index.php/RBL_UBL_and_host_program

    Details about the RBL and the boot process are probably easier to obtain from the experts at the device forum.

    Hope this helps,

    Rafael

  • I tried to find an easy way to debug the RBL in ROM, finally do the traditional way:

    1.save memory to bin
    2.disassemble the bin with arm-none-linux-gnueabi-objdump.exe to a txt file.
    3.add note in txt file while step in ccs disassemble window.
    4.find the bug. see: http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/99/t/272141.aspx

    wishes:

    1.If there was a way to create a symbol file myself for already understood code sections and variables, it will help to read other code sections.
    2.c:\ti\ccsv5\tools\compiler\arm_5.0.1\bin\armdis.exe can only disassemble .out file, but not .bin file. Is there a tool in ccs can do this?

    Best Regards

    Zhang Jianjun

  • Zhang,

    Sorry, I don't think we have any tool that performs your two wishes. Maybe a third party tool that performs ARM disassembler could help you with this.

    Regards,

    Rafael