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

📄 plx9054_bf533_test.i

📁 基于adsp-bf533的异性纤维检测算法的实现
💻 I
📖 第 1 页 / 共 2 页
字号:



 
 
   


 
 












 



 




 


                                




 
 
#line 217 "D:\\Program Files\\Analog Devices\\VisualDSP 3.5 16-Bit\\Blackfin\\include\\yvals.h"



 
#line 232 "D:\\Program Files\\Analog Devices\\VisualDSP 3.5 16-Bit\\Blackfin\\include\\yvals.h"



 








 
#line 265 "D:\\Program Files\\Analog Devices\\VisualDSP 3.5 16-Bit\\Blackfin\\include\\yvals.h"







 











 

  typedef unsigned int _Wintt;
  typedef unsigned int _Wchart;
#line 304 "D:\\Program Files\\Analog Devices\\VisualDSP 3.5 16-Bit\\Blackfin\\include\\yvals.h"



 



       

  typedef char *  va_list;


typedef va_list _Va_list;
#line 324 "D:\\Program Files\\Analog Devices\\VisualDSP 3.5 16-Bit\\Blackfin\\include\\yvals.h"



 
#line 334 "D:\\Program Files\\Analog Devices\\VisualDSP 3.5 16-Bit\\Blackfin\\include\\yvals.h"
  typedef long long   _Longlong;
  typedef unsigned long long  _ULonglong;
#line 342 "D:\\Program Files\\Analog Devices\\VisualDSP 3.5 16-Bit\\Blackfin\\include\\yvals.h"

       


extern "C" {
void _Atexit(void (*)(void));
}

typedef struct _Mbstatet {
   _Wchart _Wchar;
   char _State;
   } _Mbstatet;



 




typedef struct _Fpost {
   long _Off;    
   _Mbstatet _Wstate;
   } _Fpost;
#line 372 "D:\\Program Files\\Analog Devices\\VisualDSP 3.5 16-Bit\\Blackfin\\include\\yvals.h"



 




 





 
#line 394 "D:\\Program Files\\Analog Devices\\VisualDSP 3.5 16-Bit\\Blackfin\\include\\yvals.h"

       
#line 406 "D:\\Program Files\\Analog Devices\\VisualDSP 3.5 16-Bit\\Blackfin\\include\\yvals.h"








 
#line 21 "D:\\Program Files\\Analog Devices\\VisualDSP 3.5 16-Bit\\Blackfin\\include\\stdlib.h"



		 



















		 



typedef _Sizet size_t;




typedef _Wchart wchar_t;





 
#line 1 "D:\\Program Files\\Analog Devices\\VisualDSP 3.5 16-Bit\\Blackfin\\include\\stdlib_bf.h"
#pragma once

#pragma system_header /* stdlib_bf.h */







 








 











void * _heap_calloc(int, size_t, size_t);
void _heap_free(int, void *);
void * _heap_malloc(int, size_t);
void * _heap_realloc(int, void *, size_t);
int _heap_init(int);
int _heap_install(void *, size_t, int);
int _heap_lookup(int);




#line 50 "D:\\Program Files\\Analog Devices\\VisualDSP 3.5 16-Bit\\Blackfin\\include\\stdlib_bf.h"

#line 61 "D:\\Program Files\\Analog Devices\\VisualDSP 3.5 16-Bit\\Blackfin\\include\\stdlib.h"










 

#line 80 "D:\\Program Files\\Analog Devices\\VisualDSP 3.5 16-Bit\\Blackfin\\include\\stdlib.h"






 







typedef struct
	{	 
	int quot;
	int rem;
	} div_t;

typedef struct
	{	 
	long quot;
	long rem;
	} ldiv_t;

		 
extern "C" {  

void _Exit(void) ;	 



void exit(int) ;
char * getenv(const char *);
int system(const char *);
}



void __builtin_abort(void) ;




