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.

[参考译文] CCS/TMDSDSK6416:无法编译汇编语言文件

Guru**** 661510 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/921403/ccs-tmdsdsk6416-impossible-to-compile-an-assembly-language-file

器件型号:TMDSDSK6416
主题中讨论的其他器件:TMS320C6416

工具/软件:Code Composer Studio

你好。
目前、我有 TMS320C6416 DSP 入门套件(DSK)。 有点旧,但功能相当强大的卡。
作为此测试硬件的补充、我将使用以下书籍:


采用 TMS320C6713和 TMS320C6416 DSK 的数字信号处理和应用(第二版)

推荐给任何不知道它的人。 但是、一些用于浮点卡 TMS320C6713的示例汇编器程序。 无法为 TMS320C6416卡编译它们。 当然、我已经根据我的卡修改了库、即使这样、我也会收到一个错误、在下面显示"无法创建链接器文件"、我会留下我尝试执行的代码

具体来说、它是前面提到的书籍(第201页)的示例4.14。

是否有人知道为什么无法创建链接器文件?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 user="user6153249"]我收到一个错误,提示"无法创建链接器文件"

    我从未见过这种诊断。  您尝试附加的图像不可见。  什么工具或实用程序会发出该诊断信息?

    谢谢、此致、

    乔治

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    很抱歉我迟到了。 我在汇编器中附加代码。 我在 Windows XP Home Edition 上运行的是 Conde Composer 3.8

    //FIRCircirc C 程序使用循环缓冲区调用 asm 函数

    #include "DSK6713_AIC23.h" //codec-DSK 支持文件
    uint32 fs=DSK6713_AIC23_FREQ_8kHz; //设置采样率

    #define DSK6713_AIC23_INPUT_MIC 0x0015
    #define DSK6713_AIC23_INPUT_LINE 0x0011
    uint16 inputsource=DSK6713_AIC23_input_line;//选择输入源
    #include "bp1750.cov"///bp、1750 Hz 系数文件
    int yn = 0;//init 滤波器的输出
    中断 void c_int11 ()//ISR

    SAMPLE_DATA 短整型;
    SAMPLE_DATA =(INPUT_SAMPLE ());//最新的输入采样数据
    yn = fircircfunc (sample_data、h、N);//asm func 传递到 A4、B4、A6

    output_sample(((short)(yn>>>15));
    返回;
    //过滤器的输出
    //返回到调用函数


    void main()

    COMM_intr ();//init DSK、编解码器、McBSP

    while (1);
    //无限循环


    ASM:

    ;FIRcfunc.asm 使用循环寻址从 C 调用的函数
    ;A4=最新样本, B4=系数地址, A6=滤波器阶数
    ;组织的延迟样本:x[n-(N-1)]...x[n];系数为 h (0)...h[N1]
    .def _fircircfunc
    .def LAST_addr
    .def 延迟
    .sect "circdata";循环数据段
    .align 256;align 延迟缓冲区256字节边界
    将.space 256;init 256字节缓冲区延迟为0
    last_addr .int last_addr-1;指向延迟缓冲区的底部

    .text
    cirfircfunc:
    MV A6、A1
    ;代码段
    FIR;使用圆圆点的功能
    ;设置循环计数

    MPY A6,2,A6;由于将数据作为字节进行格化缓冲
    零 A8;初始 A8用于累加
    添加 A6、B4、B4;因为系数缓冲区数据为字节
    Sub B4,1,B4;B4=底部系数阵列 h[N-1]
    MVKL 0x00070040、B6;选择 A7作为指针和 BK0
    MVKH 0x00070040、B6;BK0、256字节(128个短接)
    MVC B6、AMR;设置地址模式寄存器 AMR
    MVKL LAST_addr、A9;A9=最后一个圆周地址(低16位)
    MVKH LAST_addr、A9;最后一个圆周 adr (16位以上)
    LDW * A9、A7;A7=最后一个圆周时间
    NOP 4.
    sth A4、*A7++;最新样本-->最后地址

    循环: ;开始 FIR 循环
    LDH *A7++、A2;A2=x[n-(N-1)+i] I=0、1、...、N-1
    || LDH *B4--、B2;B2=h[N-1-i] I=0、1、...、N-1
    A1,1,A1分 ;递减计数

    [a1] B 循环;如果计数为0、则分支到循环
    NOP 2.
    MPY A2、B2、A6;A6=x[n-(N-1)+i]* h[N-1+i]
    NOP
    添加 A6、A8、A8;在 A8中累积
    STW A7、*A9;将最后一个圆周地址存储到 LAST_addr
    b b3;将 addr 返回到调用例程
    MV A8、A4;结果返回 A4
    NOP 4.


  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我很困惑。  问题是在构建时还是在运行时出现?   

    如果在构建 C 文件时出现问题、那么对于该 C 文件、 请按照文章 如何提交编译器测试用例中的说明进行操作。

    如果在编译汇编文件时出现问题、则该过程与此类似。  除非您不能预处理汇编文件。  此汇编代码似乎不包含任何其他文件、因此不需要预处理。

    谢谢、此致、

    乔治

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。


    编译期间出现问题。 谢谢、我将尽快验证路径