X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=bertos%2Fdrv%2Fdataflash.c;h=20844aa96e7b71b73bfa8b3eff92a63f308e6d96;hb=b50c45ad2775f2b59f5b58bf2d831faafad36e92;hp=774c880076d0b61941e183363c112daa93b65648;hpb=77f7560887c694977dc03e9c547b1b119e92c70c;p=bertos.git diff --git a/bertos/drv/dataflash.c b/bertos/drv/dataflash.c index 774c8800..20844aa9 100644 --- a/bertos/drv/dataflash.c +++ b/bertos/drv/dataflash.c @@ -43,7 +43,9 @@ #include #include #include + #include + #include #if CONFIG_KERNEL @@ -81,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 */ }; @@ -338,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); @@ -389,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); @@ -402,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);