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.

[参考译文] 编译器/CC1310:VerifyBuf 会覆盖全局变量

Guru**** 2988540 points

Other Parts Discussed in Thread: CC1310

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/937470/compiler-cc1310-verifybuf-overwrites-global-variable

器件型号:CC1310

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

你(们)好

我有一个程序以指定的间隔循环执行任务。 我在调试时创建了一个全局变量、以检查它在循环中迭代了多少次。

不过、最近、它不是第一次计数到1、而是第一次计数到61。 这是因为 verifyBuf 溢出到它中。 何时以及如何填充该缓冲器?

我很难找到 verifyBuf 的实际功能以及它突然溢出的原因。

该程序简化为 CC1310通过 I2C 与 MSP430通信。 包含必要数据的大约30个结构的列表会通过循环运行、循环会调用一个处理 I2C 通信的函数。

正是在这段时间内、验证 Buf 被写入。

这是调用堆栈。

内存浏览器:

以及会覆盖我的变量的 system.c 中的函数

希望这是足够的信息、或者请告诉我

此致

拉斯

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

    拉斯、

    verifyBuf 是用于外部闪存的 NV 驱动程序的一部分。 您是否在 CC1310 LaunchPad 上使用了外部闪存?

    从文档中:

     当 'flags'参数中请求'NVS_write_pre_verif'或'NVS_write_post_verify'函数时,NVS_write()命令将使用'versriyBufS'和'versriyBufSize'参数。 "vesriyBuf"用于连续读回闪存的部分、以便与写入闪存的数据进行比较。

    您是否正在使用 NV 驱动程序?  

    此致、

    Daniel

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

    你好、Daniel

    我不知道有人故意使用任何 NV 驱动器。

    我已经解决了这个问题,但仍然不明白为什么这是第一个问题。

    我找到了我使用的 printf 调用、该调用是在我必须在代码的 PC 构建中运行一些 unittests 时添加的。 在这个 printf 调用内部的某个位置、verifyBuf 被写入并溢出到我的全局计数器中。 我删除了 printf、它再次按预期进行计数。

    正如我说过的、我不知道错误是为什么出现的。 在代码运行时、printf 之前就已经存在过、而不会出现该问题。

    您能否链接到您提到的文档位置? 我相信我已经四处看看了、但却找不到它。

    此致

    拉斯

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

    拉斯、

    我很高兴问题得到解决。

    我所提到的文档可从以下网址获得: https://dev.ti.com/tirex/explore/content/simplelink_cc13x0_sdk_4_10_01_01/docs/tidrivers/doxygen/html/struct_n_v_s_s_p_i25_x___h_w_attrs.html 

    此致、

    Daniel  

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

    谢谢。

    我们将深入了解文档并进行学习。

    我以前应该学过的另一个教训是,睡在上面,第二天又回到这个问题。

    再次感谢。