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.

Undefined sysbols in the ccs5.1 sys/bios prject

Expert 1115 points
Other Parts Discussed in Thread: OMAP-L138, AM1808, OMAPL138

Hi,

I am new to ARM9 and SYS/BIOS development in CCS5.1.

The project works fine when I target c6748 of omap-l138. I try to create a new project targetting ARM9 but getting  following errors.

<Linking>

 undefined  first referenced
  symbol        in file    
 ---------  ----------------
 I2C_init   ./main.obj     
 LED_init   ./main.obj     
 LED_toggle ./led.obj      

error #10234-D: unresolved symbols remain
error #10010: errors encountered during linking; "armex1.out" not built
gmake: *** [armex1.out] Error 1
gmake: Target `all' not remade because of errors.

>> Compilation failure

**** Build Finished ****

I have gone through the thread "http://e2e.ti.com/support/development_tools/code_composer_studio/f/81/t/134553.aspx" and started doubting on the lib that I include in my project "evmomapl138_bsl.lib" which is supplied by logicPD.

Next step I also included another lib"am1808_bsl.lib" it works. The symbols are resolved and project is executed.

But, my doubt remains, how can I get errors while using the xxxxomapl138.lib ? Is there any way by which I use xxxomapl138.lib instead of others.

 

regards,

Prat

 

  • Prat,

    the evmomapl138_bsl.lib is a C6000 library.  It will not work for the ARM.

    Where did you get the am1808_bsl.lib?  I think that's probably the right one but want to make sure.

    Can you run the ofd command on it?  That command will display what target processor it is built for.

     

    e.g. here's how I ran it for the evmomapl138 lib:

    C:\Program Files\Texas Instruments\ccsv4\tools\compiler\tms470\bin>ofd470.exe "C:\Documents and Settings\a0323418\My Documents\Downloads\evmomapl138_v1-1\bsl\lib\evmomapl138_bsl.lib" > ofd.txt

    Thanks,

    Steve

  • Hi Steve,

    I ran the above said command on the am1808 lib file and found it is for  ARM. I copy-paste first few lines here,


        File Name:               spiflash_numonyx.obj     
        Format:                  ELF Version 1            
        File Type:               relocatable file         
        Machine:                 Advanced RISC Machines ARM
        Machine Endian:          little endian            
        Entry Point:             0x00000000               
        Vendor:                  Texas Instruments, Inc.  
        Producer:                Assembler                
        Assembler Version:       4.6.4                    
        Number of Sections:      80                       
        File Length:             29361                    
        File Offset in Archive:  36176                    
        ELF Class:               32-bit objects           
        ELF e_flags:             0x05000000 

     

    This .lib file available in logicPD website and it seems to be the latest one.

    But, my question is, why it is named am1808 instead of l138 which is more meaningful.

    regards,

    Prat

  • the am1808 is a different TI product.

    From its description:

        "The device is a Low-power applications processor based on ARM926EJ-S"

    Now looking at the OMAPL138 description:

        "The OMAP-L138 C6-Integra DSP+ARM processor is a low-power applications processor based on an ARM926EJ-S and a C674x DSP core."

    So I am guessing that whoever made this library did so for the am1808, but since looks to be based on the same ARM9 core, it also works for the OMAPL138, too.

    Steve