diff --git a/components/drivers/mtd/mtd_nor.c b/components/drivers/mtd/mtd_nor.c index b941f9236d5e1df0e1d30ce7eb348d6de9645b0e..d28482e3c9204a33f2849b1c4190d21cbb706839 100644 --- a/components/drivers/mtd/mtd_nor.c +++ b/components/drivers/mtd/mtd_nor.c @@ -35,7 +35,9 @@ static rt_size_t _mtd_read(rt_device_t dev, void *buffer, rt_size_t size) { - return size; + struct rt_mtd_nor_device *device = (struct rt_mtd_nor_device *)dev; + + return device->ops->read(device, pos + device->block_start, buffer, size); } static rt_size_t _mtd_write(rt_device_t dev, @@ -43,7 +45,9 @@ static rt_size_t _mtd_write(rt_device_t dev, const void *buffer, rt_size_t size) { - return size; + struct rt_mtd_nor_device *device = (struct rt_mtd_nor_device *)dev; + + return device->ops->write(device, pos + device->block_start, buffer, size); } static rt_err_t _mtd_control(rt_device_t dev, int cmd, void *args)