C5535 memory model设置问题

C5535 memory model设置问题

此问题尚无答案
All Replies
  • 秀才290分

    硬件是TMS320C5535 eZdsp USB Kit,最近用来学习dsp,例程是audioframework

    现在尝试把memory model 改为huge时出错,设置方法参考了论坛里之前的帖子:

    http://www.deyisupport.com/question_answer/dsp_arm/c5000/f/48/t/85945.aspx

    并且根据帖子下面Ti工作人员的建议,把库文件 bios.a55L修改了,如下:

    改完之后出现了69个错误,具体见下图:

    根据提示,似乎是确实相应的数据类型,错位定位如下(在std.h文件中)

    应该是Int这个类型没有定义。追踪了一下Int,发现已经在tistdtypes.h中定义过了:

    而且在std.h文件中,已经包含过了“tistdtypes.h”文件。

    我在工程中搜索了一下,没有发现定义过“STD_”,所以我觉得“tistdtypes.h”这个头文件已经被包含了,那么为什么还会有这样的错误提示呢??

    另外还想请教一下,修改memory model的正确步骤是什么,都需要哪些设置?

  • 状元76155分

    把bios_nonints.a55去掉,rts库改成rts55h.lib

  • 秀才290分

    Hi Shine,

    感谢您的回复!

    1.bios_nonints.a55,应该怎样去掉?

    2.rts55h.lib已经设置,如下图:

  • 状元76155分

    specify a preinclude file那里直接删。

  • 秀才290分

    Hi Shine,

    preinclude file设置里没有包含bios_nonints.a55,只有.a55H,如下图:

  • 状元76155分

    红色圈出来的文件不是bios_NONINST.a55h么,这个文件不是你加的么?

  • 秀才290分

    Hi Shine,

    把.a55h文件去掉,添加bois.a55h,对吗?

  • 状元76155分

    都去掉试试

  • 秀才290分

    Hi Shine,

    如你所说,都去掉之后,编译后出错,详情如下:

  • 榜眼44201分

    还是基于这个例子的修改吗?http://www.deyisupport.com/question_answer/dsp_arm/c5000/f/48/t/122002.aspx

    #1. 上面的信息显示,这个工程里没有bios_NONINST.a55L啊,这是怎么加进来的?反正意思是说这个bios_NONINST.a55是large的,要改成huge重编译。

    #2. 即使过了上面的编译步骤,到linking步骤也会有问题的,这个例子里调用了库c55_caf_02.00.02.04/asrc/lib/asrc_dly_fix_lib.lib,没看到有源码,不能重新编译的,这个库的memory model是large的,不能跟huge兼容。

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

    Think Over Before Asking.

    http://www.catb.org/~esr/faqs/smart-questions.html#goal

  • 状元76155分

    看一下哪里用到了bios_NONINST.a55L?要改成相应的huge库。

  • 秀才290分

    Hi Tony,

    例程就是这个。

    #1.即使把bios_NONINST.a55H加入到Preinclude file里,编译还是出错。

    #2.c55_caf_02.00.02.04/asrc/lib/asrc_dly_fix_lib.lib,看路径是包含在cslvc5505_Lib.lib里吧?这个应该是没有问题的吧,毕竟这个工程我在没修改memory model时可以正常编译,并且编译后可以正常在开发板上运行的

  • 秀才290分

    把bios_NONINST.a55H加到Preinclude file里难道不行吗?

    不行的话,应该怎么修改呢?

  • 榜眼44201分

    hellolittle0711
    #1.即使把bios_NONINST.a55H加入到Preinclude file里,编译还是出错。

    你没明白我的意思,就是这个bios_NONINST.a55H是large的所以不能与huge的兼容,就不能加进去,怎么成了即使把它加进去。

    hellolittle0711
    #2.c55_caf_02.00.02.04/asrc/lib/asrc_dly_fix_lib.lib,看路径是包含在cslvc5505_Lib.lib里吧?这个应该是没有问题的吧,毕竟这个工程我在没修改memory model时可以正常编译,并且编译后可以正常在开发板上运行的

    各是各的,为什么说/asrc_dly_fix_lib.lib包含在cslvc5505_Lib.lib里,没改memory mode时,都是large的,当然可以编了,现在问题同一个工程里调用的库有的是large,有的是huge,不兼容。

    我编译的结果如下,到了link这一步,因为/asrc_dly_fix_lib.lib是large的所以链接不成功。:

    <Linking>
    fatal error: file
    "C:/ti/c55_lp/c55_caf_02.00.02.04/asrc/lib/asrc_dly_fix_lib.lib<asrc_dly_fix
    .obj>" has a Tag_Memory_Model attribute value of "2" that is different than
    one previously seen ("3"); combining incompatible files

    >> Compilation failure
    makefile:163: recipe for target 'C:/ti/c55_lp/c55_caf_02.00.02.04/build/ccsv5/Debug/CSL_USB_IsoFullSpeedExample_Out.out' failed
    gmake: *** [C:/ti/c55_lp/c55_caf_02.00.02.04/build/ccsv5/Debug/CSL_USB_IsoFullSpeedExample_Out.out] Error 1
    gmake: Target 'all' not remade because of errors.

    **** Build Finished ****



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

    Think Over Before Asking.

    http://www.catb.org/~esr/faqs/smart-questions.html#goal

  • 秀才290分

    Tony,

    1,关于bios_NONINST,我在网上百度的结果是.a55L是large的库,.a55H是huge的库,所以我才把.a55H加入到了工程中,这样不对是吗?正确的做法应该怎样?您在编译的时候是怎样设置的呢?

    2,我尝试添加一下这个库文件试一下。

    谢谢您的耐心回复,刚开始学习,好多地方不是太明白。