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.

[参考译文] OSAL_SNV_WRITE 函数不会在每次调用时写入相同的页

Guru**** 2589280 points


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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/986162/osal_snv_write-function-does-not-write-same-page-every-call

大家好、Eveyone、

我有 CC2642R1开发板。  

我将使用简单的外设 ble-5示例。 我正在尝试使用 osal_SNV_write()函数写入闪存。 我刚刚将该函数放入按钮处理程序中、因为每个按钮按压函数在最后一次结束写入时都从地址开始写入。  

更加明确;

我要编写的代码是:

uint8_t deneme []={
0x11、0x12、0x13、0x14、0x15、0x16、0x17、0x18、0x19、0x1A、0x1b、0x1c、0x1d、0x1E、0x1f、
0x21、0x22、0x13、0x14、0x15、0x16、0x17、0x18、0x19、0x1A、0x1b、0x1c、0x1d、0x1E、0x1f、
0x31、0x32、0x13、0x14、0x15、0x16、0x17、0x18、0x19、0x1A、0x1b、0x1c、0x1d、0x1E、0x1f、
0x41、0x42、0x13、0x14、0x15、0x16、0x17、0x18、0x19、0x1A、0x1b、0x1c、0x1d、0x1E、0x1f、
0x51、0x52、0x13、0x14、0x15、0x16、0x17、0x18、0x19、0x1A、0x1b、0x1c、0x1d、0x1E、0x1f、
0x61、0x62、0x13、0x14、0x15、0x16、0x17、0x18、0x19、0x1A、0x1b、0x1c、0x1d、0x1E、0x1f、
0x71、0x72、0x13、0x14、0x15、0x16、0x17、0x18、0x19、0x1A、0x1b、0x1c、0x1d、0x1E、0x1f、
0x81、0x82、0x13、0x14、0x15、0x16、0x17、0x18、0x19、0x1A、0x1b、0x1c、0x1d、0x1E、0x1f、
0x91、0x92、0x13、0x14、0x15、0x16、0x17、0x18、0x19、0x1A、0x1b、0x1c、0x1d、0x1E、0x1f、
0xa1、0xa2、0x13、0x14、0x15、0x16、0x17、0x18、0x19、0x1A、0x1b、0x1c、0x1d、0x1E、0x1f、
0xb1、0xb2、0x13、0x14、0x15、0x16、0x17、0x18、0x19、0x1A、0x1b、0x1c、0x1d、0x1E、0x1f、
0xc1、0xC2、0x13、0x14、0x15、0x16、0x17、0x18、0x19、0x1A、0x1b、0x1c、0x1d、0x1E、0x1f、
0xD1、0xd2、0x13、0x14、0x15、0x16、0x17、0x18、0x19、0x1A、0x1b、0x1c、0x1d、0x1E、0x1f、
0xe1、0xe2、0x13、0x14、0x15、0x16、0x17、0x18、0x19、0x1A、0x1b、0x1c、0x1d、0x1E、0x1f
};
t = osal_SNV_write (0x101、240、deneme);

正如我说过的、它是在按钮处理程序函数中写入的。 ( BLE_NVID_CUST_START 定义为0x100)

当我第一次按下按钮时、函数开始写入0x48062 闪存地址并结束0x48133。 然后、当我第二次按下按钮时、它不会开始写入0x48062、我开始写入0x48152闪存地址。 每次都像这样继续。  

那么、这是正常的吗? 因为您可以看到、我的页 ID 始终为0x101。 按照 syscfg 中的 NVS 区域基址地址为0x48000的方式。