WXK
2024-09-18 05e2e954bd127de378a9d1dfbb0ed95d725aad63
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
#ifndef __INFO_H__
#define __INFO_H__
 
#include "PANSeries.h"
 
#define CONFIG_SIMULATE_WRITE_INFO                               0
#define CONFIG_UART_OUTPUT_INFO                                  0
 
#define INFO_VERSION_16_BITS                                0x0004
 
#define INFO_TYPE_TX_PWR                                         0
#define INFO_TYPE_PHY_INIT                                       1
#define INFO_TYPE_POST_TX_CONFIG                                 2
#define INFO_TYPE_POST_RX_CONFIG                                 3
#define INFO_TYPE_PRE_TX_CONFIG_PRF                              4
#define INFO_TYPE_PRE_RX_CONFIG_PRF                              5
#define INFO_TYPE_PRE_TX_CONFIG_2M_PRF                           6
#define INFO_TYPE_PRE_RX_CONFIG_2M_PRF                           7
#define INFO_TYPE_PRE_TX_CONFIG_LR                               8
#define INFO_TYPE_PRE_RX_CONFIG_LR                               9
#define INFO_TYPE_PRE_TX_CONFIG_250K_PRF                         10
#define INFO_TYPE_PRE_RX_CONFIG_250K_PRF                         11
#define INFO_TYPE_PRE_EVNT_CONFIG                                12
#define INFO_TYPE_POST_EVNT_CONFIG                               13
#define INFO_TYPE_DCOC_LIMIT                                     14
#define INFO_TYPE_CONSTANT_TONE                                  15
#define INFO_TYPE_MAX                                            16
 
#define INFO_HEADER_LEN                                           4
#define TLV_HEAD_LEN                                              3
#define TLV_TYPE_LEN                                              1
#define TLV_LEN_LEN                                               2
 
#define INFO_TOTAL_LEN_MAX                                        (3*1024 - 4)
 
#define INFO_READ_BUFFER_LEN                                      512
#define INFO_ITER_READ_BUFFER_LEN                                 32
 
#define CRC_LEN                                                   4
 
#define INFO_READ_OFFSET                                          0x400
#define INFO_READ_SIZE                                            0xC00
 
extern uint16_t info_value_size(void);
 
extern void info_value_tlv_value_output(void);
 
extern void send_raw_value(uint8_t* ptr, uint32_t len);
 
extern uint16_t get_info_crc(void);
 
extern void total_tlv_data_output(void);
 
extern void send_uart_raw_value(uint8_t* ptr, uint32_t len);
 
extern void info_value_tlv_value_uart_output(void);
 
extern void total_tlv_uart_data_output(void);
 
bool check_info_tlv_data(void);
 
extern void start_overwrite_info(void);
 
extern void start_read_info(void);
 
extern void start_read_1k_info(void);
 
extern uint16_t info_read_from_type(uint8_t type, void* data, uint16_t len, uint16_t offset);
 
extern bool info_data_is_valid(void);
 
extern bool check_info_is_empyt(void);
 
extern uint16_t phy_value_init_from_code(void);
extern uint16_t phy_value_init_from_info(void);
 
struct tlv_item {
    uint16_t addr;
    uint16_t len;
};
 
extern const uint8_t dcoc_init_limit_prf[];
extern struct tlv_item tlv_items[INFO_TYPE_MAX];
 
extern uint32_t* g_phy_pre_tx_1M_ptr;
extern uint32_t* g_phy_pre_tx_2M_ptr;
extern uint32_t* g_phy_pre_tx_LR_ptr;
extern uint32_t* g_phy_pre_tx_250K_ptr;
extern uint32_t* g_phy_pre_rx_1M_ptr;
extern uint32_t* g_phy_pre_rx_2M_ptr;
extern uint32_t* g_phy_pre_rx_LR_ptr;
extern uint32_t* g_phy_pre_rx_250K_ptr;
extern uint32_t* g_phy_post_tx_ptr;
extern uint32_t* g_phy_post_rx_ptr;
extern uint32_t* g_phy_pre_event_ptr;
extern uint32_t* g_phy_post_event_ptr;
extern uint32_t* g_phy_constant_tone_ptr;
 
#endif