mirror of
https://gitee.com/Vancouver2017/luban-lite-t3e-pro.git
synced 2025-12-17 03:48:55 +00:00
V1.0.6
This commit is contained in:
@@ -19,6 +19,9 @@
|
||||
#ifndef FAL_USING_NOR_FLASH_DEV_NAME
|
||||
#define FAL_USING_NOR_FLASH_DEV_NAME "norflash0"
|
||||
#endif
|
||||
#ifndef FAL_USING_NOR_FLASH_DEV_NAME1
|
||||
#define FAL_USING_NOR_FLASH_DEV_NAME1 "norflash1"
|
||||
#endif
|
||||
|
||||
static int init(void);
|
||||
static int read(long offset, uint8_t *buf, size_t size);
|
||||
@@ -36,6 +39,81 @@ struct fal_flash_dev nor_flash0 =
|
||||
.write_gran = 1
|
||||
};
|
||||
|
||||
#if defined(AIC_QSPI1_DEVICE_SPINOR)
|
||||
static int init1(void);
|
||||
static int read1(long offset, uint8_t *buf, size_t size);
|
||||
static int write1(long offset, const uint8_t *buf, size_t size);
|
||||
static int erase1(long offset, size_t size);
|
||||
|
||||
static sfud_flash_t sfud_dev1 = NULL;
|
||||
struct fal_flash_dev nor_flash1 =
|
||||
{
|
||||
.name = FAL_USING_NOR_FLASH_DEV_NAME1,
|
||||
.addr = 0,
|
||||
.len = 16 * 1024 * 1024,
|
||||
.blk_size = 4096,
|
||||
.ops = {init1, read1, write1, erase1},
|
||||
.write_gran = 1
|
||||
};
|
||||
|
||||
static int init1(void)
|
||||
{
|
||||
|
||||
#ifdef RT_USING_SFUD
|
||||
/* RT-Thread RTOS platform */
|
||||
sfud_dev1 = rt_sfud_flash_find_by_dev_name(FAL_USING_NOR_FLASH_DEV_NAME1);
|
||||
#else
|
||||
/* bare metal platform */
|
||||
extern sfud_flash sfud_norflash1;
|
||||
sfud_dev1 = &sfud_norflash1;
|
||||
#endif
|
||||
|
||||
if (NULL == sfud_dev1)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* update the flash chip information */
|
||||
nor_flash1.blk_size = sfud_dev1->chip.erase_gran;
|
||||
nor_flash1.len = sfud_dev1->chip.capacity;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int read1(long offset, uint8_t *buf, size_t size)
|
||||
{
|
||||
assert(sfud_dev1);
|
||||
assert(sfud_dev1->init_ok);
|
||||
sfud_read(sfud_dev1, nor_flash1.addr + offset, size, buf);
|
||||
|
||||
return size;
|
||||
}
|
||||
|
||||
static int write1(long offset, const uint8_t *buf, size_t size)
|
||||
{
|
||||
assert(sfud_dev1);
|
||||
assert(sfud_dev1->init_ok);
|
||||
if (sfud_write(sfud_dev1, nor_flash1.addr + offset, size, buf) != SFUD_SUCCESS)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
return size;
|
||||
}
|
||||
|
||||
static int erase1(long offset, size_t size)
|
||||
{
|
||||
assert(sfud_dev1);
|
||||
assert(sfud_dev1->init_ok);
|
||||
if (sfud_erase(sfud_dev1, nor_flash0.addr + offset, size) != SFUD_SUCCESS)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
return size;
|
||||
}
|
||||
#endif
|
||||
|
||||
static int init(void)
|
||||
{
|
||||
|
||||
|
||||
Reference in New Issue
Block a user