ParaMge_F4.h
3.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
#ifndef __PARAMGE_F4_H_
#define __PARAMGE_F4_H_
#include "stdint.h"
#include "ParaMge_Common.h"
// paraMge 参数管理模块
// 参数管理模块负责数据从Flash到参数缓冲区,其数据应当保证在模块中流通
// 所有对外的数据必须经过API进行输出
//
// paraMge
// +-------------------------------------------------------+
// | |
// | |
// | ,'''''''''''''''''''''''''''''''| |
// | | FLASH | |
// | `...............................| |
// | | |
// | | |
// | | |
// | ,''''''''''''''''''''''''''''''''''''''''''''| |
// | | | |
// | | Cache | |
// | | | |
// | `'''''''''''''''''|''''|'''''''''''''''''''' |
// | | | |
// +------------------.....|....|......--------------------+
// | |
// | API |
// "---------------'
typedef struct
{
uint16_t crcSum; //! crcSum在第一位,校验时忽略该位
uint32_t version;
uint32_t SaveTimes;
_PARAMGE_CONFIG_MOTCOM motComSetting[3];
} _PARAMGE_CONFIG_AIO;
#pragma pack() /*恢复字节对齐*/
//结构体&联合体大小检查,在vscode下鼠标放在sizeof上可以看到结构体大小
// NOTE: 注意使用正确的编译器 arm-gcc
// int testSizeOf = sizeof(_BMCL_CONFIG_MOT);
extern uint32_t BMCL_mot_Calibration;
extern int32_t bmcl_config_mot_select;
/**
* @brief paraMge 初始化
* @return 自行设计返回结果,用于错误处理
*/
int paraMge_Init();
// /// @brief paraMge 返回版本号(暂未设计)
// /// @return 返回当前Flash中的paraMge版本号
// int paraMge_GetVerion();
/**
* @brief paraMge 返回储存状态()
* @return 返回储存状态
*/
__PARAMGE_DEF_STORAGE_STA paraMge_StorageSTA();
/**
* @brief paraMge 获取GenPID的参数
* @param[in] index GenPID索引 : 要获取的GenPID的索引
* @param[out] dest GenPID模板指针 : 返回获取的GenPID
* @return 返回读取结果状态
*/
int paraMge_GetGenPID(__PARAMGE_INDEX_GENPID index, __PARAMGE_TEMP_GENPID *dest,__PARAMGE_INDEX_MOT MOT);
/**
* @brief paraMge 写入GenPID的参数,该操作不写入Flash中,仅缓存
* @param index GenPID索引 : 要写入的GenPID的索引
* @param dest GenPID模板指针 : 写入的GenPID的指针
* @return 返回写入结果状态
*/
int paraMge_WriteGenPID(__PARAMGE_INDEX_GENPID index, __PARAMGE_TEMP_GENPID *src,__PARAMGE_INDEX_MOT MOT);
int paraMge_GetKPF(__PARAMGE_INDEX_KPF index, __PARAMGE_TEMP_KPF *dest,__PARAMGE_INDEX_MOT MOT);
int paraMge_WriteGenKPF(__PARAMGE_INDEX_KPF index, __PARAMGE_TEMP_KPF *src,__PARAMGE_INDEX_MOT MOT);
int paraMge_GetINIF(__PARAMGE_INDEX_INIF index, __PARAMGE_TEMP_INTF *dest,__PARAMGE_INDEX_MOT MOT);
int paraMge_WriteINIF(__PARAMGE_INDEX_INIF index, __PARAMGE_TEMP_INTF *src,__PARAMGE_INDEX_MOT MOT);
int paraMge_GetMOT(__PARAMGE_TEMP_MOT *dest,__PARAMGE_INDEX_MOT MOT);
int paraMge_WriteMOT( __PARAMGE_TEMP_MOT *src,__PARAMGE_INDEX_MOT MOT);
/**
* @brief paraMge 从Flash中读取到缓冲区
* @return 读取状态
*/
__PARAMGE_DEF_STORAGE_STA paraMge_ReadALL();
/**
* @brief paraMge 从缓冲区写入到Flash中
* @return 返回写入保存状态
*/
__PARAMGE_DEF_SAVE_STA paraMge_SaveALL();
/**
* @brief paraMge 返回保存次数
* @return 保存次数
*/
uint32_t paraMge_GetSaveTimes(uint32_t opADDR);
int bmcl_Config_Init();
int Para_Init();
#endif