1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- /*
- * Copyright (c) 2006-2018, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2018-05-17 armink the first version
- */
- #ifndef _FAL_DEF_H_
- #define _FAL_DEF_H_
- #include <rtthread.h>
- /* FAL flash and partition device name max length */
- #ifndef FAL_DEV_NAME_MAX
- #define FAL_DEV_NAME_MAX 24
- #endif
- #ifndef FAL_DEV_BLK_MAX
- #define FAL_DEV_BLK_MAX 6
- #endif
- struct flash_blk
- {
- rt_size_t size;
- rt_size_t count;
- };
- struct fal_flash_dev
- {
- char name[FAL_DEV_NAME_MAX];
- /* flash device start address and len */
- rt_uint32_t addr;
- rt_size_t len;
- /* the block size in the flash for erase minimum granularity */
- rt_size_t blk_size;
- struct
- {
- int (*init)(void);
- int (*read)(long offset, rt_uint8_t *buf, rt_size_t size);
- int (*write)(long offset, const rt_uint8_t *buf, rt_size_t size);
- int (*erase)(long offset, rt_size_t size);
- } ops;
- /* write minimum granularity, unit: bit.
- 1(nor flash)/ 8(stm32f2/f4)/ 32(stm32f1)/ 64(stm32l4)
- 0 will not take effect. */
- rt_size_t write_gran;
- struct flash_blk blocks[FAL_DEV_BLK_MAX];
- };
- typedef struct fal_flash_dev *fal_flash_dev_t;
- /**
- * FAL partition
- */
- struct fal_partition
- {
- rt_uint32_t magic_word;
- /* partition name */
- char name[FAL_DEV_NAME_MAX];
- /* flash device name for partition */
- char flash_name[FAL_DEV_NAME_MAX];
- /* partition offset address on flash device */
- long offset;
- rt_size_t len;
- rt_uint32_t reserved;
- };
- typedef struct fal_partition *fal_partition_t;
- #endif /* _FAL_DEF_H_ */
|