Initial commit

This commit is contained in:
2026-04-06 19:02:09 +08:00
commit d186d7dcc7
743 changed files with 521821 additions and 0 deletions

118
FW/Core/my_src/HW_config.h Normal file
View File

@@ -0,0 +1,118 @@
#ifndef HW_CONFIG_H_
#define HW_CONFIG_H_
#include "main.h"
#define UART_RX_BUF_MAX 512//272
#define UART_TX_BUF_MAX 512//128
#define USB_CDC_BUF_MAX 272
typedef struct uart_def_8bit
{
unsigned char rx_buf[UART_RX_BUF_MAX];
unsigned short rx_len;
unsigned short rx_index;
unsigned short rx_complete;
unsigned short rsv;
unsigned char tx_buf[UART_TX_BUF_MAX];
unsigned short tx_len;
unsigned short tx_index;
unsigned short tx_none_buf;
unsigned short tx_complete;
unsigned short tx_complete_delay_flag;
unsigned short tx_complete_delay_tick;
}uart_info_8bit_struct;
typedef struct
{
unsigned char rx_buf[USB_CDC_BUF_MAX];
unsigned int rx_len;
unsigned int rx_complete;
unsigned char tx_buf[USB_CDC_BUF_MAX];
unsigned int tx_len;
unsigned int tx_complete;
unsigned int tx_complete_delay_flag;
unsigned int tx_complete_delay_tick;
}T_usb_cdc_data_struct;
typedef union{
unsigned char D8[256];
unsigned int D32[64];
}TdataType;
typedef union{
uint32_t val_32[3];
uint8_t val_8[12];
}uid_union;
/* Exported types ------------------------------------------------------------*/
typedef enum {PASSED = 0, FAILED = !PASSED} TestStatus_t;
/* Exported constants --------------------------------------------------------*/
#define SDRAM_BANK_ADDR ((uint32_t)0xC0000000)
/* #define SDRAM_MEMORY_WIDTH FMC_SDRAM_MEM_BUS_WIDTH_8 */
/* #define SDRAM_MEMORY_WIDTH FMC_SDRAM_MEM_BUS_WIDTH_16 */
#define SDRAM_MEMORY_WIDTH FMC_SDRAM_MEM_BUS_WIDTH_32
#define SDCLOCK_PERIOD FMC_SDRAM_CLOCK_PERIOD_2
/* #define SDCLOCK_PERIOD FMC_SDRAM_CLOCK_PERIOD_3 */
#define SDRAM_TIMEOUT ((uint32_t)0xFFFF)
//刷新频率计数器(以SDCLK频率计数),计算方法:
//COUNT=SDRAM刷新周期/行数-20=SDRAM刷新周期(us)*SDCLK频率(Mhz)/行数
//我们使用的SDRAM刷新周期为64ms,SDCLK=240/3=80Mhz,行数为8192(2^13).
//所以,COUNT=64*1000*80/8192-20=677
#define REFRESH_COUNT ((uint32_t)625) /* SDRAM refresh counter */
#define SDRAM_MODEREG_BURST_LENGTH_1 ((uint16_t)0x0000)
#define SDRAM_MODEREG_BURST_LENGTH_2 ((uint16_t)0x0001)
#define SDRAM_MODEREG_BURST_LENGTH_4 ((uint16_t)0x0002)
#define SDRAM_MODEREG_BURST_LENGTH_8 ((uint16_t)0x0004)
#define SDRAM_MODEREG_BURST_TYPE_SEQUENTIAL ((uint16_t)0x0000)
#define SDRAM_MODEREG_BURST_TYPE_INTERLEAVED ((uint16_t)0x0008)
#define SDRAM_MODEREG_CAS_LATENCY_2 ((uint16_t)0x0020)
#define SDRAM_MODEREG_CAS_LATENCY_3 ((uint16_t)0x0030)
#define SDRAM_MODEREG_OPERATING_MODE_STANDARD ((uint16_t)0x0000)
#define SDRAM_MODEREG_WRITEBURST_MODE_PROGRAMMED ((uint16_t)0x0000)
#define SDRAM_MODEREG_WRITEBURST_MODE_SINGLE ((uint16_t)0x0200)
extern uid_union uid_value;
extern unsigned int usb_is_host;
extern uart_info_8bit_struct uart_info_8bit[8];
extern T_usb_cdc_data_struct usb_cdc_data;
extern void uart_tx_trigger(unsigned int uart_ord);
extern void uart_tx_load_data(unsigned int uart_ord, unsigned char * p_data, unsigned int len);
extern unsigned int get_uart_tx_complete(unsigned int uart_ord);
extern unsigned int get_uart_tx_complete_delay_flag(unsigned int uart_ord);
extern void uart_tx_complete_delay(void);
extern void uart_tx_over(unsigned int uart_ord, unsigned char * p_data, unsigned int len);
extern void uart_load_txbuf(unsigned int uart_ord, unsigned char * p_data, unsigned int len);
extern void SDRAM_Initialization_Sequence(SDRAM_HandleTypeDef *hsdram, FMC_SDRAM_CommandTypeDef *Command);
extern void HW_init(void);
extern unsigned int check_sum8(unsigned char* p_data,unsigned int data_length);
extern unsigned int check_open_password(unsigned int check_value);
extern unsigned int check_open_password_isenable(void);
extern unsigned int check_auth_function_isenable(void);
extern void set_open_password_isover(void);
extern void set_auth_function_able(unsigned int able);
extern void usb_host_to_device(void);
extern void usb_device_to_host(void);
extern unsigned int Crc32Cal(unsigned int * SourceData, unsigned int Length);
extern void Crc32Reset(void);
extern void Crc32Feed(unsigned int aVal);
extern unsigned int Crc32GetResult();
#endif