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.

[参考译文] TM4C1294NCPDT:在 CCS 中编译 RTS、而不是在 Makefile (mklib.exe)中编译

Guru**** 2391415 points
Other Parts Discussed in Thread: TM4C1294NCPDT

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1424526/tm4c1294ncpdt-compile-the-rts-in-ccs-not-the-makefile-mklib-exe

器件型号:TM4C1294NCPDT

工具与软件:

我使用的是 tm4c1294X 芯片。 我希望单步跟踪 CCS 中的以下过程(我知道建议使用 mklib 工具来生成 RTS lib):
  1. 切换到用户模式并设置用户模式堆栈。
  2. 设置状态寄存器和配置寄存器。
  3. 设置堆栈。
  4. 处理特殊二进制符号复制表(如果存在)。
  5. 处理运行时初始化表以自动初始化全局变量(使用--rom_model 选项时)。
  6. 调用所有全局构造函数。
  7. 调用 main 函数。
  8. 当 main 返回时调用 exit。

我希望在 CCS 中使用我的程序编译整个 RTS。  我可以使用 mklib.exe 来构建 rtsv7M4_T_le_v4SPD16_xo_eabi.lib。 当我复制生成 rtsv7M4_T_le_v4SPD16_xo_eabi.lib 的所有文件并将它们添加到 CCS 工程中、然后根据 Makefile 中的编译和链接选项设置 CCS 时、我发现 atomy.c (重新定义了许多抖动)、而 debug.cpp 存在编译器错误。 因此、我有两个问题:

  1. 是否可以在 CCS 环境中编译 RTS (让 CCS 生成 makefile)而不是使用 Makefile?
  2. 如果可能、您能否提供 CCS 工程示例或描述特定的编译器和链接器选项设置?


    我的 CCS 是 CCS1210

    编译器标记:
src src src -----------/asmtest/tilibcworkspace/testlibc -- CCS - CCS - CCS - CCS -- CCS - CCS - CCS ----- src - CCS - CCS - CCS - CCS - CCS - CCS - CCS - CCS - CCS - CCS - CCS - CCS - SDK -- src - src - CCS - CCS - CCS:SDK - CCS - CCS:SDK - CCS - CCS - CCS:SDK - src - CCS:SDK - src - CCS - CCS:SDK - CCS:SDK - CCS:SDK - CCS:SDK - src - CCS:SDK - CCS:SDK - CCS:SDK - CCS:SDK - CCS:SDK - CCS:SDK - CCS:SDK - CCS:SDK - src - CCS:SDK - CCS:SDK - CCS:SDK - CCS:SDK - src - CCS:SDK - CCS:SDK - CCS:SDK - CCS:SDK - CCS:SDK - CCS:SDK - CCS:SDK - CCS:SDK - CCS:SDK - CCS:SDK - CCS:SDK - CCS:SDK - CCS:SDK - CCS:SDK - CCS:SDK - CCS:SDK /asmtest/clib /asmtest/clib /asmtest/clib /asmtest/clib /asmtest/clib /asmtest/clib /asmtest/clib /asmtest/clib /asmtest/clib /asmtest/clib /asmtest/clib

    链接器标志:

-mv7M4 --code_state=16 --float_support=FPv4SPD16 -me --define=ccs="ccs"--define=part_TM4C1294NCPDT -g --rxml --diag_warning=225 --diag_wrap=off --display_error_number --embedded_constant=off


非常感谢。

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

    这只是一场噩梦。 我放弃了。 显然、CCS12是根据 mklib 程序中的所有文件和选项以及 src 目录中的 Makefile 设置的。 不过、仍然存在各种误差。 在 CCS 中编译自己的 C 库与 CCS 本身过于紧密相关。 我最初以为只需要将相应的 C、C++和 asm 文件导入 CCS。 然后、参考 mklib 中相应的编译和链接选项和 Makefile 来设置 CCS、、那么所有这些都应该都没有问题。 现在我可以说这几乎是一项不可能的任务。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [quote userid="523024" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1424526/tm4c1294ncpdt-compile-the-rts-in-ccs-not-the-makefile-mklib-exe 是否可以在 CCS 环境中编译 RTS (让 CCS 生成 makefile)而不是使用 Makefile?

    TI 没有人曾尝试过。  唯一支持的方法是使用 mklib .

    谢谢。此致、

    -George.

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

    您好、George、

    非常感谢您的重播、然后在使用 mklib.exe 时、我获得了自定义 RTS 库(包含完整的调试信息)、 通过这种方式、 我仍然可以在源代码级逐步调试 RTS 库吗?  

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

    我已经尝试过了,它是好的。 再次感谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
     我是否仍可以一步一步调试源代码级的 RTS 库?

    您的处理能力有所提高。  但由于代码已进行优化、因此在此过程中预计会遇到一些挑战。  我不知道具体的细节、您可能会遇到什么情况。  但您可能会看到变量在意外时间更新、控件可能不会以常规的逐行方式通过函数、等等  只要你的期望设定正确,我相信你会很好。

    谢谢。此致、

    -George.

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

    是的、当在 Makefile 中使用"-OFF"标志时、编译失败、然后使用"-O0"时、RTS 库已成功编译。 我还注意到、在编译器 manaul 中、ti clang 有三个 lib、libc (用于 C 标准运行时功能)、libc++ABI 和 libc++、compiler-rt、只有第一个库具有源代码、其他三个库在 CCS 安装包中没有源代码、我是对吗?

    谢谢

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

    有。

    注释 tiarmclang 没有等效于 mklib 从中删除 armcl 编译器工具。

    谢谢。此致、

    -George.