60 lines
1.2 KiB
C
60 lines
1.2 KiB
C
![]() |
/*
|
||
|
* bsp_flash.c
|
||
|
*
|
||
|
* Created on: 2025年4月8日
|
||
|
* Author: 22332
|
||
|
*/
|
||
|
|
||
|
#include "cola_init.h"
|
||
|
#include "cola_device.h"
|
||
|
#include "drv_flash.h"
|
||
|
|
||
|
static cola_device_t g_dev_flash;
|
||
|
|
||
|
static int bsp_flash_open(cola_device_t *dev, int oflag){
|
||
|
bsp_drv_flash_init();
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
static int bsp_flash_close(cola_device_t *dev){
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
|
||
|
static int bsp_flash_read(cola_device_t *dev, int pos, void *buffer, int size){
|
||
|
if(pos == 0)
|
||
|
{
|
||
|
return bsp_drv_get_vendor_data(buffer, size);;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
volatile uint8_t * p_address =(uint8_t *) pos;
|
||
|
bsp_drv_flash_read_byte(p_address, (uint8_t *)buffer, size);
|
||
|
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
static int bsp_flash_write(cola_device_t *dev, int pos, const void *buffer, int size){
|
||
|
|
||
|
bsp_drv_flash_write((uint8_t *)buffer,pos);
|
||
|
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
|
||
|
static struct cola_device_ops master_flash_Ops ={
|
||
|
.open = bsp_flash_open,
|
||
|
.close = bsp_flash_close,
|
||
|
.read = bsp_flash_read,
|
||
|
.write = bsp_flash_write,
|
||
|
};
|
||
|
|
||
|
static void bsp_flash_configuration(void){
|
||
|
g_dev_flash.name = "FLASH";
|
||
|
g_dev_flash.dops = &master_flash_Ops;
|
||
|
cola_device_register(&g_dev_flash);
|
||
|
}
|
||
|
register_initcall(bsp_flash_configuration);
|
||
|
|