void abort(void) ;
int __builtin_abs(int);
void * calloc(size_t, size_t);
div_t div(int, int);
void free(void *);
long labs(long);
ldiv_t ldiv(long, long);
void * malloc(size_t);
int mblen(const char *, size_t);
size_t mbstowcs(wchar_t *, const char *, size_t);
int mbtowc(wchar_t *, const char *, size_t);
int rand(void);
void srand(unsigned int);
void * realloc(void *, size_t);
long strtol(const char *, char **, int);
size_t wcstombs(char *, const wchar_t *, size_t);
int wctomb(char *, wchar_t);

#line 153 "D:\\Program Files\\Analog Devices\\VisualDSP 3.5 16-Bit\\Blackfin\\include\\stdlib.h"

unsigned long _Stoul(const char *, char **, int);
float _Stof(const char *, char **, long);
double _Stod(const char *, char **, long);
long double _Stold(const char *, char **, long);
_Longlong _Stoll(const char *, char **, int);
_ULonglong _Stoull(const char *, char **, int);

extern size_t _Getmbcurmax(void);


#line 234 "D:\\Program Files\\Analog Devices\\VisualDSP 3.5 16-Bit\\Blackfin\\include\\stdlib.h"
		 
typedef int _Cmpfun(const void *, const void *);

int atexit(void (*)(void));
void * bsearch(const void *, const void *, size_t, size_t, _Cmpfun *);
void qsort(void *, size_t, size_t, _Cmpfun *);

double atof(const char *);
int atoi(const char *);
long atol(const char *);
double strtod(const char *, char **);
unsigned long strtoul(const char *, char **, int);

#line 253 "D:\\Program Files\\Analog Devices\\VisualDSP 3.5 16-Bit\\Blackfin\\include\\stdlib.h"

    







#line 276 "D:\\Program Files\\Analog Devices\\VisualDSP 3.5 16-Bit\\Blackfin\\include\\stdlib.h"





 
#line 19 "D:\\Program Files\\Analog Devices\\VisualDSP 3.5 16-Bit\\Blackfin\\include\\ccblkfn.h"






short __builtin_ones(int _x);
short __builtin_lvitmax1x16res1(int _x, int _y);
short __builtin_rvitmax1x16res1(int _x, int _y);
int __builtin_lvitmax2x16res1(int _x, int _y, int _z);
int __builtin_rvitmax2x16res1(int _x, int _y, int _z);
int __builtin_vitmaxres1x16(short _x);
int __builtin_vitmaxres2x16(int _x);
short __builtin_expadj1x32(int _x, short _y);
short __builtin_expadj2x16(int _x, short _y);
short __builtin_expadj1x16(short _x, short _y);
int __builtin_divs(int _x, int _y);
int __builtin_divq(int _x, int _y);
void __builtin_idle();
void __builtin_halt();
void __builtin_abort();
void __builtin_ssync();
void __builtin_csync();
unsigned __builtin_cli();
void __builtin_sti(unsigned);
void __builtin_raise(int);
void __builtin_excpt(int);
int __builtin_sysreg_read(int);
void __builtin_sysreg_write(int,int);
long long __builtin_sysreg_read64(int);
void __builtin_sysreg_write64(int,long long);
void *__builtin_alloca(int);
long __builtin_circindex(long, long, unsigned long);
void *__builtin_circptr(const void *, long, const void *, unsigned long);
long long __builtin_bitmux_shr_res1(long long, int, int);
int __builtin_bitmux_shr_res2(long long);
int __builtin_bitmux_shr_res3(long long);
long long __builtin_bitmux_shl_res1(long long, int, int);
int __builtin_bitmux_shl_res2(long long);
int __builtin_bitmux_shl_res3(long long);



#line 78 "D:\\Program Files\\Analog Devices\\VisualDSP 3.5 16-Bit\\Blackfin\\include\\ccblkfn.h"



#line 91 "D:\\Program Files\\Analog Devices\\VisualDSP 3.5 16-Bit\\Blackfin\\include\\ccblkfn.h"

 
#line 140 "D:\\Program Files\\Analog Devices\\VisualDSP 3.5 16-Bit\\Blackfin\\include\\ccblkfn.h"







