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.

What does Unresolved Symbols remain. It's driving me crazy

Hi Guys, I'm trying to call my assembler program from C main and when I build the program CCS6 tells me Unresolved symbols remain.  I've typed the C code as I did with my LPC chip calling assembler from C and it works on the LPC chip but not on my TI F28377D chip.

I created a new C empty project and here is my C code.

extern void Vga_driver (void);

int main (void) {

Vga_driver();   //call my assembler program

return 0;

}

and my assembler program is this.

.text

.global Vga_driver

Vga_driver:

   MOVL XAR1, #0x000000  //32bit register

WAIT_HERE:

   B WAIT_HERE,UNC

What this does is it should simply call my assembler program that just loads XAR1 with 0 and then waits.

Please tell me what is the compiler talking about when it says Unresolved symbols remain?

I'm not using any other variables or symbols. 

Please, please please explain before I have no more hair left :)

Thanks Guys

Pete

  • Hi Pete,

    Actually there's a particular structure you need to follow.

    http://processors.wiki.ti.com/index.php/F2837xD_Workshop#Running_The_Labs

    Just go through this workshop and all your doubts should get cleared.

    Regards,

    Gautam

  • Hi Gautam, I downloaded the LABS stuff, installed it and read and setup my software step by step as the tutorial said. I even double checked the settings as I went along.

    I managed to set everything up and loaded the 1st LABS demo the 2 flashing LEDS.

    Once I loaded the programs and built each one I got errors when building so the .out files were not being created

    which means I could not debug and download the code to my target.

    My PC has many different chip manufacterers software installed on it so I might be having a software issue, so what I'm going to do is do a fresh install on a spare notebook I have and try the tutorial again but I double checked the software setup settings as I went along in the tutorial.

    Well I'll try again and see how I go.

    Thanks again for the info about The LABS tutorials.

    Pete

     

  • Pete, when installing CCS go for complete installation, just to avoid any issues pertaining to it.

    Regards,

    Gautam

  • Pete,

    I think you need to prepend "_" for any label in your assembly code that you refer from c code.

    Try:

    .def _Vga_driver

    _Vga_driver:

     

    Good Luck,

    Joe

  • Joe is correct. C functions need an underscore in front of them in assembly. This is mentioned in section 7.4.1 in the C28x Compiler Guide (SPRU514). It's a fairly standard convention that avoids collision between the C and assembly namespaces.

    Exception: The above applies to the COFF format used by the C28x compiler and the legacy TIABI format used by the TI ARM compiler. The newer EABI (ELF) format used by the TI ARM compiler does not use the underscore. This won't affect you unless you're writing code for the M3 CPU on a Concerto device. For more information, see section 5.13 of the ARM Compiler Guide (SPNU151).