2015536_zh-CN

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

2015536_zh-CN

2015536_zh-CN

RW612 SDK - MFlash 文件库 const 不正确

MFlash 文件系统库 (mflash_file.h) 的 API 不是 const-correct,因为mflash_file_t 结构和 mflash_file_save() 和 mflash_file_mmap() 函数中的文件名参数不是声明为“const char *”,而是声明为“char *”。

typedef struct
{
    char *path;
    uint32_t max_size;
} mflash_file_t;

status_t mflash_file_save(char *path, uint8_t *data, uint32_t size);

status_t mflash_file_mmap(char *path, uint8_t **pdata, uint32_t *psize);

在 C++ 翻译单元中声明 mflash_file_t 结构表时会引发警告:

C:\NXP\workspace\[redacted]\config/kvstore_config.h:50:28: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
   50 | #define KVSTORE_FILE_PATH ("/kvstore")
      |                           ~^~~~~~~~~~~
../source/program.cpp:47:15: note: in expansion of macro 'KVSTORE_FILE_PATH'
   47 |     { .path = KVSTORE_FILE_PATH, .max_size = 3000 },
      |               ^~~~~~~~~~~~~~~~~

字符串文字永远不应被视为可写的;在某些情况下,如果由于字符串被声明为可写而将其分配给 RAM 而不是闪存,则可能会导致过多的内存使用。

请修复这些功能的 API。此外,请为这个和其他头文件添加缺少的 extern "C" { } 声明;我必须放置 #include 声明在 extern "C" { } 声明内,以便我的应用程序正确链接。

达娜·M.

回复:RW612 SDK - MFlash 文件库 const 不正确

由于某种原因,我的附件没有显示出来。再试一次。

达娜·M.

回复:RW612 SDK - MFlash 文件库 const 不正确

我正在使用最新的 SDK(v2.16.1),并使用任何包含 MFlash 驱动程序的示例(例如“wifi_mqtt”)。我附上了我的“修复”版本,其中仅涉及用“const char *”替换“char *”的所有实例。

达娜·M.

タグ(1)
評価なし
バージョン履歴
最終更新日:
‎11-21-2025 12:26 PM
更新者: