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.

[参考译文] CC1312R7:将结构放置在由 NVS 驱动程序共享的存储器中

Guru**** 2539500 points
Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1107424/cc1312r7-placing-a-struct-in-memory-shared-by-the-nvs-driver

器件型号:CC1312R7
Thread 中讨论的其他器件:SysConfig

您好!

我有几个结构要在使用 NVS 驱动程序的位置进行初始化。

目前我已将其设置为:

typedef 结构体__attribute((packed){

uint8_t FirstByte;

uint8_t 第二字节;

} STRUCT_TYPE;

#define DEFAULT_VALUES{.FirstByte = 0x00、.SecondByte = 0x01}

struct_type structname __attribute__((packed、 section ("flashBuf0")、location (0x20000))= default_values;  

在我的 SYSCFG 文件中、我有:

NVS1.$name ="CONFIG_NVS_0";

NVS1.internalFlash.$name ="ti_drivers_NVS_NVSCC26XX0";

NVS1.internalFlash.regionBase = 0x20000;

我得到的错误是:


错误#10099-D:程序将无法放入可用存储器中、或者该段包含需要无法为此段生成的 trampoline 的调用点。对".TI.bound:flashBuf0"大小0x2000运行定位失败、与".common:structname  "大小0x0002 (第0页)重叠

请告诉我如何解决此问题。

谢谢、

Greg

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

    您好、 Greg、

    您使用的是哪种编译器?

    谢谢、
    尼古拉伊

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

    TIClang 编译器

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

    您好、Greg、

    我不确定在不修改 SysConfig 生成 的 ti_drivers_config.c 文件的情况下是否可以执行此操作。

    您为什么要这样做? 是否可以在运行时初始化结构?

    此致、
    尼古拉伊

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

    我们找到了一个权变措施、以便我们可以在启动期间进行初始化。 在开发过程中会遇到麻烦、因为如果我想在我们完成引导加载程序开发之前重新初始化这些值、我必须确保闪存完全干净。  

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

    您好、Greg、

    听起来不错。

    您可以使用 Code Composer Studio (CCS)中的"所有未受保护的扇区"擦除选项(见下文)、以确保每次使用 CCS 中的调试器加载应用程序时闪存都是干净的。 也许这可以在开发过程中为您提供帮助。



    此致、
    尼古拉伊