1.22.26.4 SQIx_XIPSetup Function

C

void SQIx_XIPSetup(uint32_t sqiXcon1Val, uint32_t sqiXcon2Val); // x - Instance of the SQI peripheral

Summary

Sets up SQI peripheral to XIP mode.

Description

This function can be used to configure SQI peripheral to XIP mode at run-time.

Precondition

SQIx_Initialize must have been called for the associated SQI instance.

Parameters

Param Description
sqiXcon1Val Holds the value to be written to SQI XIP Control Register 1
sqiXcon2Val Holds the value to be written to SQI XIP Control Register 2

Returns

None

Example

#define SST26VF_HS_READ 0x0B

#define XIP_UNCACHED_ADDR_MASK 0xF0000000

uint8_t readData[512];

APP_XIPRead()
{
    uint32_t address = 0x1000;
    uint32_t *sqiXipAddr = (uint32_t *)(address | XIP_UNCACHED_ADDR_MASK);
    uint32_t *readBuffer = (uint32_t *)readData;
    uint32_t sqiXcon1Val = 0;
    uint32_t sqiXcon2Val = 0;
    uint32_t i;
    
    sqiXcon1Val = SQI_XCON1_TYPECMD_VAL(QUAD_MODE) | SQI_XCON1_TYPEADDR_VAL(QUAD_MODE) |
    SQI_XCON1_TYPEMODE_VAL(QUAD_MODE) | SQI_XCON1_TYPEDUMMY_VAL(QUAD_MODE) |
    SQI_XCON1_TYPEDATA_VAL(QUAD_MODE) | SQI_XCON1_READOPCODE_VAL(SST26VF_HS_READ) |
    SQI_XCON1_ADDRBYTES_VAL(THREE_ADDR_BYTES) | SQI_XCON1_DUMMYBYTES_VAL(3);
    
    sqiXcon2Val = SQI_XCON2_MODEBYTES_VAL(0) | SQI_XCON2_DEVSEL_VAL(DEVICE_1);
    
    SQI1_XIP_Setup(sqiXcon1Val, sqiXcon2Val);
    
    for (i = 0; i < (512/4); i++)
    {
        *readBuffer++ = *sqiXipAddr++;
    }
}