/* * @Author : stark1898y 1658608470@qq.com * @Date : 2024-12-12 15:54:51 * @LastEditors : stark1898y 1658608470@qq.com * @LastEditTime : 2024-12-12 16:34:01 * @FilePath : \BLE_TYQ_CH584M\BSP\inc\bsp_flash.h * @Description : * * Copyright (c) 2024 by yzy, All Rights Reserved. */ #ifndef __BSP_FLASH_H__ #define __BSP_FLASH_H__ #include "CONFIG.h" /*CH584具有data_flash和code flash两部分。 codeflash为448k dataflash为32k CodeFlash读操作是有硬件加扰的,也就是擦除后读不是全FF,而是四个固定字节的循环,DataFlash读操作没有硬件加扰 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中的地址,一定要4字节对齐,否则可能导致hardfault复位 问题排查 https://www.cnblogs.com/iot-fan/p/16053937.html */ #define DATA_FALASH_START_ADDR (0X3FFF) // 传入的是相对地址,用对函数即可 #define DATA_FLASH_PAGE_SIZE (256U) #define FLASH_INFO_ADDR (DATA_FALASH_START_ADDR) #define FLASH_INFO_WRITE_FLAG_ADDR (DATA_FALASH_START_ADDR) #define FLASH_INFO_WRITE_FLAG_VAL (0XAABBCCDD) #define FLASH_INFO_WRITE_FLAG_LEN (4U) void BSP_FLASH_Init(void); #endif // !__BSP_FLASH_H__