#line 6 ".\\plx9054_bf533_test.c"
#line 1 "D:\\Program Files\\Analog Devices\\VisualDSP 3.5 16-Bit\\Blackfin\\include\\sys\\exception.h"
#pragma once

#pragma system_header /* exception.h */







 






 




 








 





 





				 









 







#line 76 "D:\\Program Files\\Analog Devices\\VisualDSP 3.5 16-Bit\\Blackfin\\include\\sys\\exception.h"



 



#line 94 "D:\\Program Files\\Analog Devices\\VisualDSP 3.5 16-Bit\\Blackfin\\include\\sys\\exception.h"



 














 





typedef enum {
  ik_err=-1,
  ik_emulation,
  ik_reset,
  ik_nmi,
  ik_exception,
  ik_global_int_enable,
  ik_hardware_err,
  ik_timer,
  ik_ivg7,
  ik_ivg8,
  ik_ivg9,
  ik_ivg10,
  ik_ivg11,
  ik_ivg12,
  ik_ivg13,
  ik_ivg14,
  ik_ivg15,
  num_interrupt_kind
} interrupt_kind;



 

typedef struct {

   

  int r0x, r1x, r2x;

  



 

  struct {
    int lb1, lb0, lt1, lt0, lc1, lc0;
    int a1, a1x, a0, a0x, cc;
    int l3,l2,l1,l0,b3,b2,b1,b0;

    int m3;

    int    m2,m1,m0,i3,i2,i1,i0;
  } _inaccessible;

  

 

  int p5, p4, p3, p2, p1, p0;
  int r7, r6, r5, r4, r3, r2, r1, r0;
  int fp;
  int astat;
} interrupt_regs;




 

typedef struct {
  interrupt_kind kind;		 
  int value;			 
  void *pc;			 
  void *addr;			 
  unsigned status;		 
  interrupt_regs *regsaddr;	 
} interrupt_info;






 

typedef void (*ex_handler_fn)(int, int, int);







#line 210 "D:\\Program Files\\Analog Devices\\VisualDSP 3.5 16-Bit\\Blackfin\\include\\sys\\exception.h"



 










 

void get_interrupt_info(interrupt_kind, interrupt_info *);



 

void _ex_report_event(interrupt_info *);




 

ex_handler_fn register_handler(interrupt_kind, ex_handler_fn);



 






 

int raise_interrupt(interrupt_kind kind, int which,
   int cmd, int arg1, int arg2);





#line 7 ".\\plx9054_bf533_test.c"
#line 1 "plx9054_bf533_test.h"






#line 17 "plx9054_bf533_test.h"











typedef struct  __Plx_dsp_com{
   
   unsigned short  L1ToSdramBank; 
   unsigned long  pL1ToSdramAddr; 
   unsigned long  L1ToSdramOffset; 
   
   unsigned short NumberOfPpibuf; 
   unsigned short NumberCalculationbuf;  
   unsigned short firtPpiInterrupt;
   
   unsigned long  pSdramToFPGA;
   unsigned long  SdramToFPGAOffset;
   
   unsigned short SdramToFPGABank;
}Plx_dsp_com;

typedef struct _DMA_DESC_PTR_LARGE{
	unsigned short NDPL;
	unsigned short NDPH;
	unsigned short SAL;
	unsigned short SAH;
	unsigned short DMACFG;
	unsigned short XCNT;
	unsigned short XMOD;
	unsigned short YCNT;
	unsigned short YMOD;
}DMA_DESC_PTR_LARGE;

typedef struct _DMA_DESC_PTR_SMALL{
	unsigned short NDPL;
	unsigned short SAL;
	unsigned short SAH;	
	unsigned short XCNT;
	unsigned short XMOD;
	unsigned short YCNT;
	unsigned short YMOD;
}DMA_DESC_PTR_SMALL;



 
#line 8 ".\\plx9054_bf533_test.c"

