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

📄 sdms.h

📁 嵌入式linux(arm9)的平台下
💻 H
字号:
#ifndef SDMS_H#define SDMS_H#include "example.h"#define SDMS_BASE       0xb0600000#define SDMS1_BASE      0xb0680000#define SD_TXFIFO      0x0000#define SD_RXFIFO      0x0004#define SD_CONFIG      0x0008#define SD_ENABLE      0x000c#define SD_CTRL        0x0010#define SD_BLKSZE      0x0014#define SD_STATUS      0x0018#define SD_DEBUG       0x001c#define SD_CMD         0x0020#define SD_CMDARG      0x0024#define SD_RESP2       0x002c#define SD_RESP1       0x0030#define SD_RESP0       0x0034#define SD_TOCNT       0x0038#define sync()	asm("sync")#define wait()	asm("wait")#define nop()	asm("nop")#define REG32(addr)	(*(volatile unsigned int *)(addr))//// GLOBAL VARIABLES//#define sd0	SDMS_BASE#define sd1	SDMS1_BASE#define sdms_txfifo(base)  REG32(base + SD_TXFIFO)#define sdms_rxfifo(base)  REG32(base + SD_RXFIFO)#define sdms_config(base)  REG32(base + SD_CONFIG)#define sdms_enable(base)  REG32(base + SD_ENABLE)#define sdms_ctrl(base)    REG32(base + SD_CTRL)#define sdms_blksze(base)  REG32(base + SD_BLKSZE)#define sdms_status(base)  REG32(base + SD_STATUS)#define sdms_debug(base)   REG32(base + SD_DEBUG)#define sdms_cmd(base)     REG32(base + SD_CMD)#define sdms_cmdarg(base)  REG32(base + SD_CMDARG)#define sdms_resp3(base)   REG32(base + SD_RESP3)#define sdms_resp2(base)   REG32(base + SD_RESP2)#define sdms_resp1(base)   REG32(base + SD_RESP1)#define sdms_resp0(base)   REG32(base + SD_RESP0)#define sdms_tocnt(base)   REG32(base + SD_TOCNT)//// interrupt business//#define config0_read				REG32(IC0_BASE + IC_CFG0RD)#define config0_set					REG32(IC0_BASE + IC_CFG0SET)#define config0_clear				REG32(IC0_BASE + IC_CFG0CLR)#define config1_read				REG32(IC0_BASE + IC_CFG1RD)#define config1_set					REG32(IC0_BASE + IC_CFG1SET)#define config1_clear				REG32(IC0_BASE + IC_CFG1CLR)#define config2_read				REG32(IC0_BASE + IC_CFG2RD)#define config2_set					REG32(IC0_BASE + IC_CFG2SET)#define config2_clear				REG32(IC0_BASE + IC_CFG2CLR)#define	request0_int				REG32(IC0_BASE + IC_REQ0INT)#define source_read					REG32(IC0_BASE + IC_SRCRD)#define	source_set					REG32(IC0_BASE + IC_SRCSET)#define source_clear				REG32(IC0_BASE + IC_SRCCLR)#define request1_int				REG32(IC0_BASE + IC_REQ1INT)#define assign_request_read			REG32(IC0_BASE + IC_ASSIGNRD)#define assign_request_set			REG32(IC0_BASE + IC_ASSIGNSET)#define assign_request_clear		REG32(IC0_BASE + IC_ASSIGNCLR)#define wakeup_read					REG32(IC0_BASE + IC_WAKERD)#define wakeup_set					REG32(IC0_BASE + IC_WAKESET)#define wakeup_clear				REG32(IC0_BASE + IC_WAKECLR)#define mask_read					REG32(IC0_BASE + IC_MASKRD)#define mask_set					REG32(IC0_BASE + IC_MASKSET)#define mask_clear					REG32(IC0_BASE + IC_MASKCLR)#define rising_edge_detect			REG32(IC0_BASE + IC_RISINGRD)#define rising_edge_detect_clear	REG32(IC0_BASE + IC_RISINGCLR)#define falling_edge_detect			REG32(IC0_BASE + IC_FALLINGRD)#define falling_edge_detect_clear	REG32(IC0_BASE + IC_FALLINGCLR)#define test_bit					REG32(IC0_BASE + 0x0080)#define	IC0_BASE	0xB0400000#define	IC1_BASE	0xB1800000/* * Register Offsets */#define	IC_CFG0RD		(0x0040)#define	IC_CFG0SET		(0x0040)#define	IC_CFG0CLR		(0x0044)#define	IC_CFG1RD		(0x0048)#define	IC_CFG1SET		(0x0048)#define	IC_CFG1CLR		(0x004C)#define	IC_CFG2RD		(0x0050)#define	IC_CFG2SET		(0x0050)#define	IC_CFG2CLR		(0x0054)#define	IC_REQ0INT		(0x0054)#define	IC_SRCRD		(0x0058)#define	IC_SRCSET		(0x0058)#define	IC_SRCCLR		(0x005C)#define	IC_REQ1INT		(0x005C)#define	IC_ASSIGNRD		(0x0060)#define	IC_ASSIGNSET	(0x0060)#define	IC_ASSIGNCLR	(0x0064)#define	IC_WAKERD		(0x0068)#define	IC_WAKESET		(0x0068)#define	IC_WAKECLR		(0x006C)#define	IC_MASKRD		(0x0070)#define	IC_MASKSET		(0x0070)#define	IC_MASKCLR		(0x0074)#define	IC_RISINGRD		(0x0078)#define	IC_RISINGCLR	(0x0078)#define	IC_FALLINGRD	(0x007C)#define	IC_FALLINGCLR	(0x007C)/* * Interrupt Controller 0 mappings */#define IC0_UART0					0#define IC0_UART1					1#define IC0_UART2					2#define IC0_UART3					3#define IC0_SSI0					4#define IC0_SSI1					5#define IC0_DMA0					6#define IC0_DMA1					7#define IC0_DMA2					8#define IC0_DMA3					9#define IC0_DMA4					10#define IC0_DMA5					11#define IC0_DMA6					12#define IC0_DMA7					13#define IC0_PC0						14#define IC0_TOY						14#define IC0_PC0Match0				15#define IC0_PC0Match1				16#define IC0_PC0Match2				17#define IC0_PC1						18#define IC0_RTC						18#define IC0_PC1Match0		  		19#define IC0_PC1Match1		  		20#define IC0_PC1Match2		  		21#define IC0_IRDATransmit	  		22#define IC0_IRDAReceive		  		23#define IC0_USBDevice		  		24#define IC0_USBDeviceSuspend  		25#define IC0_USBHost					26#define IC0_ACSYNC					27#define IC0_MAC0					28#define IC0_MAC1					29#define IC0_I2S						30#define IC0_AC97					31#define IC0_UART0_MASK				(1<<IC0_UART0)#define IC0_UART1_MASK				(1<<IC0_UART1)#define IC0_UART2_MASK				(1<<IC0_UART2)#define IC0_UART3_MASK				(1<<IC0_UART3)#define IC0_SSI0_MASK				(1<<IC0_SSI0)#define IC0_SSI1_MASK				(1<<IC0_SSI1)#define IC0_DMA0_MASK				(1<<IC0_DMA0)#define IC0_DMA1_MASK				(1<<IC0_DMA1)#define IC0_DMA2_MASK				(1<<IC0_DMA2)#define IC0_DMA3_MASK				(1<<IC0_DMA3)#define IC0_DMA4_MASK				(1<<IC0_DMA4)#define IC0_DMA5_MASK				(1<<IC0_DMA5)#define IC0_DMA6_MASK				(1<<IC0_DMA6)#define IC0_DMA7_MASK				(1<<IC0_DMA7)#define IC0_PC0_MASK				(1<<IC0_PC0)#define IC0_TOY_MASK				(1<<IC0_TOY)#define IC0_PC0Match0_MASK			(1<<IC0_PC0Match0)#define IC0_PC0Match1_MASK			(1<<IC0_PC0Match1)#define IC0_PC0Match2_MASK			(1<<IC0_PC0Match2)#define IC0_PC1_MASK				(1<<IC0_PC1)#define IC0_RTC_MASK				(1<<IC0_RTC)#define IC0_PC1Match0_MASK			(1<<IC0_PC1Match0)#define IC0_PC1Match1_MASK			(1<<IC0_PC1Match1)#define IC0_PC1Match2_MASK			(1<<IC0_PC1Match2)#define IC0_IRDATransmit_MASK	   	(1<<IC0_IRDATransmit)#define IC0_IRDAReceive_MASK	   	(1<<IC0_IRDAReceive)#define IC0_USBDevice_MASK			(1<<IC0_USBDevice)#define IC0_USBDeviceSuspend_MASK  	(1<<IC0_USBDeviceSuspend)#define IC0_USBHost_MASK			(1<<IC0_USBHost)#define IC0_ACSYNC_MASK				(1<<IC0_ACSYNC)#define IC0_MAC0_MASK				(1<<IC0_MAC0)#define IC0_MAC1_MASK				(1<<IC0_MAC1)#define IC0_I2S_MASK				(1<<IC0_I2S)#define IC0_AC97_MASK				(1<<IC0_AC97)typedef unsigned int uchar;typedef unsigned int * puchar;typedef struct _sdms_param{  uint32 rca;  uint32 bus_width;  uint32 rd_blk_len;  uint32 rd_blk_partial;  uint32 wr_blk_len;  uint32 wr_blk_partial;  uint32 mem_capacity;} sdms_param;//sdms_param sdmsParam (int base, int rca);//int sdmsInit (int base);int sdmsOpen (int slot);int sdmsEject ();int sdmsRead (int sect, int n, void* buf);#define SDMS_DEBUG 0#endif

⌨️ 快捷键说明

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