📄 mainfilter.asm
字号:
.line 3
;----------------------------------------------------------------------
; 137 | hMcbsp0=MCBSP_open(MCBSP_DEV0,MCBSP_OPEN_RESET);
; 138 | MCBSP_config(hMcbsp0,&mcbspCfg0);
; 139 | MCBSP_start(hMcbsp0,MCBSP_XMIT_START|MCBSP_RCV_START|
; 140 | MCBSP_SRGR_START|MCBSP_SRGR_FRAMESYNC,220);
; 142 | void iis1_init(void)
; 144 | hMcbsp1=MCBSP_open(MCBSP_DEV1,MCBSP_OPEN_RESET);
; 145 | MCBSP_config(hMcbsp1,&mcbspCfg1);
; 146 | MCBSP_start(hMcbsp1,MCBSP_XMIT_START|MCBSP_RCV_START|
; 147 | MCBSP_SRGR_START|MCBSP_SRGR_FRAMESYNC,220);
; |
; 149 | void set_interrupts_edma(void)
; 151 | IRQ_reset(IRQ_EVT_EDMAINT);
; 152 | IRQ_disable(IRQ_EVT_EDMAINT);
; 153 | EDMA_intDisable(12); /* ch 12 for McBSP transmit event XEVT0 */
; 154 | EDMA_intDisable(13); /* ch 13 for McBSP receive event REVT0 */
; 155 | IRQ_clear(IRQ_EVT_EDMAINT);
; 156 | EDMA_intClear(12);
; 157 | EDMA_intClear(13);
; 158 | IRQ_enable(IRQ_EVT_EDMAINT);
; 159 | EDMA_intEnable(12);
; 160 | EDMA_intEnable(13);
; 162 | void init_edma(void)
; 164 | TI_EDMA_CFG();
; 165 | set_interrupts_edma();
; 166 | *(unsigned volatile int *)McBSP0_DXR=SendMcbspDat;
; 167 | *(unsigned volatile int *)McBSP1_DXR=SendMcbspDat;
; 168 | RecvMcbspDat=*(unsigned volatile int *)McBSP0_DRR;
; 171 | interrupt void xint0()
; 173 | if(SendCnt>10000)
; 174 | {SendCnt=0;}
; 175 | else
; 176 | {SendCnt++;}
; 177 | SendMcbspDat=RecvMcbspDat;
; 179 | interrupt void rint0()
; 181 | RecvMcbspDat=*(unsigned volatile int *)McBSP0_DRR;
; 182 | *(unsigned volatile int *)McBSP0_DXR=SendMcbspDat;
; 184 | interrupt void timer0_isr()
; 186 | static unsigned int i=0,j=0;
; 187 | if(i>100)
; 189 | i=0;
; 190 | j++;
; 192 | else
; 193 | {i++;}
; 194 | if(j>200)
; 196 | j=0;
; 198 | if(j>0&&j<100)
; 200 | GPIO_pinWrite(hGpio,GPIO_PIN13,1);
; 201 | GPIO_pinWrite(hGpio,GPIO_PIN15,0);
; 203 | else
; 206 | GPIO_pinWrite(hGpio,GPIO_PIN13,0);
; 207 | GPIO_pinWrite(hGpio,GPIO_PIN15,1);
; 210 | interrupt void ext_int4(void)
; 212 | static Uint32 ExtIntCnt=0;
; 213 | if(ExtIntCnt<0xffff)
; 214 | {ExtIntCnt++;}
; 215 | else
; 216 | {ExtIntCnt=0;}
; 218 | interrupt void c_int08(void) /* vecs.asm hooks this up to IRQ 08 */
; 220 | if (EDMA_intTest(12))
; 222 | xmit0_done = TRUE;
; 223 | EDMA_intClear(12); /* clear CIPR bit so future interrupts can be recogn
; | ized */
; 226 | else if (EDMA_intTest(13))
; 228 | recv0_done = TRUE;
; 229 | EDMA_intClear(13); /* clear CIPR bit so future interrupts can be recogn
; | ized */
; 231 | return;
; 233 | void initrecsendbuf(void)
; 235 | Uint32 i;
; 236 | for(i=0;i<256;i++)
; 237 | { gBufferRcvPing[i]=0x0;
; 238 | gBufferRcvPong[i]=0x0;
; 239 | gBufferXmtPing[i]=i+0xaaaa5555;
; 240 | gBufferXmtPong[i]=i+0xaaaa5555;
; 242 | for(i=0;i<1000;i++)
; 244 | inbuf[i]=0x5432+i;
; 245 | outbuf[i]=0x1000+i;
; 249 | Uint16 bypass_bit=0;
; 250 | void ProcessBlock(short pingpong)
; 252 | Uint16 i=0;
; 253 | if(pingpong==PING) //Ping module
; 255 | for(i=0;i<512;i++)
; 257 | Buffer_iir_l[i]=(float)(gBufferRcvPing[i*2]);
; 258 | Buffer_iir_r[i]=(float)(gBufferRcvPing[i*2+1]);
; 260 | if(bypass_bit==1)
; 262 | DSPF_sp_biquad(Buffer_iir_l,b0,a0,dlyl_0,mid_iir,5
; | 12);
; 263 | DSPF_sp_biquad(mid_iir,b1,a1,dlyl_1,Buffer_iir_l,5
; | 12);
; 265 | DSPF_sp_biquad(Buffer_iir_r,b0,a0,dlyr_0,mid_iir,5
; | 12);
; 266 | DSPF_sp_biquad(mid_iir,b1,a1,dlyr_1,Buffer_iir_r,5
; | 12);
; 268 | for(i=0;i<512;i++)
; 270 | gBufferXmtPing[i*2]=(int)(Buffer_iir_l[i]);
; 271 | gBufferXmtPing[i*2+1]=(int)(Buffer_iir_r[i]);
; 275 | if(pingpong==PONG) //Pong module
; 277 | for(i=0;i<512;i++)
; 279 | Buffer_iir_l[i]=(float)gBufferRcvPong[i*2];
;----------------------------------------------------------------------
MVKL .S1 _MCBSP_open,A0 ; |137|
MVKH .S1 _MCBSP_open,A0 ; |137|
CALL .S2X A0 ; |137|
ZERO .D1 A4 ; |137|
NOP 1
MVKL .S2 RL10,B3 ; |137|
MVK .S2 0x1,B4 ; |137|
MVKH .S2 RL10,B3 ; |137|
RL10: ; CALL OCCURS ; |137|
STW .D2T1 A4,*+DP(_hMcbsp0) ; |137|
;----------------------------------------------------------------------
; 280 | Buffer_iir_r[i]=(float)gBufferRcvPong[i*2+1];
; 282 | if(bypass_bit==1)
; 284 | DSPF_sp_biquad(Buffer_iir_l,b0,a0,dlyl_0,mid_iir,512);
; 285 | DSPF_sp_biquad(mid_iir,b1,a1,dlyl_1,Buffer_iir_l,512);
; 286 | DSPF_sp_biquad(Buffer_iir_r,b0,a0,dlyr_0,mid_iir,512);
;----------------------------------------------------------------------
LDW .D1T1 *+A4(12),A0 ; |280|
MVC .S2 CSR,B4 ; |270|
AND .S2 1,B4,B4 ; |270|
MVC .S2 CSR,B5 ; |271|
AND .S2 -2,B5,B5 ; |271|
MVC .S2 B5,CSR ; |271|
;----------------------------------------------------------------------
; 287 | DSPF_sp_biquad(mid_iir,b1,a1,dlyr_1,Buffer_iir_r,512);
;----------------------------------------------------------------------
LDW .D2T2 *+DP(_mcbspCfg0),B0 ; |287|
LDW .D2T1 *+DP(_mcbspCfg0+4),A5 ; |288|
;----------------------------------------------------------------------
; 289 | for(i=0;i<512;i++)
;----------------------------------------------------------------------
LDW .D2T1 *+DP(_mcbspCfg0+8),A3 ; |289|
LDW .D2T2 *+DP(_mcbspCfg0+12),B7 ; |290|
;----------------------------------------------------------------------
; 291 | gBufferXmtPong[i*2]=(int)Buffer_iir_l[i];
;----------------------------------------------------------------------
LDW .D2T2 *+DP(_mcbspCfg0+16),B8 ; |291|
;----------------------------------------------------------------------
; 292 | gBufferXmtPong[i*2+1]=(int)Buffer_iir_r[i];
;----------------------------------------------------------------------
LDW .D2T2 *+DP(_mcbspCfg0+20),B9 ; |292|
LDW .D2T2 *+DP(_mcbspCfg0+24),B6 ; |293|
LDW .D2T2 *+DP(_mcbspCfg0+28),B5 ; |294|
ZERO .D1 A6 ; |296|
STW .D1T1 A6,*+A0(8) ; |296|
;----------------------------------------------------------------------
; 297 | int main()
;----------------------------------------------------------------------
STW .D1T1 A5,*+A0(12) ; |297|
STW .D1T1 A3,*+A0(16) ; |298|
STW .D1T2 B7,*+A0(20) ; |299|
;----------------------------------------------------------------------
; 300 | IRQ_globalDisable(); /* Disable all interrupts *
; | /
;----------------------------------------------------------------------
STW .D1T2 B8,*+A0(24) ; |300|
;----------------------------------------------------------------------
; 301 | IER=1; /* Disable all interrupts except N
; | MI */
;----------------------------------------------------------------------
STW .D1T2 B9,*+A0(28) ; |301|
;----------------------------------------------------------------------
; 302 | IRQ_setVecs((void *)0x800); /* point to the IRQ ve
; | ctor table */
;----------------------------------------------------------------------
STW .D1T2 B6,*+A0(32) ; |302|
;----------------------------------------------------------------------
; 303 | PLLInit();
;----------------------------------------------------------------------
STW .D1T2 B5,*+A0(36) ; |303|
STW .D1T2 B0,*+A0(8) ; |304|
MVC .S2 CSR,B5 ; |276|
AND .S2 -2,B5,B5 ; |276|
|| AND .L2 1,B4,B4 ; |276|
OR .S2 B4,B5,B4 ; |276|
MVC .S2 B4,CSR ; |276|
.line 5
MVKL .S1 _MCBSP_start,A0 ; |139|
MVKH .S1 _MCBSP_start,A0 ; |139|
CALL .S2X A0 ; |139|
MVKL .S2 RL11,B3 ; |139|
MVKH .S2 RL11,B3 ; |139|
MVK .S2 0xf,B4 ; |139|
MVK .S1 0xdc,A6 ; |139|
NOP 1
RL11: ; CALL OCCURS ; |139|
.line 7
LDW .D2T2 *++SP(8),B3 ; |141|
NOP 4
RET .S2 B3 ; |141|
NOP 5
; BRANCH OCCURS ; |141|
.endfunc 141,000080000h,8
.sect ".text"
.global _iis1_init
.sym _iis1_init,_iis1_init, 32, 2, 0
.func 142
;----------------------------------------------------------------------
; 142 | void iis1_init(void)
;----------------------------------------------------------------------
;******************************************************************************
;* FUNCTION NAME: _iis1_init *
;* *
;* Regs Modified : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,B0,B1,B2,B3,B4,B5,B6, *
;* B7,B8,B9,SP *
;* Regs Used : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,B0,B1,B2,B3,B4,B5,B6, *
;* B7,B8,B9,DP,SP *
;* Local Frame Size : 0 Args + 0 Auto + 4 Save = 4 byte *
;******************************************************************************
;******************************************************************************
;* *
;* Using -g (debug) with optimization (-o3) may disable key optimizations! *
;* *
;******************************************************************************
_iis1_init:
;** --------------------------------------------------------------------------*
.line 2
.sym _gie,20, 14, 4, 32
.sym _base,0, 30, 4, 32
.sym _x0,16, 4, 4, 32
.sym _x1,5, 4, 4, 32
.sym _x2,3, 4, 4, 32
.sym _x3,23, 4, 4, 32
.sym _x4,24, 4, 4, 32
.sym _x5,25, 4, 4, 32
.sym _x6,22, 4, 4, 32
.sym _x7,21, 4, 4, 32
STW .D2T2 B3,*SP--(8) ; |143|
.line 3
;----------------------------------------------------------------------
; 144 | hMcbsp1=MCBSP_open(MCBSP_DEV1,MCBSP_OPEN_RESET);
; 145 | MCBSP_config(hMcbsp1,&mcbspCfg1);
; 146 | MCBSP_start(hMcbsp1,MCBSP_XMIT_START|MCBSP_RCV_START|
; 147 | MCBSP_SRGR_START|MCBSP_SRGR_FRAMESYNC,220);
; |
; 149 | void set_interrupts_edma(void)
; 151 | IRQ_reset(IRQ_EVT_EDMAINT);
; 152 | IRQ_disable(IRQ_EVT_EDMAINT);
; 153 | EDMA_intDisable(12); /* ch 12 for McBSP transmit event XEVT0 */
; 154 | EDMA_intDisable(13); /* ch 13 for McBSP receive event REVT0 */
; 155 | IRQ_clear(IRQ_EVT_EDMAINT);
; 156 | EDMA_intClear(12);
; 157 | EDMA_intClear(13);
; 158 | IRQ_enable(IRQ_EVT_EDMAINT);
; 159 | EDMA_intEnable(12);
; 160 | EDMA_intEnable(13);
; 162 | void init_edma(void)
; 164 | TI_EDMA_CFG();
; 165 | set_interrupts_edma();
; 166 | *(unsigned volatile int *)McBSP0_DXR=SendMcbspDat;
; 167 | *(unsigned volatile int *)McBSP1_DXR=SendMcbspDat;
; 168 | RecvMcbspDat=*(unsigned volatile int *)McBS
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -