?? spi dma driven.asm
字號:
/* SPI Control Registers */
#define SPICTL (0x1000) /* SPI Control Register */
#define SPIFLG (0x1001) /* SPI Flag register */
#define SPIBAUD (0x1005) /* SPI baud setup register */
/* SPI DMA Registers */
#define IISPI (0x1080) /* Internal DMA address */
#define IMSPI (0x1081) /* Internal DMA access modifier */
#define CSPI (0x1082) /* Number of words to transfers */
#define CPSPI (0x1083) /* Points to next DMA parameters*/
#define SPIDMAC (0x1084) /* SPI DMA control register */
/*SPICTL bits */
#define TIMOD2 (0x0002) /* Use DMA for transfers */
#define DMISO (0x0020) /* Disable MISO pin */
#define WL32 (0x0100) /* SPI Word Length = 32 */
#define SPIMS (0x1000) /* SPI Master if 1, Slave if 0 */
#define SPIEN (0x4000) /* SPI Port Enable */
/*SPIFLG bits */
#define DS0EN (0x0001) /* use FLG0 as SPI device-select*/
/*SPIDMAC bits */
#define SPIDEN (0x0001) /* enable DMA on the SPI port */
/* Default buffer size */
#define BUFSIZE 10
/*========================================================*/
/* Source data to be transmitted via SPI DMA */
.section/dm seg_dmda;
.var src_buf[BUFSIZE]= 0x11111111,
0x22222222,
0x33333333,
0x44444444,
0x55555555,
0x66666666,
0x77777777,
0x88888888,
0x99999999,
0xAAAAAAAA;
/* Application code */
.global _main;
.segment/pm seg_pmco;
_main:
/* Init SPI MASTER TX DMA */
r0=0;
dm(SPICTL)=r0;
dm(SPIFLG)=r0;
dm(SPIDMAC)=r0;
/* set the SPI baud rate to CCLK/4*64 (781.25KHz @ 200MHz)*/
ustat3 = 0x64;
dm(SPIBAUD)=ustat3;
r0=DS0EN;
dm(SPIFLG) = r0; /*use flag0 as spi device select */
ustat3=src_buf; dm(IISPI)=ustat3; /* point to 'src_buf'*/
ustat3=LENGTH(src_buf); dm(CSPI)=ustat3; /* count = 256 */
ustat3=1; dm(IMSPI)=ustat3; /* step size = 1 */
ustat3 = DMISO| /* Disable MISO on transfers */
WL32| /* 32-bit words */
SPIMS| /* Master mode (internal SPICLK) */
SPIEN| /* Enable SPI port */
TIMOD2; /* Initialize SPI port to begin
transmitting when DMA is enabled */
dm(SPICTL)=ustat3;
ustat3=SPIDEN; dm(SPIDMAC)=ustat3; /* begin DMA */
/*========================================================*/
_main.end: jump (pc,0);
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -