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.

Please Help: Build Fails from 3 unresolved symbols which should be created by DSP/BIOS v5.42 in F2812 project

Hi, I need help getting my project to build. I've spent about 3 weeks on it now getting various problems cleaned up. But I can't get past this last problem area of these 3 unresolved symbols that seem to be the only thing the build is complaining about now. They are generated from DSP/BIOS v5.42 and are as follows from my build console:

undefined first referenced symbol in file
--------- ----------------
_trcdata_loadend      ./SingenX05-3.obj
_trcdata_loadstart     ./SingenX05-3.obj
_trcdata_runstart       ./SingenX05-3.obj

error #10234-D: unresolved symbols remain
error #10010: errors encountered during linking; "SingenX05-3a.out" not built

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Ti doc SPRA958L states on Page 11 that the DSP/BIOS configuration tool generates these 3 symbols, so they should have been created. Also, in my code, I am referencing them using "extern", so I can't understand why they remain unresolved. Here's what my main C file has for these symbols:

extern unsigned int trcdata_loadstart;
extern unsigned int trcdata_loadend;
extern unsigned int trcdata_runstart;

memcpy( &trcdata_runstart,
                 &trcdata_loadstart,
                 &trcdata_loadend - &trcdata_loadstart);

At this point, I've looked thru the DSP/BIOS user's guide and all other relevant TI documentation that I know of.  Also, I've searched thru the forums and I'm stumped. Any help would be greatly appreciated.

Thanks.

  

  • These symbols are most likely generated only when your TCF script asks for separate run and load addresses. The statement that does it is
    bios.MEM.ENABLELOADADDR = 1;
    Then, you can specify load addresses for various sections. Do you have any code that does that?
    The file that would contain symbols that you are missing is the file with the name that ends with "cfg.cmd". You can always look into that file to check if a change in your TCF script is generating required symbols.
  • Sasha, Thanks for the reply. Yes, I do have that line in my tcf file. Also, I have code sections with load addresses specified in my linker cmd file. And the build shows that this cmd file is being used while linking. The cfg.cmd file is being generated by DSP/BIOS but of course, I cannot edit it as edit's are prone to being wiped out. The cfg.cmd file does not contain those symbols, although an older version of the cfg.cmd file from CCS v3.3 that worked (in CCS v3.3) does contain them. I'm searching the DSP/BIOS 5.42 user's guide but haven't found how to make the needed changes yet. Although I've used both the DSP/BIOS config tool and also edited the tcf file in a text editor, I'd prefer to make changes using the config tool versus editing the tcf. If you happen to know how I can diagnose why I'm not getting these 3 symbols based on what I've said here, I'd really appreciate your help. In the meantime, I'll keep looking.
  • I just tried to build a DSP/BIOS 5.42 example, and if I set ENABLELOADADDR to '1' I can see these symbols. The only other thing that I noticed is that the symbols are not generated if you allocate .trcdata to the same memory object under "BIOS Data" tabe and under "Load Address" tab. Please verify that you are using different memory objects for Load and Run.
    If that doesn't help, can you post your TCF script?
  • Sasha, I found the problem with this. Although I had set ENABLELOADADDR to '1' in my tcf file, there was another line I didn't see that set it to 0. That problem is gone, but now, instead of a successful build after fixing the last 3 errors, I've got many, many new errors. I'll go thru them and see if I can fix them myself. If not, I'll make a new post if needed. Thanks for the help.