Merge branch 'master' into LwIP_software

This commit is contained in:
yudongdong
2021-05-29 13:46:29 +08:00
25 changed files with 287 additions and 94 deletions
+2 -2
View File
@@ -44,7 +44,7 @@ static uint32 I2cDeviceWrite(void *dev, struct BusBlockWriteParam *write_param)
i2c_msg.retries = 1;
i2c_msg.next = NONE;
return i2c_dev->i2c_dev_done->write(i2c_dev, &i2c_msg);
return i2c_dev->i2c_dev_done->dev_write(i2c_dev, &i2c_msg);
}
static uint32 I2cDeviceRead(void *dev, struct BusBlockReadParam *read_param)
@@ -62,7 +62,7 @@ static uint32 I2cDeviceRead(void *dev, struct BusBlockReadParam *read_param)
i2c_msg.retries = 1;
i2c_msg.next = NONE;
return i2c_dev->i2c_dev_done->read(i2c_dev, &i2c_msg);
return i2c_dev->i2c_dev_done->dev_read(i2c_dev, &i2c_msg);
}
static const struct HalDevDone dev_done =
+4 -4
View File
@@ -50,10 +50,10 @@ struct I2cHardwareDevice;
struct I2cDevDone
{
uint32 (*open) (struct I2cHardwareDevice *i2c_device);
uint32 (*close) (struct I2cHardwareDevice *i2c_device);
uint32 (*write) (struct I2cHardwareDevice *i2c_device, struct I2cDataStandard *msg);
uint32 (*read) (struct I2cHardwareDevice *i2c_device, struct I2cDataStandard *msg);
uint32 (*dev_open) (struct I2cHardwareDevice *i2c_device);
uint32 (*dev_close) (struct I2cHardwareDevice *i2c_device);
uint32 (*dev_write) (struct I2cHardwareDevice *i2c_device, struct I2cDataStandard *msg);
uint32 (*dev_read) (struct I2cHardwareDevice *i2c_device, struct I2cDataStandard *msg);
};
struct I2cHardwareDevice
+4 -4
View File
@@ -102,10 +102,10 @@ struct SpiHardwareDevice;
struct SpiDevDone
{
uint32 (*open) (struct SpiHardwareDevice *dev);
uint32 (*close) (struct SpiHardwareDevice *dev);
uint32 (*write) (struct SpiHardwareDevice *dev, struct SpiDataStandard *msg);
uint32 (*read) (struct SpiHardwareDevice *dev, struct SpiDataStandard *msg);
uint32 (*dev_open) (struct SpiHardwareDevice *dev);
uint32 (*dev_close) (struct SpiHardwareDevice *dev);
uint32 (*dev_write) (struct SpiHardwareDevice *dev, struct SpiDataStandard *msg);
uint32 (*dev_read) (struct SpiHardwareDevice *dev, struct SpiDataStandard *msg);
};
struct SpiHardwareDevice
+3 -3
View File
@@ -62,7 +62,7 @@ static uint32 SpiDeviceWrite(void *dev, struct BusBlockWriteParam *write_param)
spi_msg.spi_cs_release = 0;
spi_msg.next = NONE;
return spi_dev->spi_dev_done->write(spi_dev, &spi_msg);
return spi_dev->spi_dev_done->dev_write(spi_dev, &spi_msg);
}
static uint32 SpiDeviceRead(void *dev, struct BusBlockReadParam *read_param)
@@ -80,7 +80,7 @@ static uint32 SpiDeviceRead(void *dev, struct BusBlockReadParam *read_param)
spi_msg.spi_cs_release = 0;
spi_msg.next = NONE;
return spi_dev->spi_dev_done->read(spi_dev, &spi_msg);
return spi_dev->spi_dev_done->dev_read(spi_dev, &spi_msg);
}
static const struct HalDevDone dev_done =
@@ -190,5 +190,5 @@ int SpiDevConfigureCs(struct HardwareDev *dev, uint8 spi_chip_select, uint8 spi_
msg.spi_chip_select = spi_chip_select;
msg.spi_cs_release = spi_cs_release;
return spi_dev->spi_dev_done->write(spi_dev, &msg);
return spi_dev->spi_dev_done->dev_write(spi_dev, &msg);
}
+26 -6
View File
@@ -18,6 +18,8 @@
* @date 2021-04-24
*/
#include <bus_spi.h>
#include <dev_spi.h>
#include <flash_spi.h>
/**
@@ -43,13 +45,20 @@ static uint32 SpiFlashWrite(void *dev, struct BusBlockWriteParam *write_param)
HardwareDevType haldev = (struct HardwareDev *)dev;
struct SpiHardwareDevice *flash_dev;
struct BusBlockWriteParam *flash_write_param = (struct BusBlockWriteParam *)write_param->buffer;
flash_dev = CONTAINER_OF(haldev, struct SpiHardwareDevice, haldev);
spi_flash_dev = CONTAINER_OF(flash_dev, struct SpiFlashDevice, flash_dev);
sfud_flash_dev = (sfud_flash *)spi_flash_dev->flash_param.flash_private_data;
pos = write_param->pos * spi_flash_dev->flash_param.flash_block_param.sector_bytes;
size = write_param->size * spi_flash_dev->flash_param.flash_block_param.sector_bytes;
write_buffer = (uint8 *)write_param->buffer;
pos = flash_write_param->pos;// * spi_flash_dev->flash_param.flash_block_param.sector_bytes;
size = flash_write_param->size;// * spi_flash_dev->flash_param.flash_block_param.sector_bytes;
write_buffer = (uint8 *)flash_write_param->buffer;
KPrintf("flash write pos %u sector_bytes %u size %u\n",
flash_write_param->pos,
spi_flash_dev->flash_param.flash_block_param.sector_bytes,
flash_write_param->size);
ret = sfud_erase_write(sfud_flash_dev, pos, size, write_buffer);
if (SFUD_SUCCESS != ret) {
@@ -57,6 +66,8 @@ static uint32 SpiFlashWrite(void *dev, struct BusBlockWriteParam *write_param)
return ERROR;
}
haldev->owner_bus->owner_haldev = haldev;
return ret;
}
@@ -82,13 +93,15 @@ static uint32 SpiFlashRead(void *dev, struct BusBlockReadParam *read_param)
HardwareDevType haldev = (struct HardwareDev *)dev;
struct SpiHardwareDevice *flash_dev;
struct BusBlockReadParam *flash_read_param = (struct BusBlockReadParam *)read_param->buffer;
flash_dev = CONTAINER_OF(haldev, struct SpiHardwareDevice, haldev);
spi_flash_dev = CONTAINER_OF(flash_dev, struct SpiFlashDevice, flash_dev);
sfud_flash_dev = (sfud_flash *)spi_flash_dev->flash_param.flash_private_data;
pos = read_param->pos * spi_flash_dev->flash_param.flash_block_param.sector_bytes;
size = read_param->size * spi_flash_dev->flash_param.flash_block_param.sector_bytes;
read_buffer = (uint8 *)read_param->buffer;
pos = flash_read_param->pos;// * spi_flash_dev->flash_param.flash_block_param.sector_bytes;
size = flash_read_param->size;// * spi_flash_dev->flash_param.flash_block_param.sector_bytes;
read_buffer = (uint8 *)flash_read_param->buffer;
ret = sfud_read(sfud_flash_dev, pos, size, read_buffer);
if (SFUD_SUCCESS != ret) {
@@ -96,6 +109,13 @@ static uint32 SpiFlashRead(void *dev, struct BusBlockReadParam *read_param)
return ERROR;
}
flash_read_param->read_length = flash_read_param->size;
read_param->read_length = flash_read_param->size;
haldev->owner_bus->owner_haldev = haldev;
KPrintf("SpiFlashRead read buffer done\n");
return ret;
}