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/TMS320F28035:使用 printf 时出错

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/769395/ccs-tms320f28035-error-when-printf-used

器件型号:TMS320F28035
主题中讨论的其他器件:C2000WARE

工具/软件:Code Composer Studio

您好,

 我将使用示例 C2000Ware:\C2000Ware_XXXX\device_support\f2803x\examples\c28\adc_soc。 当我尝试使用 printf 语句打印内容时、我收到以下错误:


****项目示例2803xAdcfor_**的配置调试构建

"e:\\ti\\ccsv8\\utils\\bin\\gmake"-k all

构建目标"Example_2803xAd.out"
调用:C2000链接器
"http /ti/ti-cgt-c2000_6.4.2/bin/cl2000:/cn/zh-cn/adc/express-ccla_support=cla0 -define="_model"-define="large_model"-quiet -verbose_diagnostics ---cdiag_warning=10063 -issue_issue_z -z -mc2803x_adexample"-cn_example_cs_example.com -cothere"-texample_example_intrad_example"-cus_example_cus_example.com -cus_example.html_example"-intrad_example_bot_example_bot_example_cus_example_bot_example"-cus_example.com -cus_example_cus_express-cus_example_intrad_express-cus_example.texample.texample.com /ti/c2000/C2000Ware_1_00_06_00/device_support/f2803x/headers/cmd/DSP2803x_Headers_nonBIOS.cmd /ti/c2000/C2000Ware_1_00_06_00/device_support/f2803x/common/cmd/28035_RAM_lnk.cmd /ti/c2000/C2000Ware_1_00_06_00/libraries/math/IQmath/c28/lib /ti/c2000/C2000Ware_1_00_06_00/device_support/f2803x/common/lib /ti/c2000/C2000Ware_1_00_06_00/device_support/f2803x/examples/c28/adc_soc /ti/ti-cgt-c2000_6.4.2/include /ti/ti-cgt-c2000_6.4.2/lib

>>编译失败
Makefile 150:目标'_2803xAdexc.out'的配方失败
警告:创建不带 SECTIONS 规范的输出段".CIO"
警告:创建默认大小为0x400的".esysmem"段;使用-heap
更改默认大小的选项
"C:/ti/c2000/C2000Ware_1_00_06_00/device_support/f2803x/common/cmd/28035_RAM_lnk.cmd "、第143行:错误:
程序将不能放入可用的内存中。 放置方式
".text"段大小0x2400页0的对齐/分块失败。 可用
存储器范围:
RAML0L1大小:0xd00未使用:0xd00最大孔洞:0xd00
.text:> RAML0L1,PAGE = 0
"C:/ti/c2000/C2000Ware_1_00_06_00/device_support/f2803x/common/cmd/28035_RAM_lnk.cmd "、第152行:错误:
程序将不能放入可用的内存中。 使用运行放置
".esysmem"大小为0x400第1页的对齐/分块失败。
可用存储器范围:
RAML2大小:0x300未使用:0x38最大孔:0x38
.esysmem:>RAML2,page = 1.
"C:/ti/c2000/C2000Ware_1_00_06_00/device_support/f2803x/common/cmd/28035_RAM_lnk.cmd "、第151行:错误:
程序将不能放入可用的内存中。 放置方式
".econst"大小为0x248页1的对齐/分块失败。 可用
存储器范围:
RAML2大小:0x300未使用:0x38最大孔:0x38
econst:>RAML2,page = 1.
错误:链接期间遇到错误;未生成"Example_2803xAdcout"
gmake:***[Example_2803xAd.out]错误1.
gmake:目标"全部"不会由于错误而重新生成。

****构建完成****

请帮我纠正此错误。

此致、

Silpa

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

    您可以将.text、.esysmem、.econst 段分配给具有较大大小的 RAMN 存储器。 段到存储器的映射作为链接器命令文件的一部分完成。
    此外、您还可以使用--printf_support (C2000编译器->高级选项->库函数假设)将数据最小化或浮动。 这将降低 printf 的内存要求

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

    "您可以将.text、.esysmem、.econst 段分配给具有较大大小的 RAMN 存储器。 段到存储器的映射是作为链接器命令文件的一部分完成的--how to do this?

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

    在.cmd 文件中、您可能会在 SECTIONS 下具有如下所示的内容
    .text:> RAMx

    由于.text 大小大于 RAMx 大小(RAM 原点和大小是在.cmd 文件的 MEMORY 下定义的)、因此您遇到此错误。
    您可以组合多个 RAM .text :>> RAMx | Ramy。
    或者,您可以将其分配给大小更大的 RAM .text :>RAMz (其中 RAMz 大小大于.text 大小)

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

    我不建议在微自省中使用 printf、因为它的尺寸更大、并且占用大量 CPU 周期。 一个更好的替代方法是使用 SCI 端子。 这会打开 PC 上的 COM 端口、并允许您查看串行终端上通过 SCI 发送的字符、例如 Tera Term、有关详细信息、请参阅 sci_echoback

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