📄 hal_flash_dev.h
字号:
#ifndef __HAL_FLASH_DEV_H__
#define __HAL_FLASH_DEV_H__
#include "hal_flash_types.h"
#include "../pub/hal_llist.h"
#include "hal_dev_llist.h"
#include "../pub/hal_types.h"
typedef struct hal_flash_dev hal_flash_dev;
typedef hal_flash_dev hal_flash_fd;
static int hal_flash_dev_reg( hal_flash_fd* fd)
{
extern hal_llist hal_flash_dev_list;
return hal_dev_llist_insert ((hal_dev_llist*) fd, &hal_flash_dev_list);
}
typedef hal_flash_dev* (*hal_flash_open)(hal_flash_dev* flash,
const char* name );
typedef int (*hal_flash_close)(hal_flash_dev* flash);
typedef int (*hal_flash_write)( hal_flash_dev* flash, int offset,
void* src_addr, int length );
typedef int (*hal_flash_get_flash_info)( hal_flash_dev* flash, flash_region* info,
int* number_of_regions);
typedef int (*hal_flash_erase_block)( hal_flash_dev* flash, int block);
typedef int (*hal_flash_read)(hal_flash_dev* flash, int offset,
void* dest_addr, int length );
//在这里flash的结构定义为分层的结构,即每个flash含有n个region,而每个region含有m个block
struct hal_flash_dev
{
hal_llist llist;
const char* name;
hal_32 port_size;
hal_flash_open open;
hal_flash_close close;
hal_flash_write write;
hal_flash_read read;
hal_flash_get_flash_info get_info; //返回flash器件的一些相关参数
hal_flash_erase_block erase_block; //擦除一个flash器件的一个基本block
void* base_addr; //该器件在系统中的基地址
int number_of_regions; //如果所用的flash并非这种分层的结构,则region可以设置为1个。
flash_region region_info[HAL_MAX_NUMBER_OF_FLASH_REGIONS];
};
#endif /* __HAL_FLASH_DEV_H__ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -