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

📄 iotest.c

📁 dsp 5509a IO程序测试程序 ,12M晶振, 可以使用示波器观看
💻 C
字号:
#include <stdio>
#include "iotestcfg.h"

#define GPIO_DIR           (*(ioport volatile unsigned *)0x3400)
                         //General-purpose I/O Direction Register
#define GPIO_DATA          (*(ioport volatile unsigned *)0x3401)
                         //General-purpose I/O Data Registerint i = 0;

//EGCR=0x0220   enable clkmem    clkmem= CPU clock/2=96Mhz  ardy low active

// Main clock =12Mx16=192Mhz  

// SDC1  0xf948   kingpro
// SDC2  0x03ff   kingpro
//Sdram period = 0x0080  kingpro
//Sdram init = 0x00 Kingpro

// SDC1  0x3922/3933   Dtech
// SDC2  0x0252   Dtech
//Sdram period = 0x0400  Dtech
//Sdram init = 0x00 Dtech


long i = 0;
main()
{	
//	int dat;
 	int ioport * EBCR;   
    unsigned int data, data_rd;
    short j; 

	EBCR=(int *)0x6c00;
	*EBCR=0x01;

        GPIO_DIR  = 0x0092;    //GPIO1 GPIO4 GPIO7 Direction: output
        GPIO_DATA = 0x0092;    //GPIO1=High, GPIO4 high,gpio7 high   L2 off for D5509
   

// start sdram test

        asm("\tBCLR XF");  //start sdram test   L1 on for D5509

        data = GPIO_DATA;
        data &= 0xFf7f;    //GPIO7=LOW, L2 on  for D5509
        GPIO_DATA = data;
        GPIO_DATA = data;
	
		*(int *)0x60000a = 0x3; //L3 on   For D5509


        data=0;
		for(i=0x20000;i<0x400000;i++)   // write SDram
		 {
	    	*(int *)i = data;
	    	data++; 
          }

		data_rd=0;
		for(i=0x20000;i<0x400000;i++)   // read and test SDram
		 {
	    	data = *(int *)i ;


			if ( data_rd==data) 
				{
					data_rd++;
				}
			
			else 
				{
					
         			asm("\tBSET XF");            // L1 off for D5509
      				data = GPIO_DATA;
      				data |= 0x0080;   //GPIO7=high, L2 off for D5509
      				GPIO_DATA = data;
      				GPIO_DATA = data;
					*(int *)0x60000a = 0x1;       //L3  off   For D5509

				}
			
 
          }

		for(i=0;i<8000000;i++)
           data_rd=0;   // wait time
// end sdtam test



       
         
         asm("\tBSET XF");
         for ( j = 0; j<100; j++);
         asm("\tBCLR XF");
         for ( j = 0; j<100; j++);
         asm("\tBSET XF");

	for(;;)
	{
    
      data = GPIO_DATA;
      data &= 0xFffd;                  //GPIO1=LOW, L1 on  for BGA5509
      GPIO_DATA = data;
      GPIO_DATA = data;
    

      data = GPIO_DATA;
      data &= 0xFf7f;                  //GPIO7=LOW, L2 on  for D5509
      GPIO_DATA = data;
      GPIO_DATA = data;

         asm("\tBSET XF");   // L1 off  for D5509


		*(int *)0x60000a = 0x3; //L3 on   For D5509
	
		for(i=0;i<2000000;i++);
		*(int *)0x600000 = 0x0; //LED1 OFF  For Kingpro

		*(int *)0x60000a = 0x1; //L3  off   For D5509


    
      data = GPIO_DATA;
      data |= 0x0002;                  //GPIO1=high, L1 off for BGA5509
      GPIO_DATA = data;
      GPIO_DATA = data;

      data = GPIO_DATA;
      data |= 0x0080;                  //GPIO7=high, L2 off for D5509
      GPIO_DATA = data;
      GPIO_DATA = data;

         asm("\tBCLR XF");     // L1 on for D5509


		for(i=0;i<2000000;i++);
		*(int *)0x600000 = 0x1;//LED1 ON  for Kingpro

        asm("\tBSET XF");    // L1 off for D5509

		for(i=0;i<2000000;i++);
		*(int *)0x600001 = 0x0; //LED3 OFF  for Kingpro

         asm("\tBCLR XF");  // L1 on for D5509
		for(i=0;i<100000;i++);
		*(int *)0x600001 = 0x1;//LED3 ON  for Kingpro
		for(i=0;i<100000;i++);
		*(int *)0x600002 = 0x0; //LED2 OFF   for Kingpro
		for(i=0;i<100000;i++);
		*(int *)0x600002 = 0x1;//LED2 ON   for Kingpro


	}

}




⌨️ 快捷键说明

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