read write operation from flash memory nrf52840

I want to perform read and write operation from flash memory in nrf52840 through below api's

uint32_t flash_address = 0x0003D1E0;

 sd_flash_write((uint32_t *)flash_address, data_to_write, 1);         write operation

memcpy(&data_to_read, (uint32_t *)flash_address, 1);                  read operation

my issue is -

1. Is there any API to do for flash read operation.

2. when I try to write using the write operation command it fails.

3. which location should i used for storing some data in flash currently using 0x0003D1E0 this location.

4. There are multiple API's for flash operation which one should i prefer.

nrf_fstorage_write,

fds_record_write,

sd_flash_write