#line 1 "D:\\Program Files\\Analog Devices\\VisualDSP 3.5 16-Bit\\Blackfin\\include\\signal.h"










 

 







 
#line 1 "D:\\Program Files\\Analog Devices\\VisualDSP 3.5 16-Bit\\Blackfin\\include\\sys/signal_bf.h"
#pragma once

#pragma system_header /* signal_bf.h */







 








 








extern "C" {       
void (*interrupt(int, void (*_func)(int))) (int);
}






#line 25 "D:\\Program Files\\Analog Devices\\VisualDSP 3.5 16-Bit\\Blackfin\\include\\signal.h"








		 
typedef int sig_atomic_t;
typedef void _Sigfun(int);

		 
 
#line 67 "D:\\Program Files\\Analog Devices\\VisualDSP 3.5 16-Bit\\Blackfin\\include\\signal.h"

		 




extern "C" {		 
_Sigfun * signal(int, _Sigfun *);
}

		 
int raise(int);











 
#line 10 ".\\plx9054_bf533_test.c"








void initEbiu(void);
void initPFLAGS(void);
void Init_Interrupts(void);
void Init_DMA(void);
void Init_SDRAM(void);
void Init_PPI(void);


unsigned short *pAMS0 = (unsigned short*)0x20000000;
unsigned short *pAMS1 = (unsigned short*)0x20100000;
unsigned short *pAMS2 = (unsigned short*)0x20200000;	
unsigned short *pAMS3 = (unsigned short*)0x20300000;


unsigned short *pRead  = (unsigned short*)0x20100000;

unsigned short *pWrite = (unsigned short*)0x20100000;

unsigned short *pInt9054 = (unsigned short*)0x20000004;

unsigned short *pSDRam = (unsigned short*)0x00000000;

unsigned short *pDspStatus = (unsigned short*)0x20300004;
unsigned short *pPenfaReg  = (unsigned short*)0x20200004;



extern Plx_dsp_com  dsp2plx;
extern DMA_DESC_PTR_LARGE Dma_desc_ptr_small[3];

__section("myl1_buffer") unsigned short Parameter[10];
__section("myl1_buffer1") unsigned short Ppibuf0[4096];
__section("myl1_buffer2") unsigned short Ppibuf1[4096];
__section("myl1_buffer3") unsigned short Ppibuf2[4096];



void delay(void)
{
	unsigned char i ,j;
	for( i = 0 ; i < 100 ; i++)
	{
	
	   ;
	}
}


