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.

[参考译文] RTOS/TMDSIDK437X:C++示例

Guru**** 2540720 points
Other Parts Discussed in Thread: SYSBIOS

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/601593/rtos-tmdsidk437x-c-example

器件型号:TMDSIDK437X
Thread 中讨论的其他器件:SYSBIOS

工具/软件:TI-RTOS

主机操作系统:Uubuntu/64 14.07

工具:CCS7、gcc-arm-none-eabi-4_9-2015q3、processor_sdk_rtos_AM437X_3_03_00_04、xdctools_3_50_01_12_core、UIA_2_20_00_02

使用示例 bigtime_IDK_AM437X_CortexA

在 IDK 上编译和执行。

问题:

1) 1)添加 C++类、请参阅以下文件。 链接器失败。 这是因为 g++未用作链接、如何更改?

2) 2)将以下两行代码添加到 example.cpp

#include
std::向量  _g;

生成以下问题:

akefile:145:目标'bigtime_IDK_AM437X_CortexA.out'的配方失败
/home/tcmichals/ti/bios_6_50_01_12/packages/gnu/targets/arm/libs/install-native/arm-none-eabi/lib/fpu/libc.a (lib_a-fstatr.o):在函数` fstat_r'中:
/home/xlibrary/trees/gnu/gnu-d01/src/linaro/gcc-arm-none-eabi-4_9-2015q3-20150921/src/newlib/newlib/libc/reent/fstatr.c:62:对` fstat'的引用未定义
/home/tcmichals/ti/bios_6_50_01_12/packages/gnu/targets/arm/libs/install-native/arm-none-eabi/lib/fpu/libc.a (lib_a-isattyr.o):在函数` isatty_r'中:
/home/xlibrary/trees/gnu/gnu-d01/src/linaro/gcc-arm-none-eabi-4_9-2015q3-20150921/src/newlib/newlib/libc/reent/isattyr.c:`:对"_isatty"的引用未定义
/home/tcmichals/ti/bios_6_50_01_12/packages/gnu/targets/arm/libs/install-native/arm-none-eabi/lib/fpu/libc.a (lib_a-lseekkr.o):在函数` lseek_r'中:
/home/xlibrary/trees/gnu/gnu-d01/src/linaro/gcc-arm-none-eabi-4_9-2015q3-20150921/src/newlib/newlib/libc/reent/lseekr.c:`:对"_lseek"的引用未定义
/home/tcmichals/ti/bios_6_50_01_12/packages/gnu/targets/arm/libs/install-native/arm-none-eabi/lib/fpu/libc.a (lib_a-readr.o):在函数`读取_r'中:
/home/xlibrary/trees/gnu/gnu-d01/src/linaro/gcc-arm-none-eabi-4_9-2015q3-20150921/src/newlib/newlib/libc/reent/readr.c:58:未定义对`读取'的引用
collect2:错误:LD 返回1退出状态
gmake.1]:***[bigtime_IDK_AM437X_CortexA.out]错误1.
gmake:***[全部]错误2.
Makefile:141:目标'all'的配方失败

/*
 * example.h
 *
 * 创建日期:2017年6月8日
 *     作者:tcGichals
 *

#ifndef example_h_
#define Example_H_

类示例

公共:
   示例();
   虚拟~示例();
};

#endif /* example_h_*/

/*
 * example.cpp
 *
 * 创建日期:2017年6月8日
 *     作者:tcGichals
 *

#include
#include
//#include

//std::vector  _g;
示例::example()

   // TODO 自动生成的构造函数存根



示例::~example()

   // TODO 自动生成的析构器存根





  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    RTOS 团队已收到通知。 他们将在这里作出回应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    Processor SDK 包含驱动程序示例和演示、您能不能澄清什么是 bigtime_idk_AM437X_CortexA? 此外、这看起来是通用的 ARM GNU 工具培训问题、请检查这是否对 answers.launchpad.net/.../453397有所帮助

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

    这可能与您遇到的问题无关、但 XDCtools 3.50不是 Processor SDK 中 BIOS 版本支持的 RTSC 工具链的正确版本。 我们建议您使用 XDCtools 3.32、它是 Processor SDK RTOS 的一部分。

    我还想向您介绍 SysBIOS 文章,该文章介绍了 C++代码的一些问题:
    processors.wiki.ti.com/.../BIOS_with_GCC_(CortexA)

    文章指出只有 BIOS 6.51受更改影响、但我正在检查 BIOS 6.46是否也受此问题影响。

    另一个问题:您是否使用 CCS 版本中的 Linaro 编译器版本、proc 或 SDK ROTS、或者是否单独安装了 Linaro 编译器?

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

    我将添加3个示例项目

    bittime_IDK_ARM437X__org.zip

    这是导入到工作区中的原始示例。  这显示了 C++应用程序的一个有限示例。  编译并工作。

    2.bittime_IDK_AM437X_CortexA_virtual.zip

    问题:这显示了使用虚拟函数添加简单类会导致编译问题的错误。  

    固定:?

    bittime_IDK_AM437X_CorectA_stdvector.zip

    问题:使用 std::vector 会导致其他编译问题。

     我修复数字2的方法是、将编译器更改为使用 g++而不是 gcc。  这可以修复第2个问题、但会导致更多问题。  每个问题的修复方法是什么?

    e2e.ti.com/.../bigtime_5F00_IDK_5F00_AM437X_5F00_CortexA_5F00_org.zipe2e.ti.com/.../bigtime_5F00_IDK_5F00_AM437X_5F00_CortexA_5F00_virtual.zipe2e.ti.com/.../bigtime_5F00_IDK_5F00_AM437X_5F00_CortexA_5F00_stdvector.zip

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我将执行标准安装:
    CCS7.1.0.00016_web_linux-x64.tar.gz
    ti-processor-sdk-rtos-am437x-evm-03.03.00.04-Linux-x86-Install.bin
    (在 CCS7中根据更新管理器安装最新软件更新后、需要更新工具)
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    好的、找到了问题。
    使用 CPP 代码时、gcc 前端将根据文件扩展名确定要使用的编译器后端类型。 .cp 将调用 C++。 当 gcc 被调用为链接器时、它不会添加 C++链接。
    因此、需要在链接器命令中添加"STDC++"。

    编译。