#line 1 ".\\ADDS_21161_EzKit.c" .\Release\ADDS_21161_EzKit.doj: .\ADDS_21161_EzKit.c #line 1 ".\\ADDS_21161_EzKit.h" .\Release\ADDS_21161_EzKit.doj: .\ADDS_21161_EzKit.h int Setup_AD1836(); void Program_SPORT02_TDM_Registers(); void Program_SPORT02_DMA_Channels(); void Receive_Samples(); void Transmit_Samples(); void Init_AD1852_DACs(); void Setup_SDRAM(); void Setup_ADSP21161N(); void Blink_LED_Test( int interations ); extern float Left_Channel0; extern float Left_Channel1; extern float Left_Channel2; extern float Left_Channel3; extern float Right_Channel0; extern float Right_Channel1; extern float Right_Channel2; extern float Right_Channel3; extern float Left_Channel_SPDIF_rx; extern float Right_Channel_SPDIF_rx; extern float Left_Channel_In0; extern float Left_Channel_In1; extern float Right_Channel_In0; extern float Right_Channel_In1; extern float Left_Channel_SPDIF_rx; extern float Right_Channel_SPDIF_rx; extern float Left_Channel_Out0; extern float Left_Channel_Out1; extern float Left_Channel_Out2; extern float Right_Channel_Out0; extern float Right_Channel_Out1; extern float Right_Channel_Out2; extern float Left_Channel_AD1852; extern float Right_Channel_AD1852; #line 69 ".\\ADDS_21161_EzKit.h" #line 83 ".\\ADDS_21161_EzKit.h" #line 92 ".\\ADDS_21161_EzKit.h" #line 119 ".\\ADDS_21161_EzKit.h" #line 2 ".\\ADDS_21161_EzKit.c" #line 1 "D:\\Programy\\visaulDSP++\\211xx\\include\\def21161.h" .\Release\ADDS_21161_EzKit.doj: D:\Programy\visaulDSP++\211xx\include\def21161.h #line 141 "D:\\Programy\\visaulDSP++\\211xx\\include\\def21161.h" #line 163 "D:\\Programy\\visaulDSP++\\211xx\\include\\def21161.h" #line 176 "D:\\Programy\\visaulDSP++\\211xx\\include\\def21161.h" #line 204 "D:\\Programy\\visaulDSP++\\211xx\\include\\def21161.h" #line 213 "D:\\Programy\\visaulDSP++\\211xx\\include\\def21161.h" #line 222 "D:\\Programy\\visaulDSP++\\211xx\\include\\def21161.h" #line 231 "D:\\Programy\\visaulDSP++\\211xx\\include\\def21161.h" #line 241 "D:\\Programy\\visaulDSP++\\211xx\\include\\def21161.h" #line 251 "D:\\Programy\\visaulDSP++\\211xx\\include\\def21161.h" #line 263 "D:\\Programy\\visaulDSP++\\211xx\\include\\def21161.h" #line 273 "D:\\Programy\\visaulDSP++\\211xx\\include\\def21161.h" #line 370 "D:\\Programy\\visaulDSP++\\211xx\\include\\def21161.h" #line 380 "D:\\Programy\\visaulDSP++\\211xx\\include\\def21161.h" #line 390 "D:\\Programy\\visaulDSP++\\211xx\\include\\def21161.h" #line 400 "D:\\Programy\\visaulDSP++\\211xx\\include\\def21161.h" #line 482 "D:\\Programy\\visaulDSP++\\211xx\\include\\def21161.h" #line 491 "D:\\Programy\\visaulDSP++\\211xx\\include\\def21161.h" #line 500 "D:\\Programy\\visaulDSP++\\211xx\\include\\def21161.h" #line 509 "D:\\Programy\\visaulDSP++\\211xx\\include\\def21161.h" #line 533 "D:\\Programy\\visaulDSP++\\211xx\\include\\def21161.h" #line 566 "D:\\Programy\\visaulDSP++\\211xx\\include\\def21161.h" #line 581 "D:\\Programy\\visaulDSP++\\211xx\\include\\def21161.h" #line 626 "D:\\Programy\\visaulDSP++\\211xx\\include\\def21161.h" #line 650 "D:\\Programy\\visaulDSP++\\211xx\\include\\def21161.h" #line 661 "D:\\Programy\\visaulDSP++\\211xx\\include\\def21161.h" #line 672 "D:\\Programy\\visaulDSP++\\211xx\\include\\def21161.h" #line 704 "D:\\Programy\\visaulDSP++\\211xx\\include\\def21161.h" #line 718 "D:\\Programy\\visaulDSP++\\211xx\\include\\def21161.h" #line 728 "D:\\Programy\\visaulDSP++\\211xx\\include\\def21161.h" #line 758 "D:\\Programy\\visaulDSP++\\211xx\\include\\def21161.h" #line 770 "D:\\Programy\\visaulDSP++\\211xx\\include\\def21161.h" #line 795 "D:\\Programy\\visaulDSP++\\211xx\\include\\def21161.h" #line 811 "D:\\Programy\\visaulDSP++\\211xx\\include\\def21161.h" #line 852 "D:\\Programy\\visaulDSP++\\211xx\\include\\def21161.h" #line 877 "D:\\Programy\\visaulDSP++\\211xx\\include\\def21161.h" #line 908 "D:\\Programy\\visaulDSP++\\211xx\\include\\def21161.h" #line 934 "D:\\Programy\\visaulDSP++\\211xx\\include\\def21161.h" #line 943 "D:\\Programy\\visaulDSP++\\211xx\\include\\def21161.h" #line 960 "D:\\Programy\\visaulDSP++\\211xx\\include\\def21161.h" #line 969 "D:\\Programy\\visaulDSP++\\211xx\\include\\def21161.h" #line 980 "D:\\Programy\\visaulDSP++\\211xx\\include\\def21161.h" #line 989 "D:\\Programy\\visaulDSP++\\211xx\\include\\def21161.h" #line 1033 "D:\\Programy\\visaulDSP++\\211xx\\include\\def21161.h" #line 1044 "D:\\Programy\\visaulDSP++\\211xx\\include\\def21161.h" #line 1075 "D:\\Programy\\visaulDSP++\\211xx\\include\\def21161.h" #line 1354 "D:\\Programy\\visaulDSP++\\211xx\\include\\def21161.h" #line 1425 "D:\\Programy\\visaulDSP++\\211xx\\include\\def21161.h" #line 3 ".\\ADDS_21161_EzKit.c" #line 1 "D:\\Programy\\visaulDSP++\\211xx\\include\\21160.h" .\Release\ADDS_21161_EzKit.doj: D:\Programy\visaulDSP++\211xx\include\21160.h #pragma once #pragma system_header /* 21160.h */ typedef unsigned long int size_t; void idle(void); __inline int timer_set(unsigned int _tperiod, unsigned int _tcount); __inline unsigned int timer_on(void); __inline unsigned int timer_off(void); int poll_flag_in(int _flag, int _mode); int set_flag(int _flag, int _mode); #line 59 "D:\\Programy\\visaulDSP++\\211xx\\include\\21160.h" __inline unsigned int timer_on(void) { int _tcount; asm volatile ("\n\tBIT SET MODE2 32;\n" "\t%0=TCOUNT;" : "=d" (_tcount)); return _tcount; } __inline unsigned int timer_off(void) { int _tcount; asm volatile ("\n\tBIT CLR MODE2 32;\n" "\t%0=TCOUNT;" : "=d" (_tcount)); return _tcount; } __inline int timer_set(unsigned int _period, unsigned int _count) { int _success; asm volatile ("\n\tTPERIOD=%1;\n" "\tTCOUNT=%2;\n" "\t%0=MODE2;\n" "\t%0=FEXT %0 by 5:1;": "=&d" (_success) : "d" (_period), "d" (_count) : ); return _success; } int test_and_set_semaphore(void *_semaphore, int _test_value, int _set_value, int _timeout); int set_semaphore(void *_semaphore, int _set_value, int _timeout); __inline int fpack(float); __inline float funpack(int); __inline int fpack(float _x) { int _packed; asm volatile ("%0=fpack %1;": "=d" (_packed) : "F" (_x)); return _packed; } __inline float funpack(int _x) { float _unpacked; asm volatile ("%0=funpack %1;": "=F" (_unpacked) : "d" (_x)); return _unpacked; } #line 4 ".\\ADDS_21161_EzKit.c" #line 1 "D:\\Programy\\visaulDSP++\\211xx\\include\\signal.h" .\Release\ADDS_21161_EzKit.doj: D:\Programy\visaulDSP++\211xx\include\signal.h #line 40 "D:\\Programy\\visaulDSP++\\211xx\\include\\signal.h" #line 86 "D:\\Programy\\visaulDSP++\\211xx\\include\\signal.h" #line 98 "D:\\Programy\\visaulDSP++\\211xx\\include\\signal.h" #line 110 "D:\\Programy\\visaulDSP++\\211xx\\include\\signal.h" #line 155 "D:\\Programy\\visaulDSP++\\211xx\\include\\signal.h" #line 212 "D:\\Programy\\visaulDSP++\\211xx\\include\\signal.h" #line 278 "D:\\Programy\\visaulDSP++\\211xx\\include\\signal.h" #line 289 "D:\\Programy\\visaulDSP++\\211xx\\include\\signal.h" typedef int sig_atomic_t; void (*signal(int _sig, void (*func)(int))) (int); void (*signalf(int _sig, void (*func)(int))) (int); void (*signals(int _sig, void (*func)(int))) (int); void (*signalcb(int _sig, void (*func)(int))) (int); void (*signalss(int _sig, void (*func)(int))) (int); void (*signalnsm(int _sig, void (*func)(int))) (int); void (*signalfnsm(int _sig, void (*func)(int))) (int); void (*signalsnsm(int _sig, void (*func)(int))) (int); void (*signalcbnsm(int _sig, void (*func)(int))) (int); void (*signalssnsm(int _sig, void (*func)(int))) (int); void (*interrupt(int _sig, void (*func)(int))) (int); void (*interruptf(int _sig, void (*func)(int))) (int); void (*interrupts(int _sig, void (*func)(int))) (int); void (*interruptcb(int _sig, void (*func)(int))) (int); void (*interruptss(int _sig, void (*func)(int))) (int); void (*interruptnsm(int _sig, void (*func)(int))) (int); void (*interruptfnsm(int _sig, void (*func)(int))) (int); void (*interruptsnsm(int _sig, void (*func)(int))) (int); void (*interruptcbnsm(int _sig, void (*func)(int))) (int); void (*interruptssnsm(int _sig, void (*func)(int))) (int); int raise(int); int raisensm(int); int clear_interrupt(int _sig); #line 6 ".\\ADDS_21161_EzKit.c" asm("#include "); int powerdown_AD1836[4] = {0x0000 | 0x0000 | 0x004, 0x0000 | 0x0000 | 0x004, 0xC000 | 0x0000 | 0x080, 0xC000 | 0x0000 | 0x080}; int powerdown_rx_buf0a[4]; int tx_buf3a[21] = { 0x0000 | 0x0000 | 0x000, 0x0000 | 0x0000 | 0x000, 0x1000 | 0x0000 | 0x000, 0x2000 | 0x0000 | 0x3FF, 0x3000 | 0x0000 | 0x3FF, 0x4000 | 0x0000 | 0x3FF, 0x5000 | 0x0000 | 0x3FF, 0x6000 | 0x0000 | 0x3FF, 0x7000 | 0x0000 | 0x3FF, 0xC000 | 0x0000 | 0x000, 0xC000 | 0x0000 | 0x000, 0xE000 | 0x0000 | 0x03A, 0xD000 | 0x0000 | 0x380, 0xD000 | 0x0000 | 0x380, 0x8000 | 0x0800 | 0x000, 0x9000 | 0x0800 | 0x000, 0xA000 | 0x0800 | 0x000, 0xB000 | 0x0800 | 0x000, 0xC000 | 0x0800 | 0x000, 0xD000 | 0x0800 | 0x000, 0xE000 | 0x0800 | 0x000 }; int rx_buf1a[21]; void SPORT_RX_IRQ(int sig_int) {} int Setup_AD1836() { int i; *(int *) 0x78 = (int) powerdown_AD1836; *(int *) 0x79 = 1; *(int *) 0x7a = 4; *(int *) 0x68 = (int) powerdown_rx_buf0a; *(int *) 0x69 = 1; *(int *) 0x6a = 4; *(int *) 0x1ff = 0; *(int *) 0x1f5 = 0x0011002B; *(int *) 0x1e5 = 0; interruptf( 11, SPORT_RX_IRQ); interruptf( 13, SPORT_RX_IRQ); *(int *) 0x1f0 |= 0x02000000 | 0x00040000 | 0x00020000 | 0x00010000 | 0x00004000 | 0x00002000 | 0x00001000 | 0x00000400 | (0x00000010|0x00000020|0x00000040|0x00000080) | 0x00000001; *(int *) 0x1e0 |= 0x00040000 | 0x00020000 | 0x00010000 | 0x00002000 | 0x00001000 | (0x00000010|0x00000020|0x00000040|0x00000080) | 0x00000001; *(int *) 0x1e0 &= (~0x02000000 & ~0x00004000 & ~0x00000400); while ( (*(int*) 0x37) & 0xA ) asm("idle;"); interruptf( 11, ((void (*)(int))0x03)); interruptf( 13, ((void (*)(int))0x03)); for (i=0;i<3000;i++) asm("nop; nop; nop; nop; nop;"); *(int *) 0x1e0 = 0; *(int *) 0x1f0 = 0; *(int *) 0x78 = (int) tx_buf3a; *(int *) 0x79 = 1; *(int *) 0x7a = 21; *(int *) 0x68 = (int) rx_buf1a; *(int *) 0x69 = 1; *(int *) 0x6a = 21; *(int *) 0x1ff = 0; *(int *) 0x1f5 = 0x0011002B; *(int *) 0x1e5 = 0; interruptf( 11, SPORT_RX_IRQ); interruptf( 13, SPORT_RX_IRQ); *(int *) 0x1f0 |= 0x02000000 | 0x00040000 | 0x00020000 | 0x00010000 | 0x00004000 | 0x00002000 | 0x00001000 | 0x00000400 | (0x00000010|0x00000020|0x00000040|0x00000080) | 0x00000001; *(int *) 0x1e0 |= 0x00040000 | 0x00020000 | 0x00010000 | 0x00002000 | 0x00001000 | (0x00000010|0x00000020|0x00000040|0x00000080) | 0x00000001; *(int *) 0x1e0 &= (~0x02000000 & ~0x00004000 & ~0x00000400); while ( (*(int*) 0x37) & 0xA ) asm("idle;"); interruptf( 11, ((void (*)(int))0x03)); interruptf( 13, ((void (*)(int))0x03)); *(int *) 0x1e0 = 0; *(int *) 0x1f0 = 0; return 0; } int rx0a_buf[8]; #pragma retain_name int tx2a_buf[8] = { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}; int rcv0a_tcb[8] = {0, 0, 0, 0, 0, 8, 1, (int) rx0a_buf}; int xmit2a_tcb[8] = {0, 0, 0, 0, 0, 8, 1, (int) tx2a_buf}; void Program_SPORT02_TDM_Registers() { *(int *) 0x1c5 = 0; *(int *) 0x1d5 = 0; *(int *) 0x1df = 0x000000E0 | 0x00000002; *(int *) 0x1c0 = 0x00080000 | 0x00040000 | (0x00000010|0x00000020|0x00000040|0x00000080|0x00000100); *(int *) 0x1d0 = 0x00080000 | 0x00040000 | (0x00000010|0x00000020|0x00000040|0x00000080|0x00000100); *(int *) 0x1c7 = *(int *) 0x1d7 =0x000000FF; *(int *) 0x1c8 = *(int *) 0x1d8 = 0; } void Program_SPORT02_DMA_Channels() { xmit2a_tcb[4] = *(int *) 0x73 = ((int) xmit2a_tcb + 7) & 0x3FFFF | (1<<18); rcv0a_tcb[4] = *(int *) 0x63 = ((int) rcv0a_tcb + 7) & 0x3FFFF | (1<<18); } int spi_tx_buf[5] = { 0x0080 | 0x1, 0x0000 | 0x1, 0x0000 | 0x0010 | 0x0000 | 0x1, 0xFC00 | 0x0, 0xFC00 | 0x2 }; void Init_AD1852_DACs() { *(int *) 0xb4 = 0; *(int *) 0x38 = (int) spi_tx_buf; *(int *) 0x39 = 1; *(int *) 0x3a = 5; asm("#include "); asm("bit set LIRPTL SPITMSK;"); interruptf( 14, SPORT_RX_IRQ); *(int *) 0xb4 |= 0x00000001|0x00000004|0x00002000|0x00000008|0x00010000|0x00000020|0x00000040|0x00000080|0x00000800|0x00004000|0x00100000|0x20000000|0x80000000; *(int *) 0xb4 &= (~0x00000010 & ~0x00008000 & ~0x00020000 & ~0x00040000 & ~0x00080000 & ~0x02000000 & ~0x04000000 & ~0x10000000 & ~0x40000000 & ~0x08000000 & ~0x00000002); while( (*(int*) 0x37) & 0x00000020) idle(); interruptf( 14, ((void (*)(int))0x03)); asm("bit clr LIRPTL SPITMSK;"); } void Setup_SDRAM() { *(int *)0x02 &= 0xFFF00000; *(int*) 0xb9 = 0x1000; *(int *) 0xb8 |= 0x02000000|0x00000000|0x00000000|0x00010000|0x00004000|0x00000000|0x00000200|(0x00000010|0x00000020)|0x00000001; *(int *) 0xb8 &= ~0x00800000 & ~0x00080000 & ~0x00040000 & ~0x00020000 & ~0x00008000 & ~0x00000800 & ~0x00000008 & ~0x00000004; } void Setup_ADSP21161N() { asm("bit set MODE1 CBUFEN;"); *(int *) 0x1b = 0x00000020|0x00000010|0x00000008|0x00000004|0x00000002|0x00000001|0x00002000|0x00001000|0x00000800|0x00000400|0x00000200|0x00000100; asm("bit clr MODE2 FLG0O | FLG10 | FLG2O | FLG3O;"); asm("bit set mode2 IRQ2E | IRQ0E | IRQ1E;"); } void Blink_LED_Test( int interations ) { int i,k; for(i=0;i