BLE_TYQ_BJQ_CH584M/bsp/inc/bsp_flash.h

51 lines
2.5 KiB
C
Raw Normal View History

2024-12-07 17:09:36 +08:00
#ifndef __BSP_FLASH_H__
#define __BSP_FLASH_H__
#include "CH58x_common.h"
/*CH584具有data_flash和code flash两部分。 codeflash为448k dataflash为32k
CodeFlash读操作是有硬件加扰的FFDataFlash读操作没有硬件加扰
CodeFlash和DataFlash都可以直接指针读数据()
0x00000000-0x0006FFFF CodeFlash 448KB
0x00070000-0x00077FFF DataFlash 32KB
0x00078000-0x0007DFFF BootLoader 24KB
0x0007E000-0x0007FFFF InfoFlash 8KB
*/
/*BLE蓝牙falsh写入注意地址是相对于dataflash的而dataflash的起始地址是0x3FFF所以传入的参数是0x3FFF+offset
https://www.cnblogs.com/JayWellsBlog/p/18223898
/buff缓存在ram中的地址4hardfault复位
https://www.cnblogs.com/iot-fan/p/16053937.html
*/
#define DATA_FALASH_START_ADDR (0X3FFF) // 传入的是相对地址,用对函数即可
#define DATA_FLASH_PAGE_SIZE (256U)
#define FLASH_MAC_INFO_LEN (6U)
#define FLASH_MAC_NUM_LEN (1U)
#define FLASH_INFO_WRITE_FLAG_LEN (4U)
#define FLASH_INFO_ADDR (DATA_FALASH_START_ADDR)
#define FLASH_MAC_INFO_START_ADDR (DATA_FALASH_START_ADDR) // 绝对地址
#define FLASH_MAC_1_ADDR FLASH_MAC_INFO_START_ADDR
#define FLASH_MAC_2_ADDR (FLASH_MAC_1_ADDR + FLASH_MAC_INFO_LEN)
#define FLASH_MAC_3_ADDR (FLASH_MAC_2_ADDR + FLASH_MAC_INFO_LEN)
#define FLASH_MAC_4_ADDR (FLASH_MAC_3_ADDR + FLASH_MAC_INFO_LEN)
#define FLASH_MAC_5_ADDR (FLASH_MAC_4_ADDR + FLASH_MAC_INFO_LEN)
#define FLASH_MAC_6_ADDR (FLASH_MAC_5_ADDR + FLASH_MAC_INFO_LEN)
#define FLASH_MAC_7_ADDR (FLASH_MAC_6_ADDR + FLASH_MAC_INFO_LEN)
#define FLASH_MAC_8_ADDR (FLASH_MAC_7_ADDR + FLASH_MAC_INFO_LEN)
#define FLASH_MAC_NUM_ADDR (FLASH_MAC_8_ADDR + FLASH_MAC_INFO_LEN) // 用来记录有效的mac地址数量
#define FLASH_INFO_WRITE_FLAG_ADDR (FLASH_MAC_NUM_ADDR + FLASH_MAC_NUM_LEN)
#define FLASH_INFO_WRITE_FLAG_VAL (0XAABBCCDD)
int Flash_Set_Mac_Addr(uint8_t *mac_addr, uint8_t number);
int Flash_Get_Mac_Addr(uint8_t *mac_addr, uint8_t number);
int Flash_Set_Valve_Num(uint8_t valve_num);
uint8_t Flash_Get_Valve_Num(void);
void BSP_FLASH_Init(void);
#endif // !__BSP_FLASH_H__