External flash control via kinetis M series SPI module

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

External flash control via kinetis M series SPI module

External flash control via kinetis M series SPI module

  1. Abstract

        Kinetis M series MCU is Freescale’s Metrology microcontrollers based on ARM Cortex M0+ cores. The SPI module of KM provides for full-duplex, synchronous, serial communication between the MCU and peripheral devices, it also has programmable 8 or 16 bit data transmission length, 64bit FIFO mode for data transfers, DMA transmit and receive features, single wire bidirectional mode, etc. This document is mainly use the KM34Z256VLQ7 SPI module realize the erase, program and read operation in external flash MX25L6404EM2I, it also gives sample code of the detail command external flash operation, and at last, print the testing code via UART.

pastedImage_0.jpg

1.SPI pin assignment and basic code

(1) SPI pin assignment

SPI signal

Pin name

Description

SPI_SS

PTD1

Slave select

SPI_SCK

PTD2

SPI serial clock

SPI_MOSI

PTD3

Master data out, slave data in

SPI_MISO

PTD4

Master data in, slave data out

External flash MX25L6404EM2I circuit:

pastedImage_6.jpg

(2) SPI initialization

  SPI initialization configuration the SPI pin, SPI module baud, master or slave mode, module enable, etc. the code just as following:

SIM_SCGC4 |= SIM_SCGC4_SPI0_MASK|SIM_SCGC4_SPI1_MASK;                            

SIM_SCGC5 |= SIM_SCGC5_PORTD_MASK;

void serial_flash_init(void)

{

    PORTD_PCR1 &= ~PORT_PCR_MUX_MASK;       

    PORTD_PCR1 |= PORT_PCR_MUX(1) |0X03;                                           //Use PTD1 as SPI0_SS  // configure it as the GPIO

    PORTD_PCR2 &= ~PORT_PCR_MUX_MASK;

    PORTD_PCR2 |= PORT_PCR_MUX(3) |0X03;                                           //Use PTD2 as SPI0_SCK

    PORTD_PCR3 &= ~PORT_PCR_MUX_MASK;

    PORTD_PCR3 |= PORT_PCR_MUX(3) |0X03;                                           //Use PTD3 as SPI0_MOSI 

    PORTD_PCR4 &= ~PORT_PCR_MUX_MASK;

    PORTD_PCR4 = PORT_PCR_MUX(3) |0X03;                                            //Use PTD4 as SPI0_MISO

    GPIOD_PDDR |=  0X02; // SS pin output

    GPIOD_PDOR |=  0X02; //  SS pin high

    SPI0_C1 |= SPI_C1_MSTR_MASK; // SPI0 master mode

                       

    SPI0_BR = 0x43;  //SPPR = 4, SPR = 3, bps div = (SPPR+1)*2^(SPR+1) = 80, baudrate= 24Mhz/80=300khz

    SPI0_C1 |= SPI_C1_SSOE_MASK;                         

    SPI0_C1 &= (~SPI_C1_CPHA_MASK);  // clock polarity

    SPI0_C1 &= (~SPI_C1_CPOL_MASK);  //clock phase

    SPI0_C1 &= (~SPI_C1_LSBFE_MASK);  // LSB:most significant

    SPI0_C1 &= (~SPI_C1_SPIE_MASK);                  //Disable RX interrrupt 

    SPI0_C1 &= (~SPI_C1_SPTIE_MASK);         //Disable the transmit interrupt

    SPI0_C2 |= SPI_C2_MODFEN_MASK;

       

    SPI0_C1 |= SPI_C1_SPE_MASK;  // enable SPI module

}

(3) One byte transfer code

uint8 hal_spi_transfer_one_byte(uint8 v)

{

   int dummy =0;

   char buff=0;

   while ((SPI0_S & SPI_S_SPTEF_MASK) == 0)  // wait for transmit buffer empty

   {

                dummy++;

    }

   dummy = SPI0_S;

   SPI0_DL = v;   // send one byte to transmit buffer

   while ((SPI0_S & SPI_S_SPRF_MASK) == 0); // wait ready buffer full

   buff = SPI0_DL;  // read one received byte

   return buff;         // return the received byte

  }

3 Code realization for external flash operation command

    At first, refer to the external flash program / erase flow, then I will give the according command code realization one by one.

pastedImage_0.jpg

Take flash sector erase flow as an example, the according code is :

void hal_spi_dev_flash_erase_sector(uint8 addr)

{

write_enable();      // WREN command

spi_wait(WEL);     // RDSR command and wait WEL=1

hal_spi_transfe_start();    // enable CS pin , CS=0

hal_spi_transfer_one_byte(CMD_SECTOR_ERASE);   // erase one sector (4KByte)command

hal_spi_transfer_one_byte(addr>>16);  // address

hal_spi_transfer_one_byte(addr>>8);

hal_spi_transfer_one_byte(addr>>0);

hal_spi_transfe_stop();  // disable CS pin, CS=1

spi_wait(WIP);    // RDSR command and wait WIP=0;

  }

(1)Write enable (WREN) command : 0X06

pastedImage_4.jpg

static void write_enable(void)

{

    hal_spi_transfe_start();  // enable CS pin , CS=0

    hal_spi_transfer_one_byte(CMD_WRITE_EN);  // Send WREN command

    hal_spi_transfe_stop();  // disable CS pin, CS=1

  }

(2)Read status register (RDSR) sequence: 0X05

pastedImage_3.jpg

static void spi_wait(uint8 CMD)

{

if(CMD == WEL)

while(get_sr()&0x02 != 0x02); // wait until WEL bit =1

else if(CMD == WIP)

while(get_sr()&0x01 != 0x00); // wait until WIP bit =0

}

static uint8 get_sr(void)

{

    uint8 v;

    hal_spi_transfe_start(); // enable CS pin , CS=0

    hal_spi_transfer_one_byte(CMD_GET_SR);  // Send RDSR command

    v = hal_spi_transfer_one_byte(0x00); // read states register data

    hal_spi_transfe_stop();    // disable CS pin, CS=1

    return v;

  }

(3) Sector erase (SE) sequence: 0X20

pastedImage_2.jpg

hal_spi_transfe_start();    // enable CS pin , CS=0

hal_spi_transfer_one_byte(CMD_SECTOR_ERASE);   // erase one sector (4KByte)command

hal_spi_transfer_one_byte(addr>>16);  // address

hal_spi_transfer_one_byte(addr>>8);

hal_spi_transfer_one_byte(addr>>0);

  hal_spi_transfe_stop();  // disable CS pin, CS=1

(4) Page program (PP) sequence : 0x02

pastedImage_1.jpg

#define PAGE_SIZE 256  

    hal_spi_transfe_start();// enable CS pin , CS=0

hal_spi_transfer_one_byte(CMD_PROGRAM); //send flash program command

hal_spi_transfer_one_byte(addr>>16); // flash page base address

hal_spi_transfer_one_byte(addr>>8);

hal_spi_transfer_one_byte(addr>>0);

for(i=0;i<(PAGE_SIZE-1);i++) // send program data to the flash page

hal_spi_transfer_one_byte(buf[i]);

hal_spi_transfer_one_byte(buf[i]);

  hal_spi_transfe_stop();// disable CS pin, CS=1

(5) Read at higher Speed(FAST_READ) Sequence: 0X0B

pastedImage_0.jpg

void hal_spi_dev_flash_read_page(uint8 addr, char *buf)

{

int i;

hal_spi_transfe_start();  // enable CS pin , CS=0

hal_spi_transfer_one_byte(CMD_READ); // read command

hal_spi_transfer_one_byte(addr>>16);  // base address

hal_spi_transfer_one_byte(addr>>8);

hal_spi_transfer_one_byte(addr>>0);

hal_spi_transfer_one_byte(0x00); // dummy byte

for(i=0;i<(PAGE_SIZE-1);i++)    // read data back from the flash

buf[i] = hal_spi_transfer_one_byte(0x00);

buf[i] = hal_spi_transfer_one_byte(0x00);

hal_spi_transfe_stop();  // disable CS pin, CS=1

  }

4 Experimental result

The test code function is to realize one sector (4KB) erasing, then read one page (256Byte) and print it out, after that, program one page , read and print it out to check the data.

(1)The main function code is :

static char buf[256];

int i;

serial_flash_init();  // SPI initialization

hal_spi_dev_flash_erase_sector(0); // erase one sector(4KByte)

printf("reading page...\n");

hal_spi_dev_flash_read_page(0,buf); // read one page(256Byte)

print_buf(buf,PAGE_SIZE);  // print the read data out

