⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hardware.h

📁 USB 软件配置的具体工程
💻 H
📖 第 1 页 / 共 2 页
字号:
#define MMC_UNTAG_GROUP           37
#define MMC_ERASE                38   			// ac                      R1b 
                                      // class 6 */                                                      
#define MMC_SET_WRITE_PROT       28   	// ac   [31:0] data addr   R1b 
#define MMC_CLR_WRITE_PROT       29   	// ac   [31:0] data addr   R1b 
#define MMC_SEND_WRITE_PROT      30   	// adtc [31:0] wpdata addr R1  
                                                                     
                                          // class 7 */
#define MMC_LOCK_UNLOCK          42   		// adtc                    R1b 

                                            //class 8 */
#define MMC_IO_RW_DIRECT         53   		//                         R5  
#define MMC_IO_RW_EXTEND         54   		//                        R5  
#define MMC_APP_CMD              55   		// ac   [31:16] RCA        R1  
#define MMC_GEN_CMD              56   		//adtc [0] RD/WR          R1b

                                       // class 9 */                                                       
#define MMC_FAST_IO              39   			// ac   <Complex>          R4   
#define MMC_GO_IRQ_STATE         40   		// bcr                     R5                                                       
                  
                                                    
                                                    
#define R1_OUT_OF_RANGE		(1 << 31)       /* er, c */                  
#define R1_ADDRESS_ERROR	(1 << 30)	/* erx, c */                         
#define R1_BLOCK_LEN_ERROR	(1 << 29)	/* er, c */                                  
#define R1_ERASE_SEQ_ERROR      (1 << 28)	/* er, c */                                  
#define R1_ERASE_PARAM		(1 << 27)	/* ex, c */                                  
#define R1_WP_VIOLATION		(1 << 26)	/* erx, c */                 
//#define R1_CARD_IS_LOCKED	(1 << 25)	/* sx, a */                                  
//#define R1_LOCK_UNLOCK_FAILED	(1 << 24)	/* erx, c */                                 
#define R1_COM_CRC_ERROR	(1 << 23)	/* er, b */                          
#define R1_ILLEGAL_COMMAND	(1 << 22)	/* er, b */                                  
//#define R1_CARD_ECC_FAILED	(1 << 21)	/* ex, c */                                  
//#define R1_CC_ERROR		(1 << 20)	/* erx, c */                                 
#define R1_ERROR		(1 << 19)	/* erx, c */                         
#define R1_stream_read_sustain		(1 << 18)	/* ex, c */                                  
#define R1_stream_write_sustain		(1 << 17)	/* ex, c */                                  
#define R1_CID_CSD_OVERWRITE	(1 << 16)	/* erx, c, CID/CSD overwrite */     
#define R1_WP_ERASE_SKIP	(1 << 15)	/* sx, c */                         
//#define R1_CARD_ECC_DISABLED	(1 << 14)	/* sx, a */                         
#define R1_ERASE_RESET		(1 << 13)	/* sr, c */                         
//#define R1_STATUS(x)           (x & 0xFFFFE000)                                    
//#define R1_CURRENT_STATE(x)    ((x & 0x00001E00) >> 9)	/* sx, b (4 bits) *//
#define R1_READY_FOR_DATA	(1 << 8)	/* sx, a */                         	               
//#define R1_APP_CMD		(1 << 7)	/* sr, c */                                                      
                                         
                                         
 enum mmc_result_t {                        	               
 	MMC_NO_RESPONSE        = -1, 
 	MMC_NO_ERROR           = 0,  
 	MMC_ERROR_OUT_OF_RANGE,      
 	MMC_ERROR_ADDRESS,           
 	MMC_ERROR_BLOCK_LEN,         
 	MMC_ERROR_ERASE_SEQ,         
 	MMC_ERROR_ERASE_PARAM,       
 	MMC_ERROR_WP_VIOLATION,      
 	MMC_ERROR_CARD_IS_LOCKED,    
 	MMC_ERROR_LOCK_UNLOCK_FAILED,
 	MMC_ERROR_COM_CRC,           
 	MMC_ERROR_ILLEGAL_COMMAND,   
 	MMC_ERROR_CARD_ECC_FAILED,   
 	MMC_ERROR_CC,                
 	MMC_ERROR_GENERAL,           
 	MMC_ERROR_UNDERRUN,          
 	MMC_ERROR_OVERRUN,           
 	MMC_ERROR_CID_CSD_OVERWRITE, 
 	MMC_ERROR_STATE_MISMATCH,    
 	MMC_ERROR_HEADER_MISMATCH,   
 	MMC_ERROR_TIMEOUT,           
 	MMC_ERROR_CRC,               
 	MMC_ERROR_DRIVER_FAILURE=21,
  	MMC_OCR_ERROR=99     
 };
 enum mmcc_result_t { 
 	END_CMD_RESP=55, 
 	TIME_OUT_RESP=66,
 	RESP_CRC_ERR=77, 
 	CRC_ERROR=88,
 	Tx_Fifo_Read_Error,
 	Rx_Fifo_Write_Error,
 	TIME_OUT_READ=99
 };                                         
  
                                        
                                                    
