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

📄 bsp2.asm

📁 dsp5000系列dma汇编代码完全可靠可用
💻 ASM
字号:
                    
BSP             .set    1   ; 5402 DSK audio in/out codec uses McBSP1

; one of 8, 16, 32, or 64, in khz
SAMPLERATE      .set  8

 
    
    .mmregs

SPCR1_VAL       .set    0000h

SPCR2_VAL       .set    0200h
                                  
RCR1_VAL        .set    040h

RCR2_VAL        .set    000h

XCR1_VAL        .set    040h

XCR2_VAL        .set    000h

PCR_VAL         .set    0ch



;MCBSP0_TO_CODEC0 .set 0xFE
MCBSP1_TO_CODEC1 .set 0xFD
;CODEC1_FC_ON    .set 0x8
;CODEC0_FC_ON    .set 0x4
;CPLD_CTRL2      .set 0x4

* McBSP Memory Mapped Registers
SPSA0           .set    038h
SPSD0           .set    039h
DRR10           .set    021h
DXR10           .set    023h
SPSA1           .set    048h
SPSD1           .set    049h
DRR11           .set    041h
DXR11           .set    043h

* McBSP Subaddresed Registers
SPCR1           .set    00h
SPCR2           .set    01h
RCR1            .set    02h
RCR2            .set    03h
XCR1            .set    04h
XCR2            .set    05h
SRGR1           .set    06h
SRGR2           .set    07h
PCR             .set    0Eh

;; Choose appropriate sub-address registers and DRR/DXR

        .if BSP = 0
SPSA    .set SPSA0
SPSD    .set SPSD0
RDRR    .set    0x21            ; McBSP0 data receive register 1
RRDXR    .set    0x23           ; McBSP0 data transmit register 1
MCBSP_TO_CODEC .set MCBSP0_TO_CODEC0
IMASK   .set  (1 << 4)
        .endif
        .if BSP = 1
SPSA    .set SPSA1
SPSD    .set SPSD1
RDRR    .set    0x41            ; McBSP1 data receive register 1
RDXR    .set    0x43            ; McBSP1 data transmit register 1
MCBSP_TO_CODEC .set MCBSP1_TO_CODEC1
IMASK   .set  (1 << 10)
        .endif

WR_MCBSP_SUB_REG        .macro  addr,val
                        stm     addr,SPSA
                        nop
                        stm     val,SPSD
                        nop
                        .endm

RD_MCBSP_SUB_REG        .macro  addr,acc
                        stm     #:addr:,SPSA
                        nop
                        ldm     SPSD,acc
                        nop
                        nop
                        nop
                        .endm   

    .global _DSS_init, _AIC_INIT
    .text

;*************************************************************************
;*   audio_init:
;*************************************************************************
_DSS_init

 ;    PSHM  AR1
 ;    PSHM  AR6
 ;    PSHM  AR7
  ;   rsbx CPL
  ;   nop                 ; cpl latency
  ;   nop                 ; cpl latency
  ;   nop                 ; cpl latency

     ld   #0, DP              
     ssbx INTM      
     ssbx SXM  


     
 ;    WR_MCBSP_SUB_REG   SPCR1,#0h               ; reset McBSP0
 ;    WR_MCBSP_SUB_REG   SPCR2,#0h

     ;; write McBSP registers        
     WR_MCBSP_SUB_REG   RCR1,#RCR1_VAL
     WR_MCBSP_SUB_REG   RCR2,#RCR2_VAL
        
     WR_MCBSP_SUB_REG   XCR1,#XCR1_VAL
     WR_MCBSP_SUB_REG   XCR2,#XCR2_VAL
        
     WR_MCBSP_SUB_REG   PCR,#PCR_VAL
        
     WR_MCBSP_SUB_REG   SPCR1,#SPCR1_VAL
     WR_MCBSP_SUB_REG   SPCR2,#SPCR2_VAL

     ;; connect to appropriate source
  ;   portr CPLD_CTRL2, dss_tmp
  ;   andm #MCBSP1_TO_CODEC1, dss_tmp
   ;  portw dss_tmp, CPLD_CTRL2

     ;; set interrupts to come from serial ports not DMA
     ;; by clearing bits 6 and 7 in DMPREC
  ;   andm       #0ff3fh, 54h

     ;; clear xmit register -- why?
  ;   stm #0, RDXR

     ;; now enable McBSP transmit and receive
     WR_MCBSP_SUB_REG   SPCR1,#SPCR1_VAL | 1
     WR_MCBSP_SUB_REG   SPCR2,#SPCR2_VAL | 1 
     
  ;   ssbx  CPL
  ;   POPM  AR7
  ;   POPM  AR6
  ;   POPM  AR1

     .if __far_mode
        fret
    .else
        ret
    .endif
      
;

⌨️ 快捷键说明

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