printf("programing a page...\n");

for(i=0;i<256;i++)

buf[i] = i;     // define the data which will write to the flash

hal_spi_dev_flash_program_page(0,buf); // write 256BYTE to the flash page0

printf("clearing buffer..\n");

for(i=0;i<256;i++)    // clear buff

buf[i] = 0;

printf("reading page...\n");

hal_spi_dev_flash_read_page(0,buf); // read the page0 data out

print_buf(buf,PAGE_SIZE);  // print the read data out

  printf("demo end.\n");

(2) print test data

reading page...

0xFF,0xFF,0xFF,0xFF,  0xFF,0xFF,0xFF,0xFF, 

0xFF,0xFF,0xFF,0xFF,  0xFF,0xFF,0xFF,0xFF, 

0xFF,0xFF,0xFF,0xFF,  0xFF,0xFF,0xFF,0xFF, 

0xFF,0xFF,0xFF,0xFF,  0xFF,0xFF,0xFF,0xFF, 

0xFF,0xFF,0xFF,0xFF,  0xFF,0xFF,0xFF,0xFF, 

0xFF,0xFF,0xFF,0xFF,  0xFF,0xFF,0xFF,0xFF, 

0xFF,0xFF,0xFF,0xFF,  0xFF,0xFF,0xFF,0xFF, 

0xFF,0xFF,0xFF,0xFF,  0xFF,0xFF,0xFF,0xFF, 

0xFF,0xFF,0xFF,0xFF,  0xFF,0xFF,0xFF,0xFF, 

0xFF,0xFF,0xFF,0xFF,  0xFF,0xFF,0xFF,0xFF, 

0xFF,0xFF,0xFF,0xFF,  0xFF,0xFF,0xFF,0xFF, 

0xFF,0xFF,0xFF,0xFF,  0xFF,0xFF,0xFF,0xFF, 

0xFF,0xFF,0xFF,0xFF,  0xFF,0xFF,0xFF,0xFF, 

0xFF,0xFF,0xFF,0xFF,  0xFF,0xFF,0xFF,0xFF, 

0xFF,0xFF,0xFF,0xFF,  0xFF,0xFF,0xFF,0xFF, 

0xFF,0xFF,0xFF,0xFF,  0xFF,0xFF,0xFF,0xFF, 

0xFF,0xFF,0xFF,0xFF,  0xFF,0xFF,0xFF,0xFF, 

0xFF,0xFF,0xFF,0xFF,  0xFF,0xFF,0xFF,0xFF, 

0xFF,0xFF,0xFF,0xFF,  0xFF,0xFF,0xFF,0xFF, 

0xFF,0xFF,0xFF,0xFF,  0xFF,0xFF,0xFF,0xFF, 

0xFF,0xFF,0xFF,0xFF,  0xFF,0xFF,0xFF,0xFF, 

0xFF,0xFF,0xFF,0xFF,  0xFF,0xFF,0xFF,0xFF, 

0xFF,0xFF,0xFF,0xFF,  0xFF,0xFF,0xFF,0xFF, 

0xFF,0xFF,0xFF,0xFF,  0xFF,0xFF,0xFF,0xFF, 

0xFF,0xFF,0xFF,0xFF,  0xFF,0xFF,0xFF,0xFF, 

0xFF,0xFF,0xFF,0xFF,  0xFF,0xFF,0xFF,0xFF, 

0xFF,0xFF,0xFF,0xFF,  0xFF,0xFF,0xFF,0xFF, 

0xFF,0xFF,0xFF,0xFF,  0xFF,0xFF,0xFF,0xFF, 

0xFF,0xFF,0xFF,0xFF,  0xFF,0xFF,0xFF,0xFF, 

0xFF,0xFF,0xFF,0xFF,  0xFF,0xFF,0xFF,0xFF, 

0xFF,0xFF,0xFF,0xFF,  0xFF,0xFF,0xFF,0xFF, 

0xFF,0xFF,0xFF,0xFF,  0xFF,0xFF,0xFF,0xFF, 

programing a page...

clearing buffer..

reading page...

0x0,0x1,0x2,0x3,  0x4,0x5,0x6,0x7, 

0x8,0x9,0xA,0xB,  0xC,0xD,0xE,0xF, 

0x10,0x11,0x12,0x13,  0x14,0x15,0x16,0x17, 

0x18,0x19,0x1A,0x1B,  0x1C,0x1D,0x1E,0x1F, 

0x20,0x21,0x22,0x23,  0x24,0x25,0x26,0x27, 

0x28,0x29,0x2A,0x2B,  0x2C,0x2D,0x2E,0x2F, 

0x30,0x31,0x32,0x33,  0x34,0x35,0x36,0x37, 

0x38,0x39,0x3A,0x3B,  0x3C,0x3D,0x3E,0x3F, 

0x40,0x41,0x42,0x43,  0x44,0x45,0x46,0x47, 

0x48,0x49,0x4A,0x4B,  0x4C,0x4D,0x4E,0x4F, 

0x50,0x51,0x52,0x53,  0x54,0x55,0x56,0x57, 

0x58,0x59,0x5A,0x5B,  0x5C,0x5D,0x5E,0x5F, 

0x60,0x61,0x62,0x63,  0x64,0x65,0x66,0x67, 

0x68,0x69,0x6A,0x6B,  0x6C,0x6D,0x6E,0x6F, 

0x70,0x71,0x72,0x73,  0x74,0x75,0x76,0x77, 

0x78,0x79,0x7A,0x7B,  0x7C,0x7D,0x7E,0x7F, 

0x80,0x81,0x82,0x83,  0x84,0x85,0x86,0x87, 

0x88,0x89,0x8A,0x8B,  0x8C,0x8D,0x8E,0x8F, 

0x90,0x91,0x92,0x93,  0x94,0x95,0x96,0x97, 

0x98,0x99,0x9A,0x9B,  0x9C,0x9D,0x9E,0x9F, 

0xA0,0xA1,0xA2,0xA3,  0xA4,0xA5,0xA6,0xA7, 

0xA8,0xA9,0xAA,0xAB,  0xAC,0xAD,0xAE,0xAF, 

0xB0,0xB1,0xB2,0xB3,  0xB4,0xB5,0xB6,0xB7, 

0xB8,0xB9,0xBA,0xBB,  0xBC,0xBD,0xBE,0xBF, 

0xC0,0xC1,0xC2,0xC3,  0xC4,0xC5,0xC6,0xC7, 

0xC8,0xC9,0xCA,0xCB,  0xCC,0xCD,0xCE,0xCF, 

0xD0,0xD1,0xD2,0xD3,  0xD4,0xD5,0xD6,0xD7, 

0xD8,0xD9,0xDA,0xDB,  0xDC,0xDD,0xDE,0xDF, 

0xE0,0xE1,0xE2,0xE3,  0xE4,0xE5,0xE6,0xE7, 

0xE8,0xE9,0xEA,0xEB,  0xEC,0xED,0xEE,0xEF, 

0xF0,0xF1,0xF2,0xF3,  0xF4,0xF5,0xF6,0xF7, 

0xF8,0xF9,0xFA,0xFB,  0xFC,0xFD,0xFE,0xFF, 

  demo end

From the print data, we can find the code can realize flash sector erasing , flash program and flash data read out, and the test result is correct.

The following wave is the page read data out after flash page program.

pastedImage_0.jpg

The attachment is the testing code.

