* Private avr flush funtion.
*
* Write current buffered page in flash memory (if modified).
* This function erase flash memory page before writing.
*
* Private avr flush funtion.
*
* Write current buffered page in flash memory (if modified).
* This function erase flash memory page before writing.
*
// Fill the temporary buffer of the AVR
for (avr_page_addr_t page_addr = 0; page_addr < SPM_PAGESIZE; page_addr += 2)
{
// Fill the temporary buffer of the AVR
for (avr_page_addr_t page_addr = 0; page_addr < SPM_PAGESIZE; page_addr += 2)
{
ASSERT(fd->fd.seek_pos + (kfile_off_t)size <= (kfile_off_t)fd->fd.size);
size = MIN((uint32_t)size, fd->fd.size - fd->fd.seek_pos);
ASSERT(fd->fd.seek_pos + (kfile_off_t)size <= (kfile_off_t)fd->fd.size);
size = MIN((uint32_t)size, fd->fd.size - fd->fd.seek_pos);
flash_avr_loadPage(fd, page);
size_t wr_len = MIN(size, SPM_PAGESIZE - page_addr);
flash_avr_loadPage(fd, page);
size_t wr_len = MIN(size, SPM_PAGESIZE - page_addr);
- memcpy(page_buf + page_addr, buf, wr_len);
- fd->page_modified = true;
+ memcpy(fd->page_buf + page_addr, buf, wr_len);
+ fd->page_dirty = true;
* \a name and \a mode are unused, cause flash memory is
* threated like one file.
*/
* \a name and \a mode are unused, cause flash memory is
* threated like one file.
*/
ASSERT(fd->fd.seek_pos + (kfile_off_t)size <= (kfile_off_t)fd->fd.size);
size = MIN((uint32_t)size, fd->fd.size - fd->fd.seek_pos);
ASSERT(fd->fd.seek_pos + (kfile_off_t)size <= (kfile_off_t)fd->fd.size);
size = MIN((uint32_t)size, fd->fd.size - fd->fd.seek_pos);
{
memset(fd, 0, sizeof(*fd));
DB(fd->fd._type = KFT_FLASHAVR);
{
memset(fd, 0, sizeof(*fd));
DB(fd->fd._type = KFT_FLASHAVR);