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.

[参考译文] 编译器/SM320F28335-HT:在将 C2000Ware 集成到我的 SYS/BIOS 项目中以实现 ADC 功能时遇到问题

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/869582/compiler-sm320f28335-ht-having-problems-integrating-c2000ware-into-my-sys-bios-project-for-adc-functionality

器件型号:SM320F28335-HT
主题中讨论的其他器件:C2000WARETMS320F28335

工具/软件:TI C/C++编译器

我尝试将 ADC 功能添加到我的 F28335 SYS/BIOS 项目中、并且目前在集成 C2000Ware 时遇到问题。 我主要关注 F2833x_DEV_USER_GUIDE.pdf 以及此处的 ADC 示例指南:
https://processors.wiki.ti.com/index.php/SYS/BIOS_and_controlSUITE_ADC_Example#Starting_Point

我认为、到目前为止我的主要问题是、我不确定要使用什么链接器文件进行 RAM 切片。 我目前已尝试以下文件:

  • C2000Ware device_support 中的28335_RAM_lnk.cmd
  • ccs920安装中的 F28335.cmd
  • BIOS 安装中的 TMS320F28335.cmd

似乎 TMS320F28335.cmd 提供了最大的成功、因为另外两个命令给我一个与缺失 PIEVECT 相关的错误。

警告#10247-D:在不使用 SECTIONS 规范的情况下创建输出段".CIO"
"C:/ti/C2000Ware_2_00_00_03_Software/device_support/f2833x/headers/cmd/DSP2833x_Headers_BIOS.cmd "、第139行:警告#10097:未找到内存范围:PIEVECT、位于第1页
"C:/ti/C2000Ware_2_00_00_03_Software/device_support/f2833x/headers/cmd/DSP2833x_Headers_BIOS.cmd "、第139行:错误#10099-D:程序不能放入可用内存中。 "PieVectTableFile"大小为0x100的第1页的对齐/分块运行放置失败

使用 TMS320F28335.cmd、我至少可以构建程序;但是、当我添加对 InitSysCrtl()的调用(在 ADC 示例项目之后)时、链接器似乎无法找到 ADC_cal 函数。



未定义的首次引用
符号
------ --------
_adc_cal ./DSP2833x_adc.obj

错误#10234-D:未解析的符号仍然存在
警告#10063-D:指定了"_c_int00"以外的入口点符号:"code_start"

TMS320F28335.cmd 在第0页中定义 ADC_CAL、之后用.ADC_cal "分配 ADC_cal 函数"、因此我不确定问题是什么。 此外、当我在其后添加 Memcopy 调用时、我也会得到对它的未定义引用、尽管我不确定应该在哪里定义它。

如果能提供这方面的任何帮助,将不胜感激。 谢谢!

Martin Dillon

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

    您好,

    [引用用户="Martin Dillon"]

    • C2000Ware device_support 中的28335_RAM_lnk.cmd
    • ccs920安装中的 F28335.cmd
    • BIOS 安装中的 TMS320F28335.cmd

    [/报价]

     如果仅在 28335器件上使用 SARAM 块、请使用28335_RAM_lnk.cmd;否则、在 common/cmd 下的 C2000Ware device_support 中使用28335.cmd。

    此外、您还需要在  头文件/cmd 下的 C2000Ware device_support 中使用 DSP2833x_Headers_nonBIOS.cmd 或 DSP2833x_Headers_nonBIOS.cmd。

    [引用 user="Martin Dillon"]似乎 TMS320F28335.cmd 提供了最大的成功,因为另外两个命令给我一个与缺少 PIEVECT 相关的错误。

    这是因为 DSP2833x_Headers_BIOS.cmd 有一些关于外设的部分、这些部分可能不包含在项目中。

    [引用 user="Martin Dillon"]使用 TMS320F28335.cmd,我至少可以构建程序;但是,当我添加对 InitSysCrtl()的调用(在 ADC 示例项目之后)时,链接器似乎无法找到 ADC_cal 函数。

     是否已将 DSP2833x_ADC_cal.asm 添加到示例中?

    我建议导入并检查 C2000ware 示例中的一个作为设置和内容的参考。

    C2000Ware\device_support\F2833x\examples\adc_dma

    此致。

     

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

    事实证明、我的问题是 我的项目中缺少了 DSP2833x_adc_cal.asm 文件、谢谢! 将该文件和 DSP2833x_ADC.c 和 DSP2833x_Memcopy.c 文件添加到我的项目后、我能够在我的目标硬件上成功构建并运行。

    我最终为我的项目成功使用的链接器文件是

     DSP2833x_Headers_BIOS.cmd - C:\ti\C2000Ware_2_00_00_03_Software\device_support\F2833x\headers\cmd\DSP2833x_BIOS.cmd
     TMS320F28335.cmd - C:\ti\BIOS_6_76_03_01\packages/ti\platforms\tms320x28\include\TMS320F28335.cmd

    谢谢!
    Martin Dillon