- offlog.h: OfflogPart 运行时分区表 + g_offlog_part; AREA_BASE 改 0x090000 (参数64KB+OTA512KB); 容量宏展开为运行时值(主体零改动) - offlog.c: offlog_part_detect() 读 JEDEC ID → 事件区容量 W25Q32=512KB/16256条, Q64=1MB/32640, Q128=2MB/65408, Q256=4MB/130944 - storage.c/h: SPI_Flash_ReadJEDEC_ID() (0x9F, 校验 EF 40) - 旧固件事件区 0x010000 自动废弃(新地址无 magic → 重建), 预期行为 - 测试: mock JEDEC=0x16 + g_offlog_part, 15 例全过 - 文档: BLE/MQTT/TCP 协议 capacity 8064→动态, 交互示例, devlog
42 lines
1.6 KiB
C
42 lines
1.6 KiB
C
#ifndef _STORAGE_H__
|
|
#define _STORAGE_H__
|
|
|
|
#include <stdint.h>
|
|
|
|
#define DEV_NUMER_ADDR_OFFSET 0x10
|
|
#define DEV_SUB_CODE_ADDR_OFFSET 0x20 //2byte [0x20,0x21]
|
|
#define DEV_BUS_BAUD_ADDR_OFFSET 0x22 //8byte [0x22,0x29]
|
|
#define DEV_PASSWORD_ADDR_OFFSET 0x2A //6byte [0x2A, 0x2F]
|
|
|
|
#define NET_LOCAL_CFG_ADDR_OFFSET 0x30 // 0x70 // sizeof(Local_Net_Cfg):32byte
|
|
#define NET_CENTER_CFG_ADDR_OFFSET 0x50 // sizeof(NET_CENTER_INFO): 12byte
|
|
#define IOT_NET_CFG_ADDR 0x60 // sizeof(IOT_NET_INFO):226(0xE2),
|
|
#define IOT_TOPIC_CFG_ADDR (0x60 + 232) // sizeof(IOT_Topic): 129(0x81)
|
|
|
|
|
|
char get_ble_safe_flag(void);
|
|
void open_ble_safe_flag(void);
|
|
void close_ble_safe_flag(void);
|
|
char check_ble_safe_pass(uint8_t * devpass);
|
|
void set_ble_safe_pass(uint8_t * devpass);
|
|
|
|
void alter_dev_serila(uint8_t *serial);
|
|
void alter_dev_baud(uint8_t *baudbuf);
|
|
|
|
void update_sub_code_enable(void);
|
|
|
|
void factory_dev_info(void);
|
|
void output_cfg_from_flash(void);
|
|
void load_cfg_from_flash(void);
|
|
|
|
|
|
void SPI_Flash_Read(uint8_t *pBuffer, uint32_t ReadAddr, uint16_t size);
|
|
void SPI_Flash_Write(uint8_t *pBuffer, uint32_t WriteAddr, uint16_t size);
|
|
void SPI_Flash_Write_NoCheck(uint8_t *pBuffer, uint32_t WriteAddr, uint16_t size);
|
|
void SPI_Flash_Erase_Sector(uint32_t Dst_Addr);
|
|
|
|
void storage_init(void);
|
|
uint8_t SPI_Flash_ReadJEDEC_ID(void); /* 0x9F JEDEC device id (W25Q32=0x16...) */
|
|
|
|
#endif
|