/****************************************
	functions for all modules
****************************************/

/*RTC*/
extern void init_rtc(void);
extern ER set_ymd(U32 year, U32 month, U32 day);
extern ER set_hms(U32 hour, U32 minute, U32 second);
extern ER get_ymd(U32* year, U32 * month, U32* day);
extern ER get_hms(U32* hour, U32* minute, U32* second);
extern ER set_alarmtime(U32 hour, U32 minute);
extern ER rtc_int_en(BOOL alarm, BOOL wdog, BOOL samp, BOOL minroll, BOOL secroll);
extern ER set_samp(U32 frequency);
extern ER set_wdog_cont(U32 count);
extern ER int_serv_rtc(void);

/*UART*/
extern ER init_uart1(U32 sysclk, U32 baudrate, U32 databit, U32 trigerlevel );
extern ER uart_int_en(U32 recie, U32  thrie);
extern ER int_serv_uart1(void);
extern ER HA_WR_UART1( U32  DATA  );

/*GPT*/
extern void init_gpt1(void);
extern ER gpt_int_en(U32 comp);
extern ER int_serv_gpt1(void);

/*PWM*/
//extern ER init_pwm1(void);
extern ER int_serv_pwm(void);

/*LCDC*/
extern ER init_lcdc(void);  
extern ER lcd_draw(U8 x1, U8 y1, U8 x2, U8 y2, U8 color);
extern ER meiz(void);
extern ER turn(void);

/*INTC*/
extern ER init_intc( void );

/*GPIO*/
void port_test(void);

#define set_plevel(plevel)		\
	*(RP)INTC_PLV =  plevel

#define set_int_force(intnum)		\
	*(RP)INTC_IFCE = (1 << intnum)
	
#define irq_enable(intnum)	\
	*(RP)INTC_IEN |= (1 << intnum)

#define irq_disable( intnum)	\
	*(RP)INTC_IEN &= ~(1<< intnum)
	
#define mask_irq(intnum)		\
	*(RP)INTC_IMSK |= (1 << intnum)
	
#define unmask_irq(intnum)	\
	*(RP)INTC_IMSK &= ~(1 << intnum)

#define mask_all_irq() 	\
	*(RP)INTC_IMSK = 0xFFFFFFFF

#define unmask_all_irq()		\
	*(RP)INTC_IMSK = 0x00000000

#define enable_all_irq()		\
	*(RP)INTC_IEN = 0XFFFFFFFF

#define disable_all_irq()	\
	*(RP)INTC_IEN = 0X00000000


/*SPI*/
extern ER HA_INITSPI(void);
extern ER HA_SPI_HANDLE(void);
extern ER usbinit(void);


/*EMI*/ 
U32 HA_INIT_EMI(U32 gloabalvar_add);
ER  clear(U32 tempadd, U32 num);
ER  HA_EMI_WRIT(U32 add, U32 data);
ER  HA_DMA_DATADEFINE(U32 beginadd, U32 num, U32 size);
U32 HA_DMA_DATADCHECK(U32 beginadd, U32 num, U32 size, U32 gloabalvar_add)	;

U32 HA_INIT_NANDFLASH(U32 gloabalvar_add);
ER HA_NAND_READ(void);
ER HA_NAND_WRIT(void);

ER HA_NandFlash(void);
ER HA_NandFlash_IdRead(U32 gloabalvar_add);
ER HA_NandFlash_BadBlcokHandler(void);


ER NorFlash_write( U32 Pageadd, U32 data );
ER NorFlash_read( U32 address);
ER NorFlash_unlock( U32 address);
ER NorFlash_idlejud(U32 address);
ER NorFlash_clearSR(void);
ER NorFlash_bolckerase(U32 blockadd);
ER NorFlash_Normal(U32 address);

void Nand_ph5set(void);








/****************************************
	macros  for write and read registers
****************************************/
#define write_reg(reg, data) \
	*(RP)reg = data

#define read_reg(reg) \
	*(RP)reg



#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -