How to write directly at a Flash Memory Address?

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Anonymous
Not applicable

Hello All,

Im working on CY8CKIT - 044 PSoC 4M-Series Pioneer Kit

uC Part No. : CY8C4247AZI-M485

While using the System generated API in CyFlash.c " CySysFlashWriteRow((uint32) rowNum, rowData) "

I could only write data row wise using 'rowNum' parameter with 'rowData' as a 128Byte data.

what should I do if I want to do a single byte write operation in Flash Memory at a particular address??

eg: I wish to write directly at flash Memory location 0x0001ff04, but system generated API lets me write through only through 0x0001ff00. what can be done i wish to write directly at 0x0001ff04 memory location.

Is there any api where i could just pass the memory address and databyte to be written at that memory location?

Please help. I have attached snapshots for further ease of you understanding.

Capture01.JPGCapture02.JPG

0 Likes
1 Solution
Vasanth
Moderator
Moderator
Moderator
250 sign-ins 500 solutions authored First question asked

Hi ,

Please check the flash write example code on PSoC Creator. This thread also has one example code.<Flash writes and reads in PSoC4

Flash writes and reads in PSoC4

Best Regards,
VSRS

View solution in original post

0 Likes
2 Replies
Bob_Marlowe
Level 10
Level 10
First like given 50 questions asked 10 questions asked

A flash row is the smallest unit to write to. When you want to write smaller amounts of data you need to

  • Read the affected row into a sram array
  • Change the bytes
  • write the complete row from sram

Problems could come from data to write crossing a row border.

Bob

0 Likes
Vasanth
Moderator
Moderator
Moderator
250 sign-ins 500 solutions authored First question asked

Hi ,

Please check the flash write example code on PSoC Creator. This thread also has one example code.<Flash writes and reads in PSoC4

Flash writes and reads in PSoC4

Best Regards,
VSRS

0 Likes