void InitVar()
{
	unsigned long j ;
	unsigned char i;
	i=0;
	for( j = 0 ; j <2048;j++)
 	{
 		pWrite[j] = 0;
 		pSDRam[j] = 0;
 		i++;
 	}
 	for(;j<1024*1024*16;j++)
 	{
 		pSDRam[j] = 0;
 		i++;
 	}
 	*pDspStatus = 0;
 	dsp2plx.L1ToSdramBank = 0;
 	dsp2plx.pSdramToFPGA = (unsigned long)pSDRam;
 	dsp2plx.SdramToFPGAOffset = 0;
 	dsp2plx.SdramToFPGABank = 0;
 	
 	
 	dsp2plx.pL1ToSdramAddr =0;
 	dsp2plx.L1ToSdramOffset = 0;
 	dsp2plx.NumberOfPpibuf = 0;  
 	dsp2plx.NumberCalculationbuf = 0;
    dsp2plx.firtPpiInterrupt = 0;
 	
 	Dma_desc_ptr_small[0].NDPL = (int)&Dma_desc_ptr_small[1]&0xffff;
 	Dma_desc_ptr_small[0].NDPH = ((int)&Dma_desc_ptr_small[1]&0xffff0000)>>16;
 	Dma_desc_ptr_small[0].SAL  = (int)(&Ppibuf0)&0xffff;
 	Dma_desc_ptr_small[0].SAH  = ((int)&Ppibuf0&0xffff0000)>>16;
 	Dma_desc_ptr_small[0].DMACFG = (0x7<<12)|(0x9<<8)|0x00000002 | 0x00000004 | 0x00000080 | 0x00000020|0x1;
 	Dma_desc_ptr_small[0].XCNT = 4096;
 	Dma_desc_ptr_small[0].XMOD = 2;
 	Dma_desc_ptr_small[0].YCNT = 0;
 	Dma_desc_ptr_small[0].YMOD = 0;
 	
 	
 	Dma_desc_ptr_small[1].NDPL = 0xffff&(int)&Dma_desc_ptr_small[2];
 	Dma_desc_ptr_small[1].NDPH = ((int)&Dma_desc_ptr_small[2]&0xffff0000)>>16;
 	Dma_desc_ptr_small[1].SAL  = (int)&Ppibuf1&0xffff;
 	Dma_desc_ptr_small[1].SAH  = ((int)&Ppibuf1&0xffff0000)>>16;
 	Dma_desc_ptr_small[1].DMACFG = (0x7<<12)|(0x9<<8)|0x00000002 | 0x00000004 | 0x00000080 | 0x00000020|0x1;
 	Dma_desc_ptr_small[1].XCNT = 4096;
 	Dma_desc_ptr_small[1].XMOD = 2;
 	Dma_desc_ptr_small[1].YCNT = 0;
 	Dma_desc_ptr_small[1].YMOD = 0;
 	
 	Dma_desc_ptr_small[2].NDPL = 0xffff&(int)&Dma_desc_ptr_small[0];
 	Dma_desc_ptr_small[2].NDPH = ((int)&Dma_desc_ptr_small[0]&0xffff0000)>>16;
 	Dma_desc_ptr_small[2].SAL  = (int)&Ppibuf2&0xffff;
 	Dma_desc_ptr_small[2].SAH  = ((int)&Ppibuf2&0xffff0000)>>16;
 	Dma_desc_ptr_small[2].DMACFG = (0x7<<12)|(0x9<<8)|0x00000002 | 0x00000004 | 0x00000080 | 0x00000020|0x1;
 	Dma_desc_ptr_small[2].XCNT = 4096;
 	Dma_desc_ptr_small[2].XMOD = 2;
 	Dma_desc_ptr_small[2].YCNT = 0;
 	Dma_desc_ptr_small[2].YMOD = 0; 	
 	



 
}
void TestRead()
{
}

void main(void)
{
    int i = 2,j,k;
 
    unsigned short reg;
    unsigned short tempNumberOfPpibuf;
    unsigned long StartAddrL1;
    *((volatile unsigned short *)0xFFC00000) = 0x0001|((40)<<9);
	reg = __builtin_cli();
	__builtin_idle();
	__builtin_sti(reg);	
 	initEbiu();
 	initPFLAGS();
 	Init_SDRAM();
 	InitVar();
 	Init_Interrupts(); 	
 	Init_DMA();    
    Init_PPI();
 
 	
 	

 	
    while(1)
 	{ 	
 		
 		if(dsp2plx.firtPpiInterrupt&0x0001 )
 		{
 			tempNumberOfPpibuf = dsp2plx.NumberOfPpibuf;
 			
 			
 			for( i = 0 ; i < 416666;i++)
 			{
 				
 			}            
            switch (dsp2plx.NumberCalculationbuf)
	        {
	        	case 0: StartAddrL1 = &Ppibuf0;
	        	break;
	        	case 1: StartAddrL1 = &Ppibuf1;
	        	break;
	        	case 2: StartAddrL1 = &Ppibuf2;
	        	break;
	        	default:
	        	
	        }
	        
		
			dsp2plx.pL1ToSdramAddr = (unsigned long)( pSDRam+dsp2plx.L1ToSdramBank*4*1024*1024)+dsp2plx.L1ToSdramOffset;
			L1DMASdram(StartAddrL1,dsp2plx.pL1ToSdramAddr);
 			while(tempNumberOfPpibuf == dsp2plx.NumberOfPpibuf);
 			
 		}
 		
  	
 	}
 		
}




⌨️ 快捷键说明

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