Flash Examples

Table of Contents


Variables used in the following cases are defined as below

#define FLASH_ADDR 0x020000
#define FLASH_BUFF_LEN 256
volatile unsigned char Flash_Read_Buff[FLASH_BUFF_LEN]={0};
volatile unsigned char Flash_Write_Buff[FLASH_BUFF_LEN]=
{ 0x00,0x11,0x22,0x33,0x44,0x55,0x66,0x77,
0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,
0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,
0xb0,0xb1,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7,
0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,
0xd0,0xd1,0xd2,0xd3,0xd4,0xd5,0xd6,0xd7,
0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,
0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,
0x00,0x11,0x22,0x33,0x44,0x55,0x66,0x77,
0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,
0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,
0xb0,0xb1,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7,
0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,
0xd0,0xd1,0xd2,0xd3,0xd4,0xd5,0xd6,0xd7,
0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,
0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,
0x00,0x11,0x22,0x33,0x44,0x55,0x66,0x77,
0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,
0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,
0xb0,0xb1,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7,
0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,
0xd0,0xd1,0xd2,0xd3,0xd4,0xd5,0xd6,0xd7,
0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,
0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,
0x00,0x11,0x22,0x33,0x44,0x55,0x66,0x77,
0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,
0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,
0xb0,0xb1,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7,
0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,
0xd0,0xd1,0xd2,0xd3,0xd4,0xd5,0xd6,0xd7,
0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,
0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,
};
volatile unsigned char status;
unsigned char mid_buf[4]={0};
unsigned char uid_buf[16]={0};

API-FLASH-CASE1:FLASH READ/WRITE PAGE

Function Sub-Function APIs Description Update Status
irq_handler() None Interrupt handler function [Mandatory] 2019-1-10
main() cpu_wakeup_init() CPU initialization function [Mandatory]
clock_init() clock_init(SYS_CLK_24M_Crystal) Clock initialization function, System Clock is 24M RC by default [optional]
rf_drv_init() rf_drv_init(RF_MODE_BLE_1M) RF mode initialization [optional]
gpio_init() gpio_init(1) GPIO initialization: set the initialization status of all GPIOs [optional]
user_init() flash_write_page() flash_write_page(FLASH_ADDR,FLASH_BUFF_LEN,(unsigned char *)Flash_Write_Buff) write 256 bytes to the specified address of flash
flash_read_page() flash_read_page(FLASH_ADDR,FLASH_BUFF_LEN,(unsigned char *)Flash_Read_Buff) read 256 bytes from the specified address of flash to check whether the written data is right
main_loop() None Main program loop

API-FLASH-CASE2:FLASH ERASE SECTOR

Function Sub-Function APIs Description Update Status
irq_handler() None Interrupt handler function [Mandatory] 2019-1-10
main() cpu_wakeup_init() CPU initialization function [Mandatory]
clock_init() clock_init(SYS_CLK_24M_Crystal) Clock initialization function, System Clock is 24M RC by default [optional]
rf_drv_init() rf_drv_init(RF_MODE_BLE_1M) RF mode initialization [optional]
gpio_init() gpio_init(1) GPIO initialization: set the initialization status of all GPIOs [optional]
user_init() flash_erase_sector() flash_erase_sector(FLASH_ADDR) erase a sector from the specified address of flash
main_loop() None Main program loop

API-FLASH-CASE3:FLASH READ/WRITE STATUS

Function Sub-Function APIs Description Update Status
irq_handler() None Interrupt handler function [Mandatory] 2019-1-10
main() cpu_wakeup_init() CPU initialization function [Mandatory]
clock_init() clock_init(SYS_CLK_24M_Crystal) Clock initialization function, System Clock is 24M RC by default [optional]
rf_drv_init() rf_drv_init(RF_MODE_BLE_1M) RF mode initialization [optional]
gpio_init() gpio_init(1) GPIO initialization: set the initialization status of all GPIOs [optional]
user_init() status = flash_read_status() read the status of flash
flash_write_status() status = flash_write_status(0x04) write the status of flash
main_loop() None Main program loop

API-FLASH-CASE4:FLASH DEEP POWER DOWN/RELEASE

Function Sub-Function APIs Description Update Status
irq_handler() None Interrupt handler function [Mandatory] 2019-1-10
main() cpu_wakeup_init() CPU initialization function [Mandatory]
clock_init() clock_init(SYS_CLK_24M_Crystal) Clock initialization function, System Clock is 24M RC by default [optional]
rf_drv_init() rf_drv_init(RF_MODE_BLE_1M) RF mode initialization [optional]
gpio_init() gpio_init(1) GPIO initialization: set the initialization status of all GPIOs [optional]
user_init() flash_deep_powerdown() put the device in the lowest consumption mode
flash_release_deep_powerdown() wake up the device from the lowest consumption mode
main_loop() None Main program loop

API-FLASH-CASE5:FLASH READ MID/UID

Function Sub-Function APIs Description Update Status
irq_handler() None Interrupt handler function [Mandatory] 2019-1-10
main() cpu_wakeup_init() CPU initialization function [Mandatory]
clock_init() clock_init(SYS_CLK_24M_Crystal) Clock initialization function, System Clock is 24M RC by default [optional]
rf_drv_init() rf_drv_init(RF_MODE_BLE_1M) RF mode initialization [optional]
gpio_init() gpio_init(1) GPIO initialization: set the initialization status of all GPIOs [optional]
user_init() flash_read_mid() flash_read_mid(mid_buf) read MID of flash
flash_read_uid() flash_read_uid(FLASH_READ_UID_CMD,uid_buf) read UID of flash
main_loop() None Main program loop

API-FLASH-CASE6:FLASH LOCK

Function Sub-Function APIs Description Update Status
irq_handler() None Interrupt handler function [Mandatory] 2019-1-10
main() cpu_wakeup_init() CPU initialization function [Mandatory]
clock_init() clock_init(SYS_CLK_24M_Crystal) Clock initialization function, System Clock is 24M RC by default [optional]
rf_drv_init() rf_drv_init(RF_MODE_BLE_1M) RF mode initialization [optional]
gpio_init() gpio_init(1) GPIO initialization: set the initialization status of all GPIOs [optional]
user_init() flash_lock() flash_lock(FLASH_TYPE_GD, 0x1c) lock first 512k bytes of flash
main_loop() None Main program loop

API-FLASH-CASE6:FLASH UNLOCK

Function Sub-Function APIs Description Update Status
irq_handler() None Interrupt handler function [Mandatory] 2019-1-10
main() cpu_wakeup_init() CPU initialization function [Mandatory]
clock_init() clock_init(SYS_CLK_24M_Crystal) Clock initialization function, System Clock is 24M RC by default [optional]
rf_drv_init() rf_drv_init(RF_MODE_BLE_1M) RF mode initialization [optional]
gpio_init() gpio_init(1) GPIO initialization: set the initialization status of all GPIOs [optional]
user_init() flash_unlock() flash_unlock(FLASH_TYPE_GD) unlock the whole flash
main_loop() None Main program loop

History Record

Date Description Author
2019-1-10 initial release LJW