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.

[参考译文] MSP-EXP430FR5994:std:::vector 不适用于我的 C++程序

Guru**** 2465890 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1383968/msp-exp430fr5994-std-vector-not-working-for-my-c-program

器件型号:MSP-EXP430FR5994

工具与软件:

您好!

我想知道 C++向量是否与 MSP430配合使用作为我的 std::vector 的 push_back 函数现在可行、但将垃圾输入到向量列表。  该工程生成后可在上述 LaunchPad 上运行。

我想知道我留下什么是使它不起作用.

我的程序和存储器浏览器在调试模式下的快照如下所示:

num_c 从0 - 5进行计数、我希望在调试窗口中看到这些值、但没有看到。

下面是我使用的程序

e2e.ti.com/.../blink.cpp

该代码是我从 CCS 生成的简单代码。

如果您能为我发现问题、我会很感激、因为我已经检查了代码、无法找到问题。

谢谢

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

    你好、Abayomi Babatola

    我想知道您是否可以使用 C++的 C 接口来开发代码、因为 C 更常用

    请参阅 有关快速开发的代码示例 www.ti.com/.../SLAC710

    msp430fr599x_1.c 是基于软件延迟的闪烁 LED

    谢谢!

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

    我不知道 std :: vector 对象在内存中是什么样子,但我不希望它 看起来像 C 数组,因为有更多的功能与 std :: vector 相关。

    当我尝试此操作时、表达式视图向我展示了更多有关 my_vector 外观的信息、我在*__开始_= 0x4034 (=存储器显示中的16436)处找到了数据。

    当您添加/删除项目时、这种情况可能仍然存在、也可能不存在。 我最后做的是通过如下命令将向量内容提取到一个 C 数组中:

    uint16_t c_array[6];
    for (i = 0 ; i < my_vector.size() ; ++i)
    {
        c_array[i] = my_vector[i];
    }

    [编辑:重新阅读时、我注意到您实际上向 my_vector 添加了6个项目、因此我修复了 c_array[]声明([5]->[6])。]

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

    尊敬的 Li:

    感谢您的答复。

    是和否  可以、因为大多数 C++代码和语法都可以在 c 中实现、但需要更加费力。  否、我们的实现更高效、更优化、更省力、当它作为 C++实现时。

    我想知道这是否可行。  该编译器是一个 C++ 14编译器、std:vector 的用法对 C++而言是基本的。

    能够运行随附代码的位置?

    我将感谢你的答复和帮助。   

    谢谢

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

    你好、Abayomi Babatola

    我不熟悉  MSP430上 C++的语法。  

    请查看《 MSP430优化  C/C++ 编译器  v18.1.0.LTS 用户指南》(修订版 R) 第160页

    我认为  std:vector 无法用于 MSP430上 C++的语法

    谢谢!

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

    尽可能接近我可以知道, std :: vector 工作正常[见上]。 我能够将项目放入存储器、取出(使用附加代码)并在存储器中显示它们。 原始 Post 中的 Memory 视图不会显示数据、因为它看不到正确的位置(0x4034)。

    可能说 CCS 调试器不是很适合 C++、但我不知道 IAR/GDB 是否有更好的表现。 (这通常是一个难题。)