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.

[参考译文] CC3220SF-LAUNCHXL:NVS 写入 MX25R3235F 失败:返回-7错误

Guru**** 2589275 points


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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/840358/cc3220sf-launchxl-nvs-write-to-mx25r3235f-unsuccessful-returns--7-error

器件型号:CC3220SF-LAUNCHXL

您好!

我一直在使用 NVS 驱动程序将一些配置数据写入外部闪存(MX25R3235F)。 我能够成功地访问 NVS_INIT、NVS_OPEN、但无法写入。

NVS_WRITE 返回-7 (NVS_STATUS_INV_WRITE)错误。

NVS 和 SPI 配置如下:

/*
================================================ NVS ================================================
*/

#include 
#include 

//
* NVSSPI25X 外部 NVS 闪存区域定义
*//

*
提供大小
为*指定最大验证缓冲区大小的写入验证缓冲区
*/

static uint8_t verifyBuf[256];

NVSSPI25X_Object nvsSPI25XObjects[1];

static const NVSSPI25X_Attrs = nHW1
/* Board_NVS0 */
{
regionBaseOffset = 0x0、
.regionSize = 0x1000、
sectorSize = 0x1000、
verifyBuf = verifyBuf、
verifyBufSize = 256、
/* NVS 打开 SPI */
.spiHandle = NULL、
/* SPI 驱动程序索引*/
spiIndex = Board_SPI0、
spiBitRate = 2000000、
/* GPIO 驱动器引脚索引*/
spiCsnGpioIndex = Board_GPIO0、
.statusPollDelayU = 100
}、
};

#define Board_NVSCOUNT 1

const NVS_Config NVS_CONFIG[Board_NVSCOUNT]={
/* Board_NVS0 */
{
.fxnTablePtr =&NVSSPI25X_fxnTable、
.object =_nvsSPI25XObjects[0]、
hwAttrs =&nvsSPI25XHOWAttrs[0]、
}、
};

const uint_least8_t NVS_count = Board_NVSCOUNT;


/*
================================================== SPI ========================================================
*/

#include 
#include 

#include 
#include 
#include 
#include 
#include 
#include 

#define Board_SPICOUNT 2

/*
=== spiCC32XXDMAObjects ===
*/
SPICC32XXDMA_Object spiCC32XXDMAObjects[Board_SPICOUNT];

uint32_t spiCC32XXSDMAscratchBuf[Board_SPICOUNT];

/*
*=== spiCC32XXDMAHWAttrs ===
*/
const SPICC32XXDMA_HWAttrsV1 spiCC32XXDMAHWAttrs[Board_SPICOUNT]={
/* Board_NWP_SPI *
/*网络处理器 SPI 总线*/
{
baseAddr = LSPI_base、
.intNum = INT_LSPI、
.intPriority =(~0)、
spiPRCM = PRCM_LSPI、
.csControl = SPI_SW_CTRL_CS、
csPolarity = SPI_CS_ACTIVEHIGH、
.pinMode = SPI_4PIN_MODE、
.TurboMode = SPI_Turbo_OFF、
.scratchBufPtr =&spiCC32XXSDMAscratchBuf[0]、
defaultTxBufValue = 0、
.rxChannelIndex = UDMA_CH12_LSPI_RX、
txChannelIndex = UDMA_CH13_LSPI_TX、
.minDmaTransferSize = 100、
.mosipin = SPICC32XXDMA_PIN_NO_CONFIG、
MISO 引脚= SPICC32XXDMA_PIN_NO_CONFIG、
clkPin = SPICC32XXDMA_PIN_NO_CONFIG、
csPin = SPICC32XXDMA_PIN_NO_CONFIG
}、
/* GSPI */
{
baseAddr = GSPI_base、
.intNum = INT_GSPI、
.intPriority =(~0)、
spiPRCM = PRCM_GSPI、
.csControl = SPI_SW_CTRL_CS、
csPolarity = SPI_CS_ACTIVELOW、
.pinMode = SPI_3PIN_MODE、
.TurboMode = SPI_Turbo_ON、
.scratchBufPtr =&spiCC32XXSDMAscratchBuf[1]、
defaultTxBufValue =~0、
.rxChannelIndex = UDMA_CH6_GSPI_RX、
txChannelIndex = UDMA_CH7_GSPI_TX、
.minDmaTransferSize = 10、
.mosipin = SPICC32XXDMA_PIN_07_MOSI、
MISO 引脚= SPICC32XXDMA_PIN_06_MISO、
clkPin = SPICC32XXDMA_PIN_05_CLK、
csPin = SPICC32XXDMA_PIN_NO_CONFIG
}、
};

/*
=== SPI_CONFIG ===
*/
const SPI_Config SPI_CONFIG[Board_SPICOUNT]={
{
.fxnTablePtr =&SPICC32XXDMA_fxnTable、
.object =&spiCC32XXDMAObjects[Board_NWP_SPI]、
hwAttrs =&spiCC32XXDMAHHWAttrs[Board_NWP_SPI]
}、
/* Board_SPI0 */
{
.fxnTablePtr =&SPICC32XXDMA_fxnTable、
.object =&spiCC32XXDMAObjects[Board_SPI0]、
hwAttrs =&spiCC32XXDMAHHWAttrs[Board_SPI0]
}、
};

const uint_least8_t SPI_count = Board_SPICOUNT; 

如何解决此问题?

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

    您好、Sapna、

    NVS 驱动器应与连接到 GSPI 接口的外部 SPI 闪存配合使用。 这不适用于连接到 NWP 的 SPI 闪存。 您需要将闪存连接到 GSPI、或者更有可能只使用 SL_FS API 进行非易失性存储。 您可以在 TMR 中找到有关 GSPI 的更多信息。

    Jesu