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.

TMS320C55x DSP Library - Huge Memory Model Compatible?

Other Parts Discussed in Thread: TMS320C5505

Hi all,

 

I am trying to build a modified version of the TMS320C5505 Audio Filter which uses a couple of the DSPLIB functions (RFFT32, RIFFT32) . However the build fails when trying to link, giving me the error message:

"<cbrev32.obj> specifies a large memory model which is not compatible with the huge memory model specified in a previous file or on the command line"

My question is, is cbrev32 really not compatible with a huge memory model? Or is the compiler just throwing up this error but it's unrealted to the actual problem?

If cbrev32 is not compatible with a huge memory model (I can't find documentation saying this anywhere), how would I go about changing the memory model that CCS 4 is using? I'm new to CCS and struggling to find documentation showing how to do this, if anyone could point me in the right direction that would be greatly appreciated :)

 

Thanks

J

  • Hi Jack.

    I remember having similar problem with DSPLIB, but it was some time ago and I don't remember details. Anyway, in my case the problem was with Project settings (Build Properties -> CCS  Build). Probably, I've been using "Generic C55xx Device" instead "TMS320C5505". So, my current setting are: TMS320C5505 and RTS: <automatic> and everything works fine.

     

    regards

    MS

  • Update 1:

    I've found where there Memory Model settings are hidden, for anyone else wondering :

    1- Project>Properties

    2 - Then clik on the "C/C++" Tab on far left of Properties box

    3 - Then make sure the "Tool Settings" Tab is selected

    4 - Then in the "C5500 Compiler" menu drop down, select "Runtime Model Options", scroll down and change the memory model box to the model you wish to use.

    5 - As I understand it you will also need to  change the Library file the linker uses, to do this select the "C5500 Linker" menu drop down, select "File Search Path" then use correct library file for memory model. I believe rts55.lib = small model, rts55x.lib = large, rts55x.lib = huge.

     

    This solves the problem involving the incorrect model being specified, however it now tells me:

    "<cbrev32.obj> specifies C55x CPU Rev 2.x which is not compatible with C55x CPU Rev 3.x"

    I'm really not sure how to solve this one! Anyone got any ideas?

     

    J

  • Hi Michal,

    Thanks for the reply! I have now solved the problem, although it looks like our methods are slightly different, I was just wondering what version of CCS you are using, as I can't find the menu names you suggested? I am very new to CCS so it could be I'm not looking in the correct place?!

    Thanks again :)

    J

  • Glad You've done it. I'm pretty sure both solution are same, the only difference is way to access these options. "Build properties" can be found by RMB click on project. Your post reminded my one important thing. After some issues with dsplib, I've rebuild library, instead using provided .lib file. 

     

    regards

    MS

  • Update 2:

    I've changed the CPU Rev to 2.x (in roughly same menus as before), this allows the code to compile. Although I'm sure this isn't probably the best thing to do, more of a bodge than a solution...

  • Hi Jack,

    These links should help you out...

    Rebuilding the DSP Library for newer CPU revisions:

    http://processors.wiki.ti.com/index.php/DSPLIB#How_can_I_rebuild_the_DSPLIB_v2.40.00_library_for_a_newer_CPU_rev._3.x.3F

    Differences between CPU revisions:

    http://processors.wiki.ti.com/images/f/f4/C55x_CPU_revision.pdf

    Let me know if you have any questions.

    Regards,
    Mark

  • Hi Mark,

     

    That looks like it should help with processor issue.

    Is this documented anywhere in the "TMS320C55x DSP Library Programmer’s Reference" as I couldn't see it. If not this seems like something that should be mentioned in the next rev. of the documentation?

    Thanks,

    J