12345678910111213141516171819202122232425262728293031323334353637 |
- /*****************************************************************************
- Storage.h
- *****************************************************************************/
- #ifndef _STORAGE_H
- #define _STORAGE_H
- /*****************************************************************************/
- #include <stm32f10x.h>
- #include "ProtocolPack.h"
- /*
- 每个Position占64字节,1MB可存16384条记录 3MB可存49152条记录,每5秒一条记录,则可存68小时(2.8天)
- */
- #define STORAGE_POS_START_ADDR 0x00100000 //存储Position记录起始地址 1MB开始
- #define STORAGE_POS_END_ADDR 0x00400000 //存储Position记录结束地址
- #define STORAGE_POS_LEN 64 //每个Position 记录所占长度
- #define STORAGE_POS_COUNT_SECTOR (4096/STORAGE_POS_LEN) //每个SECTOR可以存放的记录个数
- #define STORAGE_POS_COUNT_TOTAL ((STORAGE_POS_END_ADDR-STORAGE_POS_START_ADDR)/STORAGE_POS_LEN) //总共可存储的记录个数
- #define STORAGE_POS_MARK 0x11223355
- #define STORAGE_POS_FLAG 0x58
- //保存在外部FLASH的系统参数
- typedef struct SUT_STORAGE_FIFO
- {
- int out;//指向队头的索引,这个所指空间有元数,先读出后位移
- int in; //指向对尾的索引,这个所指的空间为空,先写入后位移
- int len;//元素个数,只用于调试阶段判断是否异常,队列操作不以此为控制
- }__attribute__((packed)) SUT_STORAGE_FIFO;
- extern SUT_STORAGE_FIFO sutStorageFiFo;
- void StorageFiFoInit(void);//
- void StorageFiFoTest(void);
- void StorageCtrlSavePos(void);
- int StorageFiFoPop(SUT_POSITION *pPos);
- /*****************************************************************************/
- #endif
- /*****************************************************************************/
|