X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=bertos%2Fdrv%2Fdataflash.c;h=20844aa96e7b71b73bfa8b3eff92a63f308e6d96;hb=3c39d4d894849ce0115c6e1efe14b003aa2e91e1;hp=58a2e507cf6bb3869d6190b4e0c6caf9f0013954;hpb=e9b5389a29d592304d934b62de57053c74772f66;p=bertos.git diff --git a/bertos/drv/dataflash.c b/bertos/drv/dataflash.c index 58a2e507..20844aa9 100644 --- a/bertos/drv/dataflash.c +++ b/bertos/drv/dataflash.c @@ -39,12 +39,13 @@ */ #include "dataflash.h" -#include #include #include #include + #include + #include #if CONFIG_KERNEL @@ -82,6 +83,14 @@ static const DataflashInfo mem_info[] = .page_cnt = 4096, .read_cmd = DFO_READ_FLASH_MEM_BYTE_D, }, + { + /* AT45DB642D */ + .density_id = 0x0F, + .page_size = 1056, + .page_bits = 11, + .page_cnt = 8192, + .read_cmd = DFO_READ_FLASH_MEM_BYTE_D, + }, /* Add other memories here */ }; @@ -339,7 +348,7 @@ static size_t dataflash_read(struct KFile *_fd, void *buf, size_t size) ASSERT(fd->fd.seek_pos + size <= fd->fd.size); - size = MIN((uint32_t)size, fd->fd.size - fd->fd.seek_pos); + size = MIN((kfile_size_t)size, fd->fd.size - fd->fd.seek_pos); kprintf("Reading at pos[%lu]\n", fd->fd.seek_pos); @@ -390,7 +399,7 @@ static size_t dataflash_write(struct KFile *_fd, const void *_buf, size_t size) const uint8_t *data = (const uint8_t *) _buf; ASSERT(fd->fd.seek_pos + size <= fd->fd.size); - size = MIN((uint32_t)size, fd->fd.size - fd->fd.seek_pos); + size = MIN((kfile_size_t)size, fd->fd.size - fd->fd.seek_pos); kprintf("Writing at pos[%lu]\n", fd->fd.seek_pos); @@ -403,7 +412,7 @@ static size_t dataflash_write(struct KFile *_fd, const void *_buf, size_t size) offset = fd->fd.seek_pos % mem_info[fd->dev].page_size; - size_t wr_len = MIN(size, mem_info[fd->dev].page_size - offset); + size_t wr_len = MIN((dataflash_size_t)size, mem_info[fd->dev].page_size - offset); kprintf(" [page-<%ld>, byte-<%ld>]",new_page, offset);