119 lines
4.1 KiB
C
119 lines
4.1 KiB
C
#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
|