⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hal_flash_dev.h

📁 基于ARM和uC/OS-II实现的串口控制台
💻 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 + -