<html><head><meta http-equiv="content-type" content="text/html; charset=UTF-8"><style>body { line-height: 1.5; }blockquote { margin-top: 0px; margin-bottom: 0px; margin-left: 0.5em; }body { font-size: 10.5pt; font-family: 微软雅黑; color: rgb(0, 0, 0); line-height: 1.5; }</style></head><body>
<div><span></span>Could you please share your flash driver with me? </div><div><br></div><div>In my code, my flash is accessed via a handler defined in Xilinx BSP. </div><div><br></div><div><span style="color: rgb(0, 0, 0); background-color: rgba(0, 0, 0, 0);">typedef struct {<br>    rtems_jffs2_flash_control super;<br>    XQspiPs *flash_instance;<br>} flash_control;<br><br>static flash_control *get_flash_control(rtems_jffs2_flash_control *super) {<br>    return (flash_control *)super;<br>}<br><br>static int flash_read(<br>    rtems_jffs2_flash_control *super,<br>    uint32_t offset,<br>    unsigned char *buffer,<br>    size_t length) {<br><br>    flash_control *self = get_flash_control(super);<br>    XQspiPs *flash_handle = self->flash_instance;<br><br>    FlashRead(flash_handle, </span>offset<span style="color: rgb(0, 0, 0); background-color: rgba(0, 0, 0, 0);">, length, QUAD_READ_CMD, temp_buffer, buffer);<br>    return S25FL256S_SUCCESS;<br>}<br><br>static int flash_write(<br>    rtems_jffs2_flash_control *super,<br>    uint32_t offset,<br>    unsigned char *buffer,<br>    size_t length) {<br><br>    flash_control *self = get_flash_control(super);<br>    XQspiPs *flash_handle = self->flash_instance;<br>    uint32_t num = length / S25FL256S_PAGE_SIZE;<br>    uint32_t remaining = length % S25FL256S_PAGE_SIZE;<br>    uint32_t written;<br><br>    for (written = 0; written < num; written++) {<br>        FlashWrite(flash_handle, beginning + written*S25FL256S_PAGE_SIZE, \<br>            S25FL256S_PAGE_SIZE, WRITE_CMD, \<br>            buffer + written*S25FL256S_PAGE_SIZE);<br>    }<br>    if (remaining) {<br>        FlashWrite(flash_handle, beginning + num*S25FL256S_PAGE_SIZE, \<br>            remaining, WRITE_CMD, buffer + num*S25FL256S_PAGE_SIZE);<br>    }<br>    return S25FL256S_SUCCESS;<br>}</span></div><div><span style="color: rgb(0, 0, 0); background-color: rgba(0, 0, 0, 0);"><br></span></div><div><span style="color: rgb(0, 0, 0); background-color: rgba(0, 0, 0, 0);">where, my FlashRead and FlashWrite functions will invoke the functions defined in Xilinx BSP to transfer data from/into flash. </span></div><div><span style="color: rgb(0, 0, 0); background-color: rgba(0, 0, 0, 0);"><br></span></div><div><span style="color: rgb(0, 0, 0); background-color: rgba(0, 0, 0, 0);">I do not know where the problem is...</span></div>
<div><br></div><hr style="width: 210px; height: 1px;" color="#b5c4df" size="1" align="left">
<div><span><div style="MARGIN: 10px; FONT-FAMILY: verdana; FONT-SIZE: 10pt"><div>Best wishes,</div><div>xuelin.tian@qkmtech.com</div></div></span></div>
<blockquote style="margin-top: 0px; margin-bottom: 0px; margin-left: 0.5em;"><div> </div><div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm"><div style="PADDING-RIGHT: 8px; PADDING-LEFT: 8px; FONT-SIZE: 12px;FONT-FAMILY:tahoma;COLOR:#000000; BACKGROUND: #efefef; PADDING-BOTTOM: 8px; PADDING-TOP: 8px"><div><b>From:</b> <a href="mailto:chrisj@rtems.org">Chris Johns</a></div><div><b>Date:</b> 2017-10-23 12:19</div><div><b>To:</b> <a href="mailto:xuelin.tian@qkmtech.com">xuelin.tian@qkmtech.com</a>; <a href="mailto:sebastian.huber@embedded-brains.de">Sebastian Huber</a></div><div><b>CC:</b> <a href="mailto:users@rtems.org">users@rtems.org</a></div><div><b>Subject:</b> Re: Filesystem in RTEMS</div></div></div><div><div>On 23/10/2017 12:53, xuelin.tian@qkmtech.com wrote:</div>
<div>> Yes, Everything is going well, if I erase the flash before use. </div>
<div>></div>
<div>> But, I need to store some files into flash, and reuse them when I restart my</div>
<div>> system. I can not erase the flash every time. </div>
<div> </div>
<div>Oh I see what you are saying.</div>
<div> </div>
<div>I am using the JFFS2 on a Zynq with a 64M byte SPI flash and seeing no issues. I</div>
<div>suggest you check your flash driver and make sure you are writing to the flash</div>
<div>correctly.</div>
<div> </div>
<div>Chris</div>
</div></blockquote>
</body></html>