Attachments
%3CLINGO-SUB%20id%3D%22lingo-sub-1116279%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3EExternal%20flash%20control%20via%20kinetis%20M%20series%20SPI%20module%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1116279%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3COL%20style%3D%22list-style-type%3A%20decimal%3B%22%3E%3CLI%3EAbstract%3C%2FLI%3E%3C%2FOL%3E%3CP%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20Kinetis%20M%20series%20MCU%20is%20Freescale%E2%80%99s%20Metrology%20microcontrollers%20based%20on%20ARM%20Cortex%20M0%2B%20cores.%20The%20SPI%20module%20of%20KM%20provides%20for%20full-duplex%2C%20synchronous%2C%20serial%20communication%20between%20the%20MCU%20and%20peripheral%20devices%2C%20it%20also%20has%20programmable%208%20or%2016%20bit%20data%20transmission%20length%2C%2064bit%20FIFO%20mode%20for%20data%20transfers%2C%20DMA%20transmit%20and%20receive%20features%2C%20single%20wire%20bidirectional%20mode%2C%20etc.%20This%20document%20is%20mainly%20use%20the%20KM34Z256VLQ7%20SPI%20module%20realize%20the%20erase%2C%20program%20and%20read%20operation%20in%20external%20flash%20MX25L6404EM2I%2C%20it%20also%20gives%20sample%20code%20of%20the%20detail%20command%20external%20flash%20operation%2C%20and%20at%20last%2C%20print%20the%20testing%20code%20via%20UART.%3C%2FP%3E%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22pastedImage_0.jpg%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22pastedImage_0.jpg%22%20style%3D%22width%3A%20528px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F49962i5B2DA1EA8A84F1CF%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22pastedImage_0.jpg%22%20alt%3D%22pastedImage_0.jpg%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E%3CSTRONG%3E1.SPI%20pin%20assignment%20and%20basic%20code%3C%2FSTRONG%3E%3C%2FP%3E%3CP%3E(1)%20SPI%20pin%20assignment%3C%2FP%3E%3CTABLE%20border%3D%221%22%20cellpadding%3D%220%22%20cellspacing%3D%220%22%20style%3D%22margin-left%3A%2067.25pt%3B%20border%3A%20none%3B%20padding%3A%200%205.4pt%200%205.4pt%3B%22%3E%3CTBODY%3E%3CTR%3E%3CTD%20style%3D%22border%3A%20solid%20windowtext%201.0pt%3B%20padding%3A%200%205.4pt%200%205.4pt%3B%22%20valign%3D%22top%22%20width%3D%22181%22%3E%3CP%20align%3D%22center%22%20style%3D%22margin-bottom%3A%200.0001pt%3B%20text-align%3A%20center%3B%22%3ESPI%20signal%3C%2FP%3E%3C%2FTD%3E%3CTD%20style%3D%22border%3A%20solid%20windowtext%201.0pt%3B%20border-left%3A%20none%3B%20padding%3A%200%205.4pt%200%205.4pt%3B%22%20valign%3D%22top%22%20width%3D%22154%22%3E%3CP%20align%3D%22center%22%20style%3D%22margin-bottom%3A%200.0001pt%3B%20text-align%3A%20center%3B%22%3EPin%20name%3C%2FP%3E%3C%2FTD%3E%3CTD%20style%3D%22border%3A%20solid%20windowtext%201.0pt%3B%20border-left%3A%20none%3B%20padding%3A%200%205.4pt%200%205.4pt%3B%22%20valign%3D%22top%22%20width%3D%22150%22%3E%3CP%20align%3D%22center%22%20style%3D%22margin-bottom%3A%200.0001pt%3B%20text-align%3A%20center%3B%22%3EDescription%3C%2FP%3E%3C%2FTD%3E%3C%2FTR%3E%3CTR%3E%3CTD%20style%3D%22border%3A%20solid%20windowtext%201.0pt%3B%20border-top%3A%20none%3B%20padding%3A%200%205.4pt%200%205.4pt%3B%22%20valign%3D%22top%22%20width%3D%22181%22%3E%3CP%20style%3D%22margin-bottom%3A%200.0001pt%3B%22%3ESPI_SS%3C%2FP%3E%3C%2FTD%3E%3CTD%20style%3D%22border-top%3A%20none%3B%20border-left%3A%20none%3B%20border-bottom%3A%20solid%20windowtext%201.0pt%3B%20border-right%3A%20solid%20windowtext%201.0pt%3B%20padding%3A%200%205.4pt%200%205.4pt%3B%22%20valign%3D%22top%22%20width%3D%22154%22%3E%3CP%20style%3D%22margin-bottom%3A%200.0001pt%3B%22%3EPTD1%3C%2FP%3E%3C%2FTD%3E%3CTD%20style%3D%22border-top%3A%20none%3B%20border-left%3A%20none%3B%20border-bottom%3A%20solid%20windowtext%201.0pt%3B%20border-right%3A%20solid%20windowtext%201.0pt%3B%20padding%3A%200%205.4pt%200%205.4pt%3B%22%20valign%3D%22top%22%20width%3D%22150%22%3E%3CP%20style%3D%22margin-bottom%3A%200.0001pt%3B%22%3ESlave%20select%3C%2FP%3E%3C%2FTD%3E%3C%2FTR%3E%3CTR%3E%3CTD%20style%3D%22border%3A%20solid%20windowtext%201.0pt%3B%20border-top%3A%20none%3B%20padding%3A%200%205.4pt%200%205.4pt%3B%22%20valign%3D%22top%22%20width%3D%22181%22%3E%3CP%20style%3D%22margin-bottom%3A%200.0001pt%3B%22%3ESPI_SCK%3C%2FP%3E%3C%2FTD%3E%3CTD%20style%3D%22border-top%3A%20none%3B%20border-left%3A%20none%3B%20border-bottom%3A%20solid%20windowtext%201.0pt%3B%20border-right%3A%20solid%20windowtext%201.0pt%3B%20padding%3A%200%205.4pt%200%205.4pt%3B%22%20valign%3D%22top%22%20width%3D%22154%22%3E%3CP%20style%3D%22margin-bottom%3A%200.0001pt%3B%22%3EPTD2%3C%2FP%3E%3C%2FTD%3E%3CTD%20style%3D%22border-top%3A%20none%3B%20border-left%3A%20none%3B%20border-bottom%3A%20solid%20windowtext%201.0pt%3B%20border-right%3A%20solid%20windowtext%201.0pt%3B%20padding%3A%200%205.4pt%200%205.4pt%3B%22%20valign%3D%22top%22%20width%3D%22150%22%3E%3CP%20style%3D%22margin-bottom%3A%200.0001pt%3B%22%3ESPI%20serial%20clock%3C%2FP%3E%3C%2FTD%3E%3C%2FTR%3E%3CTR%3E%3CTD%20style%3D%22border%3A%20solid%20windowtext%201.0pt%3B%20border-top%3A%20none%3B%20padding%3A%200%205.4pt%200%205.4pt%3B%22%20valign%3D%22top%22%20width%3D%22181%22%3E%3CP%20style%3D%22margin-bottom%3A%200.0001pt%3B%22%3ESPI_MOSI%3C%2FP%3E%3C%2FTD%3E%3CTD%20style%3D%22border-top%3A%20none%3B%20border-left%3A%20none%3B%20border-bottom%3A%20solid%20windowtext%201.0pt%3B%20border-right%3A%20solid%20windowtext%201.0pt%3B%20padding%3A%200%205.4pt%200%205.4pt%3B%22%20valign%3D%22top%22%20width%3D%22154%22%3E%3CP%20style%3D%22margin-bottom%3A%200.0001pt%3B%22%3EPTD3%3C%2FP%3E%3C%2FTD%3E%3CTD%20style%3D%22border-top%3A%20none%3B%20border-left%3A%20none%3B%20border-bottom%3A%20solid%20windowtext%201.0pt%3B%20border-right%3A%20solid%20windowtext%201.0pt%3B%20padding%3A%200%205.4pt%200%205.4pt%3B%22%20valign%3D%22top%22%20width%3D%22150%22%3E%3CP%20style%3D%22margin-bottom%3A%200.0001pt%3B%22%3EMaster%20data%20out%2C%20slave%20data%20in%3C%2FP%3E%3C%2FTD%3E%3C%2FTR%3E%3CTR%3E%3CTD%20style%3D%22border%3A%20solid%20windowtext%201.0pt%3B%20border-top%3A%20none%3B%20padding%3A%200%205.4pt%200%205.4pt%3B%22%20valign%3D%22top%22%20width%3D%22181%22%3E%3CP%20style%3D%22margin-bottom%3A%200.0001pt%3B%22%3ESPI_MISO%3C%2FP%3E%3C%2FTD%3E%3CTD%20style%3D%22border-top%3A%20none%3B%20border-left%3A%20none%3B%20border-bottom%3A%20solid%20windowtext%201.0pt%3B%20border-right%3A%20solid%20windowtext%201.0pt%3B%20padding%3A%200%205.4pt%200%205.4pt%3B%22%20valign%3D%22top%22%20width%3D%22154%22%3E%3CP%20style%3D%22margin-bottom%3A%200.0001pt%3B%22%3EPTD4%3C%2FP%3E%3C%2FTD%3E%3CTD%20style%3D%22border-top%3A%20none%3B%20border-left%3A%20none%3B%20border-bottom%3A%20solid%20windowtext%201.0pt%3B%20border-right%3A%20solid%20windowtext%201.0pt%3B%20padding%3A%200%205.4pt%200%205.4pt%3B%22%20valign%3D%22top%22%20width%3D%22150%22%3E%3CP%20style%3D%22margin-bottom%3A%200.0001pt%3B%22%3EMaster%20data%20in%2C%20slave%20data%20out%3C%2FP%3E%3C%2FTD%3E%3C%2FTR%3E%3C%2FTBODY%3E%3C%2FTABLE%3E%3CP%3E%3C%2FP%3E%3CP%3EExternal%20flash%20MX25L6404EM2I%20circuit%3A%3C%2FP%3E%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22pastedImage_6.jpg%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22pastedImage_6.jpg%22%20style%3D%22width%3A%20757px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F111311i6665CEF8BF404D26%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22pastedImage_6.jpg%22%20alt%3D%22pastedImage_6.jpg%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CIMG%20alt%3D%22%22%20class%3D%22jiveImage%22%20style%3D%22max-width%3A%201200px%3B%20max-height%3A%20900px%3B%22%20%2F%3E%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CP%3E%3C%2FP%3E%3CP%3E(2)%20SPI%20initialization%3C%2FP%3E%3CP%3E%26nbsp%3B%20SPI%20initialization%20configuration%20the%20SPI%20pin%2C%20SPI%20module%20baud%2C%20master%20or%20slave%20mode%2C%20module%20enable%2C%20etc.%20the%20code%20just%20as%20following%3A%3C%2FP%3E%3CPRE%20__default_attr%3D%22c%2B%2B%22%20__jive_macro_name%3D%22code%22%20class%3D%22jive_text_macro%20jive_macro_code%20_jivemacro_uid_14280409983803486%22%20jivemacro_uid%3D%22_14280409983803486%22%3E%0A%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3ESIM_SCGC4%20%7C%3D%20SIM_SCGC4_SPI0_MASK%7CSIM_SCGC4_SPI1_MASK%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3ESIM_SCGC5%20%7C%3D%20SIM_SCGC5_PORTD_MASK%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3Evoid%20serial_flash_init(void)%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%7B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%20PORTD_PCR1%20%26amp%3B%3D%20~PORT_PCR_MUX_MASK%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%20PORTD_PCR1%20%7C%3D%20PORT_PCR_MUX(1)%20%7C0X03%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%2F%2FUse%20PTD1%20as%20SPI0_SS%26nbsp%3B%20%2F%2F%20configure%20it%20as%20the%20GPIO%20%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%20PORTD_PCR2%20%26amp%3B%3D%20~PORT_PCR_MUX_MASK%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%20PORTD_PCR2%20%7C%3D%20PORT_PCR_MUX(3)%20%7C0X03%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%2F%2FUse%20PTD2%20as%20SPI0_SCK%20%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%20PORTD_PCR3%20%26amp%3B%3D%20~PORT_PCR_MUX_MASK%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%20PORTD_PCR3%20%7C%3D%20PORT_PCR_MUX(3)%20%7C0X03%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%2F%2FUse%20PTD3%20as%20SPI0_MOSI%26nbsp%3B%20%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%20PORTD_PCR4%20%26amp%3B%3D%20~PORT_PCR_MUX_MASK%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%20PORTD_PCR4%20%3D%20PORT_PCR_MUX(3)%20%7C0X03%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%2F%2FUse%20PTD4%20as%20SPI0_MISO%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%20GPIOD_PDDR%20%7C%3D%26nbsp%3B%200X02%3B%20%2F%2F%20SS%20pin%20output%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%20GPIOD_PDOR%20%7C%3D%26nbsp%3B%200X02%3B%20%2F%2F%26nbsp%3B%20SS%20pin%20high%20%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3C%2FP%3E%0A%3CP%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%20SPI0_C1%20%7C%3D%20SPI_C1_MSTR_MASK%3B%20%2F%2F%20SPI0%20master%20mode%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%3C%2FP%3E%0A%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%20SPI0_BR%20%3D%200x43%3B%26nbsp%3B%20%2F%2FSPPR%20%3D%204%2C%20SPR%20%3D%203%2C%20bps%20div%20%3D%20(SPPR%2B1)*2%5E(SPR%2B1)%20%3D%2080%2C%20baudrate%3D%2024Mhz%2F80%3D300khz%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%20SPI0_C1%20%7C%3D%20SPI_C1_SSOE_MASK%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%20SPI0_C1%20%26amp%3B%3D%20(~SPI_C1_CPHA_MASK)%3B%26nbsp%3B%20%2F%2F%20clock%20polarity%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%20SPI0_C1%20%26amp%3B%3D%20(~SPI_C1_CPOL_MASK)%3B%26nbsp%3B%20%2F%2Fclock%20phase%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%20SPI0_C1%20%26amp%3B%3D%20(~SPI_C1_LSBFE_MASK)%3B%26nbsp%3B%20%2F%2F%20LSB%3Amost%20significant%20%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%20SPI0_C1%20%26amp%3B%3D%20(~SPI_C1_SPIE_MASK)%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%2F%2FDisable%20RX%20interrrupt%26nbsp%3B%20%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%20SPI0_C1%20%26amp%3B%3D%20(~SPI_C1_SPTIE_MASK)%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%2F%2FDisable%20the%20transmit%20interrupt%20%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%20SPI0_C2%20%7C%3D%20SPI_C2_MODFEN_MASK%3B%20%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%3C%2FP%3E%0A%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%20SPI0_C1%20%7C%3D%20SPI_C1_SPE_MASK%3B%26nbsp%3B%20%2F%2F%20enable%20SPI%20module%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%7D%3C%2FSPAN%3E%3C%2FP%3E%0A%0A%0A%0A%0A%0A%0A%3C%2FPRE%3E%3CP%3E%3C%2FP%3E%3CP%3E(3)%20One%20byte%20transfer%20code%3C%2FP%3E%3CPRE%20__default_attr%3D%22c%2B%2B%22%20__jive_macro_name%3D%22code%22%20class%3D%22jive_text_macro%20_jivemacro_uid_14280409983697174%20jive_macro_code%22%20jivemacro_uid%3D%22_14280409983697174%22%3E%0A%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3Euint8%20hal_spi_transfer_one_byte(uint8%20v)%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%7B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%26nbsp%3B%26nbsp%3B%20int%20dummy%20%3D0%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%26nbsp%3B%26nbsp%3B%20char%20buff%3D0%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%26nbsp%3B%26nbsp%3B%20while%20((SPI0_S%20%26amp%3B%20SPI_S_SPTEF_MASK)%20%3D%3D%200)%26nbsp%3B%20%2F%2F%20wait%20for%20transmit%20buffer%20empty%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%26nbsp%3B%26nbsp%3B%20%7B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20dummy%2B%2B%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%7D%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%26nbsp%3B%26nbsp%3B%20dummy%20%3D%20SPI0_S%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%26nbsp%3B%26nbsp%3B%20SPI0_DL%20%3D%20v%3B%26nbsp%3B%26nbsp%3B%20%2F%2F%20send%20one%20byte%20to%20transmit%20buffer%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%26nbsp%3B%26nbsp%3B%20while%20((SPI0_S%20%26amp%3B%20SPI_S_SPRF_MASK)%20%3D%3D%200)%3B%20%2F%2F%20wait%20ready%20buffer%20full%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%26nbsp%3B%26nbsp%3B%20buff%20%3D%20SPI0_DL%3B%26nbsp%3B%20%2F%2F%20read%20one%20received%20byte%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%26nbsp%3B%26nbsp%3B%20return%20buff%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%2F%2F%20return%20the%20received%20byte%3C%2FSPAN%3E%3C%2FP%3E%0A%0A%0A%0A%0A%0A%0A%26nbsp%3B%20%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%20font-family%3A%20'Calibri'%2Csans-serif%3B%22%3E%7D%3C%2FSPAN%3E%3C%2FPRE%3E%3CP%3E%3C%2FP%3E%3CP%3E%3CSTRONG%3E3%20Code%20realization%20for%20external%20flash%20operation%20command%3C%2FSTRONG%3E%3C%2FP%3E%3CP%20style%3D%22margin-bottom%3A%200.0001pt%3B%22%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%20At%20first%2C%20refer%20to%20the%20external%20flash%20program%20%2F%20erase%20flow%2C%20then%20I%20will%20give%20the%20according%20command%20code%20realization%20one%20by%20one.%3C%2FP%3E%3CP%20style%3D%22margin-bottom%3A%200.0001pt%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22pastedImage_0.jpg%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22pastedImage_0.jpg%22%20style%3D%22width%3A%20610px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F111316i1783C6E40D9984DC%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22pastedImage_0.jpg%22%20alt%3D%22pastedImage_0.jpg%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FP%3E%3CP%20style%3D%22margin-bottom%3A%200.0001pt%3B%22%3E%3CIMG%20alt%3D%22%22%20class%3D%22jiveImage%22%20style%3D%22max-width%3A%201200px%3B%20max-height%3A%20900px%3B%22%20%2F%3E%3C%2FP%3E%3CP%20style%3D%22margin-bottom%3A%200.0001pt%3B%22%3ETake%20flash%20sector%20erase%20flow%20as%20an%20example%2C%20the%20according%20code%20is%20%3A%3C%2FP%3E%3CPRE%20__default_attr%3D%22c%2B%2B%22%20__jive_macro_name%3D%22code%22%20class%3D%22jive_text_macro%20jive_macro_code%20_jivemacro_uid_14280409983581955%22%20jivemacro_uid%3D%22_14280409983581955%22%3E%0A%3CP%20style%3D%22margin-bottom%3A%200.0001pt%3B%22%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3Evoid%20hal_spi_dev_flash_erase_sector(uint8%20addr)%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%20style%3D%22margin-bottom%3A%200.0001pt%3B%22%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%7B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%20style%3D%22margin-bottom%3A%200.0001pt%3B%22%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%20write_enable()%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%2F%2F%20WREN%20command%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%20style%3D%22margin-bottom%3A%200.0001pt%3B%22%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%20spi_wait(WEL)%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%2F%2F%20RDSR%20command%20and%20wait%20WEL%3D1%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%20style%3D%22margin-bottom%3A%200.0001pt%3B%22%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%20hal_spi_transfe_start()%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%2F%2F%20enable%20CS%20pin%20%2C%20CS%3D0%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%20style%3D%22margin-bottom%3A%200.0001pt%3B%22%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%20hal_spi_transfer_one_byte(CMD_SECTOR_ERASE)%3B%26nbsp%3B%26nbsp%3B%20%2F%2F%20erase%20one%20sector%20(4KByte)command%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%20style%3D%22margin-bottom%3A%200.0001pt%3B%22%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%20hal_spi_transfer_one_byte(addr%26gt%3B%26gt%3B16)%3B%26nbsp%3B%20%2F%2F%20address%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%20style%3D%22margin-bottom%3A%200.0001pt%3B%22%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%20hal_spi_transfer_one_byte(addr%26gt%3B%26gt%3B8)%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%20style%3D%22margin-bottom%3A%200.0001pt%3B%22%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%20hal_spi_transfer_one_byte(addr%26gt%3B%26gt%3B0)%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%20style%3D%22margin-bottom%3A%200.0001pt%3B%22%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%20hal_spi_transfe_stop()%3B%26nbsp%3B%20%2F%2F%20disable%20CS%20pin%2C%20CS%3D1%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%20style%3D%22margin-bottom%3A%200.0001pt%3B%22%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%20spi_wait(WIP)%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%2F%2F%20RDSR%20command%20and%20wait%20WIP%3D0%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%0A%0A%0A%0A%0A%0A%26nbsp%3B%20%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%20font-family%3A%20'Calibri'%2Csans-serif%3B%22%3E%7D%3C%2FSPAN%3E%3C%2FPRE%3E%3CP%20style%3D%22margin-bottom%3A%200.0001pt%3B%22%3E%3C%2FP%3E%3CP%20style%3D%22margin-bottom%3A%200.0001pt%3B%22%3E(1)Write%20enable%20(WREN)%20command%20%3A%200X06%3C%2FP%3E%3CP%20style%3D%22margin-bottom%3A%200.0001pt%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22pastedImage_4.jpg%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22pastedImage_4.jpg%22%20style%3D%22width%3A%20398px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F111312i3629D6A4289C73F8%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22pastedImage_4.jpg%22%20alt%3D%22pastedImage_4.jpg%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CIMG%20alt%3D%22%22%20class%3D%22jiveImage%22%20style%3D%22max-width%3A%201200px%3B%20max-height%3A%20900px%3B%22%20%2F%3E%3C%2FP%3E%3CPRE%20__default_attr%3D%22c%2B%2B%22%20__jive_macro_name%3D%22code%22%20class%3D%22jive_text_macro%20jive_macro_code%20_jivemacro_uid_14280409983484179%22%20jivemacro_uid%3D%22_14280409983484179%22%3E%0A%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3Estatic%20void%20write_enable(void)%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%7B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%20hal_spi_transfe_start()%3B%26nbsp%3B%20%2F%2F%20enable%20CS%20pin%20%2C%20CS%3D0%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%20hal_spi_transfer_one_byte(CMD_WRITE_EN)%3B%26nbsp%3B%20%2F%2F%20Send%20WREN%20command%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%20hal_spi_transfe_stop()%3B%26nbsp%3B%20%2F%2F%20disable%20CS%20pin%2C%20CS%3D1%3C%2FSPAN%3E%3C%2FP%3E%0A%0A%0A%0A%0A%0A%0A%26nbsp%3B%20%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%20font-family%3A%20'Calibri'%2Csans-serif%3B%22%3E%7D%3C%2FSPAN%3E%3C%2FPRE%3E%3CP%3E%3C%2FP%3E%3CP%3E(2)Read%20status%20register%20(RDSR)%20sequence%3A%200X05%3C%2FP%3E%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22pastedImage_3.jpg%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22pastedImage_3.jpg%22%20style%3D%22width%3A%20639px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F50704iF42D1E6DABE89AC0%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22pastedImage_3.jpg%22%20alt%3D%22pastedImage_3.jpg%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CIMG%20alt%3D%22%22%20class%3D%22jiveImage%22%20style%3D%22max-width%3A%201200px%3B%20max-height%3A%20900px%3B%22%20%2F%3E%3C%2FP%3E%3CPRE%20__default_attr%3D%22c%2B%2B%22%20__jive_macro_name%3D%22code%22%20class%3D%22jive_text_macro%20jive_macro_code%20_jivemacro_uid_14280409983304468%22%20jivemacro_uid%3D%22_14280409983304468%22%3E%0A%3CP%20style%3D%22margin-bottom%3A%20.0001pt%3B%22%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3Estatic%20void%20spi_wait(uint8%20CMD)%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%20style%3D%22margin-bottom%3A%20.0001pt%3B%22%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%7B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%20style%3D%22margin-bottom%3A%20.0001pt%3B%22%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%20if(CMD%20%3D%3D%20WEL)%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%20style%3D%22margin-bottom%3A%20.0001pt%3B%22%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%20while(get_sr()%26amp%3B0x02%20!%3D%200x02)%3B%20%2F%2F%20wait%20until%20WEL%20bit%20%3D1%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%20style%3D%22margin-bottom%3A%20.0001pt%3B%22%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%20else%20if(CMD%20%3D%3D%20WIP)%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%20style%3D%22margin-bottom%3A%20.0001pt%3B%22%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%20while(get_sr()%26amp%3B0x01%20!%3D%200x00)%3B%20%2F%2F%20wait%20until%20WIP%20bit%20%3D0%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%7D%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3Estatic%20uint8%20get_sr(void)%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%7B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%20uint8%20v%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%20hal_spi_transfe_start()%3B%20%2F%2F%20enable%20CS%20pin%20%2C%20CS%3D0%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%20hal_spi_transfer_one_byte(CMD_GET_SR)%3B%26nbsp%3B%20%2F%2F%20Send%20RDSR%20command%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%20v%20%3D%20hal_spi_transfer_one_byte(0x00)%3B%20%2F%2F%20read%20states%20register%20data%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%20hal_spi_transfe_stop()%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%2F%2F%20disable%20CS%20pin%2C%20CS%3D1%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%20return%20v%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%0A%0A%0A%0A%0A%0A%26nbsp%3B%20%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%20font-family%3A%20'Calibri'%2Csans-serif%3B%22%3E%7D%3C%2FSPAN%3E%3C%2FPRE%3E%3CP%3E%3C%2FP%3E%3CP%3E(3)%20Sector%20erase%20(SE)%20sequence%3A%200X20%3C%2FP%3E%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22pastedImage_2.jpg%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22pastedImage_2.jpg%22%20style%3D%22width%3A%20520px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F111313i89B4FDA0C16C023A%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22pastedImage_2.jpg%22%20alt%3D%22pastedImage_2.jpg%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CIMG%20alt%3D%22%22%20class%3D%22jiveImage%22%20style%3D%22max-width%3A%201200px%3B%20max-height%3A%20900px%3B%22%20%2F%3E%3C%2FP%3E%3CPRE%20__default_attr%3D%22c%2B%2B%22%20__jive_macro_name%3D%22code%22%20class%3D%22jive_text_macro%20jive_macro_code%20_jivemacro_uid_14280409983206359%22%20jivemacro_uid%3D%22_14280409983206359%22%3E%0A%3CP%20style%3D%22margin-bottom%3A%20.0001pt%3B%22%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%20hal_spi_transfe_start()%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%2F%2F%20enable%20CS%20pin%20%2C%20CS%3D0%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%20style%3D%22margin-bottom%3A%20.0001pt%3B%22%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%20hal_spi_transfer_one_byte(CMD_SECTOR_ERASE)%3B%26nbsp%3B%26nbsp%3B%20%2F%2F%20erase%20one%20sector%20(4KByte)command%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%20style%3D%22margin-bottom%3A%20.0001pt%3B%22%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%20hal_spi_transfer_one_byte(addr%26gt%3B%26gt%3B16)%3B%26nbsp%3B%20%2F%2F%20address%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%20style%3D%22margin-bottom%3A%20.0001pt%3B%22%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%20hal_spi_transfer_one_byte(addr%26gt%3B%26gt%3B8)%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%20style%3D%22margin-bottom%3A%20.0001pt%3B%22%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%20hal_spi_transfer_one_byte(addr%26gt%3B%26gt%3B0)%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%0A%0A%0A%0A%0A%0A%26nbsp%3B%20%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%20font-family%3A%20'Calibri'%2Csans-serif%3B%22%3E%20hal_spi_transfe_stop()%3B%26nbsp%3B%20%2F%2F%20disable%20CS%20pin%2C%20CS%3D1%3C%2FSPAN%3E%3C%2FPRE%3E%3CP%3E%3C%2FP%3E%3CP%3E(4)%20Page%20program%20(PP)%20sequence%20%3A%200x02%3C%2FP%3E%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22pastedImage_1.jpg%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22pastedImage_1.jpg%22%20style%3D%22width%3A%20653px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F111314i049FC78A6829BF92%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22pastedImage_1.jpg%22%20alt%3D%22pastedImage_1.jpg%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FP%3E%3CPRE%20__default_attr%3D%22c%2B%2B%22%20__jive_macro_name%3D%22code%22%20class%3D%22jive_text_macro%20_jivemacro_uid_14280409983093112%20jive_macro_code%22%20jivemacro_uid%3D%22_14280409983093112%22%3E%0A%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%23define%20PAGE_SIZE%20256%26nbsp%3B%26nbsp%3B%20%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3C%2FP%3E%0A%3CP%20style%3D%22margin-bottom%3A%20.0001pt%3B%22%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%20hal_spi_transfe_start()%3B%2F%2F%20enable%20CS%20pin%20%2C%20CS%3D0%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%20style%3D%22margin-bottom%3A%20.0001pt%3B%22%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%20hal_spi_transfer_one_byte(CMD_PROGRAM)%3B%20%2F%2Fsend%20flash%20program%20command%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%20style%3D%22margin-bottom%3A%20.0001pt%3B%22%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%20hal_spi_transfer_one_byte(addr%26gt%3B%26gt%3B16)%3B%20%2F%2F%20flash%20page%20base%20address%20%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%20style%3D%22margin-bottom%3A%20.0001pt%3B%22%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%20hal_spi_transfer_one_byte(addr%26gt%3B%26gt%3B8)%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%20style%3D%22margin-bottom%3A%20.0001pt%3B%22%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%20hal_spi_transfer_one_byte(addr%26gt%3B%26gt%3B0)%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%20style%3D%22margin-bottom%3A%20.0001pt%3B%22%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%20for(i%3D0%3Bi%26lt%3B(PAGE_SIZE-1)%3Bi%2B%2B)%20%2F%2F%20send%20program%20data%20to%20the%20flash%20page%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%20style%3D%22margin-bottom%3A%20.0001pt%3B%22%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%20hal_spi_transfer_one_byte(buf%5Bi%5D)%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%20style%3D%22margin-bottom%3A%20.0001pt%3B%22%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%20hal_spi_transfer_one_byte(buf%5Bi%5D)%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%0A%0A%0A%0A%0A%26nbsp%3B%20%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%20font-family%3A%20'Calibri'%2Csans-serif%3B%22%3E%20hal_spi_transfe_stop()%3B%2F%2F%20disable%20CS%20pin%2C%20CS%3D1%3C%2FSPAN%3E%3C%2FPRE%3E%3CP%3E%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E(5)%20Read%20at%20higher%20Speed(FAST_READ)%20Sequence%3A%200X0B%3C%2FP%3E%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22pastedImage_0.jpg%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22pastedImage_0.jpg%22%20style%3D%22width%3A%20673px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F111315i7020F9DFF3484B10%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22pastedImage_0.jpg%22%20alt%3D%22pastedImage_0.jpg%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FP%3E%3CPRE%20__default_attr%3D%22c%2B%2B%22%20__jive_macro_name%3D%22code%22%20class%3D%22jive_text_macro%20jive_macro_code%20_jivemacro_uid_14280409982913373%22%20jivemacro_uid%3D%22_14280409982913373%22%3E%0A%3CP%20style%3D%22margin-bottom%3A%20.0001pt%3B%22%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3Evoid%20hal_spi_dev_flash_read_page(uint8%20addr%2C%20char%20*buf)%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%20style%3D%22margin-bottom%3A%20.0001pt%3B%22%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%7B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%20style%3D%22margin-bottom%3A%20.0001pt%3B%22%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%20int%20i%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%20style%3D%22margin-bottom%3A%20.0001pt%3B%22%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%20hal_spi_transfe_start()%3B%26nbsp%3B%20%2F%2F%20enable%20CS%20pin%20%2C%20CS%3D0%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%20style%3D%22margin-bottom%3A%20.0001pt%3B%22%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%20hal_spi_transfer_one_byte(CMD_READ)%3B%20%2F%2F%20read%20command%20%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%20style%3D%22margin-bottom%3A%20.0001pt%3B%22%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%20hal_spi_transfer_one_byte(addr%26gt%3B%26gt%3B16)%3B%26nbsp%3B%20%2F%2F%20base%20address%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%20style%3D%22margin-bottom%3A%20.0001pt%3B%22%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%20hal_spi_transfer_one_byte(addr%26gt%3B%26gt%3B8)%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%20style%3D%22margin-bottom%3A%20.0001pt%3B%22%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%20hal_spi_transfer_one_byte(addr%26gt%3B%26gt%3B0)%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%20style%3D%22margin-bottom%3A%20.0001pt%3B%22%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%20hal_spi_transfer_one_byte(0x00)%3B%20%2F%2F%20dummy%20byte%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%20style%3D%22margin-bottom%3A%20.0001pt%3B%22%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%20for(i%3D0%3Bi%26lt%3B(PAGE_SIZE-1)%3Bi%2B%2B)%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%2F%2F%20read%20data%20back%20from%20the%20flash%20%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%20style%3D%22margin-bottom%3A%20.0001pt%3B%22%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%20buf%5Bi%5D%20%3D%20hal_spi_transfer_one_byte(0x00)%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%20style%3D%22margin-bottom%3A%20.0001pt%3B%22%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%20buf%5Bi%5D%20%3D%20hal_spi_transfer_one_byte(0x00)%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%20style%3D%22margin-bottom%3A%20.0001pt%3B%22%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%20hal_spi_transfe_stop()%3B%26nbsp%3B%20%2F%2F%20disable%20CS%20pin%2C%20CS%3D1%3C%2FSPAN%3E%3C%2FP%3E%0A%0A%0A%0A%0A%0A%26nbsp%3B%20%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%20font-family%3A%20'Calibri'%2Csans-serif%3B%22%3E%7D%3C%2FSPAN%3E%3C%2FPRE%3E%3CP%3E%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E%3CSTRONG%3E4%20Experimental%20result%3C%2FSTRONG%3E%3C%2FP%3E%3CP%20style%3D%22text-indent%3A%209.75pt%3B%22%3EThe%20test%20code%20function%20is%20to%20realize%20one%20sector%20(4KB)%20erasing%2C%20then%20read%20one%20page%20(256Byte)%20and%20print%20it%20out%2C%20after%20that%2C%20program%20one%20page%20%2C%20read%20and%20print%20it%20out%20to%20check%20the%20data.%3C%2FP%3E%3CP%3E(1)The%20main%20function%20code%20is%20%3A%3C%2FP%3E%3CPRE%20__default_attr%3D%22c%2B%2B%22%20__jive_macro_name%3D%22code%22%20class%3D%22jive_text_macro%20jive_macro_code%20_jivemacro_uid_14280409982484943%22%20jivemacro_uid%3D%22_14280409982484943%22%3E%0A%3CP%20style%3D%22margin-bottom%3A%20.0001pt%3B%22%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3Estatic%20char%20buf%5B256%5D%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%20style%3D%22margin-bottom%3A%20.0001pt%3B%22%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%20int%20i%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%20style%3D%22margin-bottom%3A%20.0001pt%3B%22%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%20serial_flash_init()%3B%26nbsp%3B%20%2F%2F%20SPI%20initialization%20%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%20style%3D%22margin-bottom%3A%20.0001pt%3B%22%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%20hal_spi_dev_flash_erase_sector(0)%3B%20%2F%2F%20erase%20one%20sector(4KByte)%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%20style%3D%22margin-bottom%3A%20.0001pt%3B%22%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%20printf(%22reading%20page...%5Cn%22)%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%20style%3D%22margin-bottom%3A%20.0001pt%3B%22%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%20hal_spi_dev_flash_read_page(0%2Cbuf)%3B%20%2F%2F%20read%20one%20page(256Byte)%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%20style%3D%22margin-bottom%3A%20.0001pt%3B%22%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%20print_buf(buf%2CPAGE_SIZE)%3B%26nbsp%3B%20%2F%2F%20print%20the%20read%20data%20out%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3C%2FP%3E%0A%3CP%20style%3D%22margin-bottom%3A%20.0001pt%3B%22%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%20printf(%22programing%20a%20page...%5Cn%22)%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%20style%3D%22margin-bottom%3A%20.0001pt%3B%22%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%20for(i%3D0%3Bi%26lt%3B256%3Bi%2B%2B)%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%20style%3D%22margin-bottom%3A%20.0001pt%3B%22%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%20buf%5Bi%5D%20%3D%20i%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%2F%2F%20define%20the%20data%20which%20will%20write%20to%20the%20flash%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%20style%3D%22margin-bottom%3A%20.0001pt%3B%22%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%20hal_spi_dev_flash_program_page(0%2Cbuf)%3B%20%2F%2F%20write%20256BYTE%20to%20the%20flash%20page0%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3C%2FP%3E%0A%3CP%20style%3D%22margin-bottom%3A%20.0001pt%3B%22%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%20printf(%22clearing%20buffer..%5Cn%22)%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%20style%3D%22margin-bottom%3A%20.0001pt%3B%22%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%20for(i%3D0%3Bi%26lt%3B256%3Bi%2B%2B)%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%2F%2F%20clear%20buff%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%20style%3D%22margin-bottom%3A%20.0001pt%3B%22%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%20buf%5Bi%5D%20%3D%200%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3C%2FP%3E%0A%3CP%20style%3D%22margin-bottom%3A%20.0001pt%3B%22%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%20printf(%22reading%20page...%5Cn%22)%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%20style%3D%22margin-bottom%3A%20.0001pt%3B%22%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%20hal_spi_dev_flash_read_page(0%2Cbuf)%3B%20%2F%2F%20read%20the%20page0%20data%20out%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%20style%3D%22margin-bottom%3A%20.0001pt%3B%22%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E%20print_buf(buf%2CPAGE_SIZE)%3B%26nbsp%3B%20%2F%2F%20print%20the%20read%20data%20out%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3C%2FP%3E%0A%0A%0A%0A%0A%0A%26nbsp%3B%20%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%20font-family%3A%20'Calibri'%2Csans-serif%3B%22%3E%20printf(%22demo%20end.%5Cn%22)%3B%3C%2FSPAN%3E%3C%2FPRE%3E%3CP%3E%3C%2FP%3E%3CP%3E(2)%20print%20test%20data%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3Ereading%20page...%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E0xFF%2C0xFF%2C0xFF%2C0xFF%2C%26nbsp%3B%200xFF%2C0xFF%2C0xFF%2C0xFF%2C%26nbsp%3B%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E0xFF%2C0xFF%2C0xFF%2C0xFF%2C%26nbsp%3B%200xFF%2C0xFF%2C0xFF%2C0xFF%2C%26nbsp%3B%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E0xFF%2C0xFF%2C0xFF%2C0xFF%2C%26nbsp%3B%200xFF%2C0xFF%2C0xFF%2C0xFF%2C%26nbsp%3B%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E0xFF%2C0xFF%2C0xFF%2C0xFF%2C%26nbsp%3B%200xFF%2C0xFF%2C0xFF%2C0xFF%2C%26nbsp%3B%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E0xFF%2C0xFF%2C0xFF%2C0xFF%2C%26nbsp%3B%200xFF%2C0xFF%2C0xFF%2C0xFF%2C%26nbsp%3B%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E0xFF%2C0xFF%2C0xFF%2C0xFF%2C%26nbsp%3B%200xFF%2C0xFF%2C0xFF%2C0xFF%2C%26nbsp%3B%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E0xFF%2C0xFF%2C0xFF%2C0xFF%2C%26nbsp%3B%200xFF%2C0xFF%2C0xFF%2C0xFF%2C%26nbsp%3B%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E0xFF%2C0xFF%2C0xFF%2C0xFF%2C%26nbsp%3B%200xFF%2C0xFF%2C0xFF%2C0xFF%2C%26nbsp%3B%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E0xFF%2C0xFF%2C0xFF%2C0xFF%2C%26nbsp%3B%200xFF%2C0xFF%2C0xFF%2C0xFF%2C%26nbsp%3B%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E0xFF%2C0xFF%2C0xFF%2C0xFF%2C%26nbsp%3B%200xFF%2C0xFF%2C0xFF%2C0xFF%2C%26nbsp%3B%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E0xFF%2C0xFF%2C0xFF%2C0xFF%2C%26nbsp%3B%200xFF%2C0xFF%2C0xFF%2C0xFF%2C%26nbsp%3B%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E0xFF%2C0xFF%2C0xFF%2C0xFF%2C%26nbsp%3B%200xFF%2C0xFF%2C0xFF%2C0xFF%2C%26nbsp%3B%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E0xFF%2C0xFF%2C0xFF%2C0xFF%2C%26nbsp%3B%200xFF%2C0xFF%2C0xFF%2C0xFF%2C%26nbsp%3B%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E0xFF%2C0xFF%2C0xFF%2C0xFF%2C%26nbsp%3B%200xFF%2C0xFF%2C0xFF%2C0xFF%2C%26nbsp%3B%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E0xFF%2C0xFF%2C0xFF%2C0xFF%2C%26nbsp%3B%200xFF%2C0xFF%2C0xFF%2C0xFF%2C%26nbsp%3B%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E0xFF%2C0xFF%2C0xFF%2C0xFF%2C%26nbsp%3B%200xFF%2C0xFF%2C0xFF%2C0xFF%2C%26nbsp%3B%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E0xFF%2C0xFF%2C0xFF%2C0xFF%2C%26nbsp%3B%200xFF%2C0xFF%2C0xFF%2C0xFF%2C%26nbsp%3B%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E0xFF%2C0xFF%2C0xFF%2C0xFF%2C%26nbsp%3B%200xFF%2C0xFF%2C0xFF%2C0xFF%2C%26nbsp%3B%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E0xFF%2C0xFF%2C0xFF%2C0xFF%2C%26nbsp%3B%200xFF%2C0xFF%2C0xFF%2C0xFF%2C%26nbsp%3B%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E0xFF%2C0xFF%2C0xFF%2C0xFF%2C%26nbsp%3B%200xFF%2C0xFF%2C0xFF%2C0xFF%2C%26nbsp%3B%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E0xFF%2C0xFF%2C0xFF%2C0xFF%2C%26nbsp%3B%200xFF%2C0xFF%2C0xFF%2C0xFF%2C%26nbsp%3B%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E0xFF%2C0xFF%2C0xFF%2C0xFF%2C%26nbsp%3B%200xFF%2C0xFF%2C0xFF%2C0xFF%2C%26nbsp%3B%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E0xFF%2C0xFF%2C0xFF%2C0xFF%2C%26nbsp%3B%200xFF%2C0xFF%2C0xFF%2C0xFF%2C%26nbsp%3B%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E0xFF%2C0xFF%2C0xFF%2C0xFF%2C%26nbsp%3B%200xFF%2C0xFF%2C0xFF%2C0xFF%2C%26nbsp%3B%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E0xFF%2C0xFF%2C0xFF%2C0xFF%2C%26nbsp%3B%200xFF%2C0xFF%2C0xFF%2C0xFF%2C%26nbsp%3B%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E0xFF%2C0xFF%2C0xFF%2C0xFF%2C%26nbsp%3B%200xFF%2C0xFF%2C0xFF%2C0xFF%2C%26nbsp%3B%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E0xFF%2C0xFF%2C0xFF%2C0xFF%2C%26nbsp%3B%200xFF%2C0xFF%2C0xFF%2C0xFF%2C%26nbsp%3B%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E0xFF%2C0xFF%2C0xFF%2C0xFF%2C%26nbsp%3B%200xFF%2C0xFF%2C0xFF%2C0xFF%2C%26nbsp%3B%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E0xFF%2C0xFF%2C0xFF%2C0xFF%2C%26nbsp%3B%200xFF%2C0xFF%2C0xFF%2C0xFF%2C%26nbsp%3B%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E0xFF%2C0xFF%2C0xFF%2C0xFF%2C%26nbsp%3B%200xFF%2C0xFF%2C0xFF%2C0xFF%2C%26nbsp%3B%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E0xFF%2C0xFF%2C0xFF%2C0xFF%2C%26nbsp%3B%200xFF%2C0xFF%2C0xFF%2C0xFF%2C%26nbsp%3B%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E0xFF%2C0xFF%2C0xFF%2C0xFF%2C%26nbsp%3B%200xFF%2C0xFF%2C0xFF%2C0xFF%2C%26nbsp%3B%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3Eprograming%20a%20page...%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3Eclearing%20buffer..%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3Ereading%20page...%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E0x0%2C0x1%2C0x2%2C0x3%2C%26nbsp%3B%200x4%2C0x5%2C0x6%2C0x7%2C%26nbsp%3B%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E0x8%2C0x9%2C0xA%2C0xB%2C%26nbsp%3B%200xC%2C0xD%2C0xE%2C0xF%2C%26nbsp%3B%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E0x10%2C0x11%2C0x12%2C0x13%2C%26nbsp%3B%200x14%2C0x15%2C0x16%2C0x17%2C%26nbsp%3B%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E0x18%2C0x19%2C0x1A%2C0x1B%2C%26nbsp%3B%200x1C%2C0x1D%2C0x1E%2C0x1F%2C%26nbsp%3B%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E0x20%2C0x21%2C0x22%2C0x23%2C%26nbsp%3B%200x24%2C0x25%2C0x26%2C0x27%2C%26nbsp%3B%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E0x28%2C0x29%2C0x2A%2C0x2B%2C%26nbsp%3B%200x2C%2C0x2D%2C0x2E%2C0x2F%2C%26nbsp%3B%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E0x30%2C0x31%2C0x32%2C0x33%2C%26nbsp%3B%200x34%2C0x35%2C0x36%2C0x37%2C%26nbsp%3B%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E0x38%2C0x39%2C0x3A%2C0x3B%2C%26nbsp%3B%200x3C%2C0x3D%2C0x3E%2C0x3F%2C%26nbsp%3B%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E0x40%2C0x41%2C0x42%2C0x43%2C%26nbsp%3B%200x44%2C0x45%2C0x46%2C0x47%2C%26nbsp%3B%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E0x48%2C0x49%2C0x4A%2C0x4B%2C%26nbsp%3B%200x4C%2C0x4D%2C0x4E%2C0x4F%2C%26nbsp%3B%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E0x50%2C0x51%2C0x52%2C0x53%2C%26nbsp%3B%200x54%2C0x55%2C0x56%2C0x57%2C%26nbsp%3B%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E0x58%2C0x59%2C0x5A%2C0x5B%2C%26nbsp%3B%200x5C%2C0x5D%2C0x5E%2C0x5F%2C%26nbsp%3B%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E0x60%2C0x61%2C0x62%2C0x63%2C%26nbsp%3B%200x64%2C0x65%2C0x66%2C0x67%2C%26nbsp%3B%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E0x68%2C0x69%2C0x6A%2C0x6B%2C%26nbsp%3B%200x6C%2C0x6D%2C0x6E%2C0x6F%2C%26nbsp%3B%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E0x70%2C0x71%2C0x72%2C0x73%2C%26nbsp%3B%200x74%2C0x75%2C0x76%2C0x77%2C%26nbsp%3B%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E0x78%2C0x79%2C0x7A%2C0x7B%2C%26nbsp%3B%200x7C%2C0x7D%2C0x7E%2C0x7F%2C%26nbsp%3B%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E0x80%2C0x81%2C0x82%2C0x83%2C%26nbsp%3B%200x84%2C0x85%2C0x86%2C0x87%2C%26nbsp%3B%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E0x88%2C0x89%2C0x8A%2C0x8B%2C%26nbsp%3B%200x8C%2C0x8D%2C0x8E%2C0x8F%2C%26nbsp%3B%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E0x90%2C0x91%2C0x92%2C0x93%2C%26nbsp%3B%200x94%2C0x95%2C0x96%2C0x97%2C%26nbsp%3B%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E0x98%2C0x99%2C0x9A%2C0x9B%2C%26nbsp%3B%200x9C%2C0x9D%2C0x9E%2C0x9F%2C%26nbsp%3B%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E0xA0%2C0xA1%2C0xA2%2C0xA3%2C%26nbsp%3B%200xA4%2C0xA5%2C0xA6%2C0xA7%2C%26nbsp%3B%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E0xA8%2C0xA9%2C0xAA%2C0xAB%2C%26nbsp%3B%200xAC%2C0xAD%2C0xAE%2C0xAF%2C%26nbsp%3B%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E0xB0%2C0xB1%2C0xB2%2C0xB3%2C%26nbsp%3B%200xB4%2C0xB5%2C0xB6%2C0xB7%2C%26nbsp%3B%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E0xB8%2C0xB9%2C0xBA%2C0xBB%2C%26nbsp%3B%200xBC%2C0xBD%2C0xBE%2C0xBF%2C%26nbsp%3B%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E0xC0%2C0xC1%2C0xC2%2C0xC3%2C%26nbsp%3B%200xC4%2C0xC5%2C0xC6%2C0xC7%2C%26nbsp%3B%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E0xC8%2C0xC9%2C0xCA%2C0xCB%2C%26nbsp%3B%200xCC%2C0xCD%2C0xCE%2C0xCF%2C%26nbsp%3B%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E0xD0%2C0xD1%2C0xD2%2C0xD3%2C%26nbsp%3B%200xD4%2C0xD5%2C0xD6%2C0xD7%2C%26nbsp%3B%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E0xD8%2C0xD9%2C0xDA%2C0xDB%2C%26nbsp%3B%200xDC%2C0xDD%2C0xDE%2C0xDF%2C%26nbsp%3B%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E0xE0%2C0xE1%2C0xE2%2C0xE3%2C%26nbsp%3B%200xE4%2C0xE5%2C0xE6%2C0xE7%2C%26nbsp%3B%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E0xE8%2C0xE9%2C0xEA%2C0xEB%2C%26nbsp%3B%200xEC%2C0xED%2C0xEE%2C0xEF%2C%26nbsp%3B%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E0xF0%2C0xF1%2C0xF2%2C0xF3%2C%26nbsp%3B%200xF4%2C0xF5%2C0xF6%2C0xF7%2C%26nbsp%3B%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%22%3E0xF8%2C0xF9%2C0xFA%2C0xFB%2C%26nbsp%3B%200xFC%2C0xFD%2C0xFE%2C0xFF%2C%26nbsp%3B%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E%26nbsp%3B%20%3CSPAN%20style%3D%22font-size%3A%208.0pt%3B%20font-family%3A%20'Calibri'%2Csans-serif%3B%22%3Edemo%20end%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%20style%3D%22margin-bottom%3A%20.0001pt%3B%22%3EFrom%20the%20print%20data%2C%20we%20can%20find%20the%20code%20can%20realize%20flash%20sector%20erasing%20%2C%20flash%20program%20and%20flash%20data%20read%20out%2C%20and%20the%20test%20result%20is%20correct.%3C%2FP%3E%3CP%3EThe%20following%20wave%20is%20the%20page%20read%20data%20out%20after%20flash%20page%20program.%3C%2FP%3E%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22pastedImage_0.jpg%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22pastedImage_0.jpg%22%20style%3D%22width%3A%20999px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F50626i0D1BAEA71633981A%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22pastedImage_0.jpg%22%20alt%3D%22pastedImage_0.jpg%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FP%3E%3CP%3EThe%20attachment%20is%20the%20testing%20code.%3C%2FP%3E
No ratings
Version history
Last update:
‎09-10-2020 02:32 AM
Updated by: