亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? flash.c

?? 使用于DSK6711中的很多好用的例子,源代碼
?? C
字號:
/*-------------------------------------------------------------------------*/
/* FILENAME: flash.c -- DSK - HOST Code                                    */
/*                                                                         */
/*  Rev 2.04   11  May 2001  Z.Zhang, T.J.Dillon                           */
/*                                                                         */
/*-------------------------------------------------------------------------*/
/*  HISTORY                                                                */
/*  Rev 1.00   Created by Z.Zhang                                          */
/*  Rev 2.00   Update for C6711 DSK to include user command line options   */
/*  Rev 2.01   Added error detection for hex formats                       */
/*  Rev 2.02   Added command line filename, test for flash page boundary   */
/*  Rev 2.03   Corrected error in number of characters for filename        */
/*  Rev 2.04   Update for CCS2.0 support                                   */
/*                                                                         */
/*-------------------------------------------------------------------------*/

#include <stdio.h>
#include <windows.h>
#include "dsk6x11hpi.h"
#include "c6x11dsk.h"
                                      
#define DSP_BUFFER_ADDR 0x200
#define PWD  0x12345678
#define DISPLAY_SIZE 10
 
static  FILE *hex_fp=NULL;
static  FILE *pBoardFile=NULL;
char *DefaultBoard = ".\\..\\..\\..\\cc\\bin\\BrdDat\\dsk6x11.cfg";

BOOL	FILEDefined=FALSE;  
BOOL	InfoOnly=FALSE;
BOOL	ADDRDefined=FALSE;  

/*-------------------------------------------------------------------------*/
/* main()                                                                  */
/*-------------------------------------------------------------------------*/

void main(int argc1, char *argv1[])
{
  dskHANDLE hBd;		/* Board device handle                             */
  short  iBd    = 0;    /* Board index                                     */
  BOOL   bExcl  = 1;    /* Exclusive open = TRUE                           */
  char coffNam[20]= "flash_prog.out";
                        /* COFF file name                                  */
  BOOL bVerbose = 0;    /* COFF load verbose mode = FALSE                  */
  BOOL bClr     = 0;    /* Clear bss mode = FALSE                          */
  BOOL bDump    = 0;    /* Dump mode = FALSE                               */
  char *sBoardFile = DefaultBoard;

  char hex_filename[80]="\0";
  unsigned long host_buffer[33];

  ULONG nPort=0xa;
  unsigned long length;
  int flag, data_flag, i, j, data, header;
  unsigned long checksum, flash_addr=0x90000000, display_count;
  char *data_ptr, Change[4]="\0";

  /*-----------------------------------------------------------------------*/
  /* Parse Command Line                                                    */
  /*-----------------------------------------------------------------------*/
  for(i=1; argc1 > i; i++)
  {
    if( argv1[i][0] != '-' )
    {
      strncpy(hex_filename,argv1[i],39);
      FILEDefined=TRUE;
    }
    else
    {
      switch(tolower(argv1[i][1]))
      {
        case 'h':
        case '?':
          printf( "Syntax: flash [-?] [-pport] [-saddr] [filename]\n");
          printf( "\n");
          printf( "  -?,h   : Displays command line help info.\n");
          printf( "  -ffilename.ext : Specifies the board configuration file.\n");
          printf( "  -saddr : Defines start addr to program flash.\n");
          printf( "filename : Name of hex file to program flash.\n\n");
          printf( "NOTE: This utility works with ASCII-Hex files ONLY!\n");
          printf("\nTMS320C6211/6711 DSK Flash Programming Utility ");
          printf("Version 2.04,  May 2001");
          printf("\nCopyright (c) 2001 ");
          printf("by Texas Instruments Incorporated. ");
          printf("\nAll rights reserved.\n\n");
		  InfoOnly=TRUE;
          break;
        case 'f':
		  sBoardFile = &argv1[i][2];
		  break;
        case 's':
          sscanf(&argv1[i][4],"%x",&flash_addr);
		  ADDRDefined=TRUE;
          break;
        default:
          printf( "\nOPTION (-%c) IGNORED: \n  Valid options are -?,-h,-pport and -saddr!\n",argv1[i][1]);
          break;
      }
    }
  }

  /*-----------------------------------------------------------------------*/
  /* Quit if -h or -? option used                                          */
  /*-----------------------------------------------------------------------*/
  if(InfoOnly)
	  exit(99);

  /*-----------------------------------------------------------------------*/
  /* Print Program header                                                  */
  /*-----------------------------------------------------------------------*/
  printf("\nTMS320C6211/6711 DSK Flash Programming Utility");
  printf(", Version 2.04,  May 2001 ");
  printf("\nCopyright (c) 2001 ");
  printf("by Texas Instruments Incorporated. ");
  printf("All rights reserved.\n\n");

  
  pBoardFile = fopen( sBoardFile, "r" );
  if ( pBoardFile == NULL )
  {
	 printf( "ERROR: Please specify a valid board configuration file via the -f option.\n" );
	 exit(1);
  }
  else
  {
	 fclose(pBoardFile);
  }

  /*-----------------------------------------------------------------------*/
  /* Request name of .hex file                                             */
  /*-----------------------------------------------------------------------*/
  if(!FILEDefined)
  {
	printf ("\nInput the name of the .hex file to be programmed in flash:\n");
	scanf ("%s", &hex_filename);
  }

  /*-----------------------------------------------------------------------*/
  /* Append .hex to filename (if missing)                                  */
  /*-----------------------------------------------------------------------*/
  if(strchr( hex_filename, '.') == NULL)
	  strcat( hex_filename, ".hex");

  /*-----------------------------------------------------------------------*/
  /* Request start address                                                 */
  /*-----------------------------------------------------------------------*/
  if(!ADDRDefined)
  {
	printf("\nDefault Start Address to program flash=0x%x \n",flash_addr);
	printf("  Do you want to keep it? (Yes/No): "); /* Yes to keep default */
	scanf("%s",Change);

	if(!strncmp("Yes",Change,1) || !strncmp("yes",Change,1))
	{    /* Keep default    */
	}
	else /* Enter new value */
	{
	  printf("Input Start Address to program flash: ");
	  scanf("%x",&flash_addr);
	}
  }

  /*-----------------------------------------------------------------------*/
  /* Test for start address within range of FLASH                          */
  /*-----------------------------------------------------------------------*/
  if ( flash_addr < 0x90000000 )
  {
	  printf ("\nERROR: Start address < 0x90000000!\n");
	  exit(0);
  }
		  
  if (flash_addr >= 0x90020000)
  {
	 printf ("\nERROR: Start address > 0x90020000!\n");
	 exit(0);
  }

  if (flash_addr % 0x80)
  {
	 printf ("\nERROR: Start address not on 0x80 page boundary!\n");
	 exit(0);
  }

  /*-----------------------------------------------------------------------*/
  /* Test for filename                                                     */
  /*-----------------------------------------------------------------------*/
  if ( (hex_fp=fopen( hex_filename, "r" ))== NULL )
  {
     printf( "\nERROR: File %s does not exist!\n\n", hex_filename );
     exit(0);
  }

  /*-----------------------------------------------------------------------*/
  /* Open a driver connection to a dsk6x board.                            */
  /*-----------------------------------------------------------------------*/
  if ( !dsk6x_open(sBoardFile,&hBd) ) 
  {
	  printf ("FAILED: dsk6x_open()!\n");
	  exit(1);
  }

  /*-----------------------------------------------------------------------*/
  /* Cause a DSP reset.                                                    */
  /*-----------------------------------------------------------------------*/
  if ( !dsk6x_reset_dsp(hBd,0,1) )
  {
	  printf ("FAILED: dsk6x_reset_dsp()!\n");
	  exit(2);
  }

  /*-----------------------------------------------------------------------*/
  /* Establish a connection to the HPI of a target board.                  */
  /*-----------------------------------------------------------------------*/
  if ( !dsk6x_hpi_open(hBd))
  {
	  printf ("FAILED: dsk6x_hpi_open()!\n");
	  exit(3);
  }

  /*-----------------------------------------------------------------------*/
  /* Read a COFF file and write the data to DSP memory.                    */
  /*-----------------------------------------------------------------------*/
  if (dsk6x_coff_load(hBd,coffNam,bVerbose,bClr,bDump))
  {
	  printf("FAILED: dsk6x_coff_load()!\n");
	  exit(4);
  }
 
  /*-----------------------------------------------------------------------*/
  /* Generate a DSPINT to start program                                    */
  /*-----------------------------------------------------------------------*/
  if (!dsk6x_hpi_generate_int(hBd)) 
  {
	  printf("FAILED: dsk6x_hpi_generate_int()!\n");
	  exit(5);
  }

  length = 4; /* 4 bytes for 1 word */
  flag =0;

  /*-------------------------------------------------------------------*/
  /* wait till dsp is ready.                                           */
  /*-------------------------------------------------------------------*/
  while (flag == 0)
  {
      /*---------------------------------------------------------------*/
      /* Read data from dsp                                            */
      /*---------------------------------------------------------------*/
	  if (!dsk6x_hpi_read(hBd, host_buffer, &length, 
        DSP_BUFFER_ADDR) || length != 4)
      { /* evm6x_hpi_read() failed */
		    continue; // try again
      }

	  /*---------------------------------------------------------------*/
	  /* Test if dsp is ready                                          */
	  /*---------------------------------------------------------------*/
	  if(host_buffer[0] == PWD) flag = 1;  
  } 
 
  /*-------------------------------------------------------------------*/
  /* Send handshaking back to DSP                                      */
  /*-------------------------------------------------------------------*/
  length = 4;
  host_buffer[0] = 0;
  host_buffer[1] = flash_addr;
   
  if (!dsk6x_hpi_write(hBd, &host_buffer[1], &length, 
        DSP_BUFFER_ADDR + 4) || length != 4)
  { 
	  printf("ERROR: dsk6x_hpi_write() - flash address!\n");
	  exit(0);
  }

  if (!dsk6x_hpi_write(hBd, &host_buffer[0], &length, 
        DSP_BUFFER_ADDR) || length != 4)
  { 
	  printf("ERROR: dsk6x_hpi_write() - handshake flag!\n");
	  exit(0);
  }


  /*-------------------------------------------------------------------*/
  /* Send DSP Packets to program the FLASH                             */
  /*-------------------------------------------------------------------*/
  data_flag = 0;
  checksum = 0;
  display_count = 0;
  if ( (header=fgetc(hex_fp)) == 0x02)
  {  // do nothing
  }
  else
  {
	  printf("ERROR: ASCII-Hex format required by Flash Utility!\n");
	  printf("  Hex file format=");
	  if(header==0x3A)
	  {
		  printf("Intel MCS-86 format (hex6x -i).\n");
	  }
	  else if(header==0x53)
	  {
		  printf("Motorola Exorciser format (hex6x -m).\n");
	  }
	  else if(header==0x4B)
	  {
		  printf("TI SDSMAC format (hex6x -t).\n");
	  }
	  else if(header==0x25)
	  {
		  printf("Extended Tektronix format (hex6x -x).\n");
	  }
	  else
	  {
		  printf("Unknown format ** Header=0x%x!\n",header);
	  }
	  
	  printf("SOLUTION: Rerun hex conversion with ASCII-Hex format (hex6x -a)!!\n");
	  exit(0);
  }
/*  fgetc(hex_fp); * skip the header character in the file */
  printf("Programming the flash.");
  while (data_flag == 0)
  {
	  display_count++;
	  if ( display_count == DISPLAY_SIZE)
	  {
		  display_count = 0;
		  printf (".");
	  }
	  
	  data_ptr = (char *)&host_buffer[1];
	  for (i =0;i<FLASH_WRITE_SIZE;i++) 
	  {
		  j = fscanf(hex_fp,"%x", &data);
		  *data_ptr = data;
		  checksum += (unsigned int)*data_ptr++;
		  if (j == EOF || j == 0)
		  {
			  data_flag = 1;
		  }
		  flash_addr += 1;
		  if (flash_addr > 0x90020000)
		  {
			  printf ("ERROR: dsk6x_hpi_write() - beyond valid flash address!\n");
			  exit(0);
		  }

	  }

	  if(data_flag == 0)
	  {
		  length = FLASH_WRITE_SIZE;
          if (!dsk6x_hpi_write(hBd, &host_buffer[1], &length, 
             DSP_BUFFER_ADDR+4) || length != 128)
		  { 
	          printf("ERROR: dsk6x_hpi_write() - host packet!\n");
	          exit(0);
		  }
	  }

	  length = 4;
	  if (data_flag == 0) host_buffer[0] = 1;
	  else host_buffer[0] = 2;
     
	  if (!dsk6x_hpi_write(hBd, host_buffer, &length, 
        DSP_BUFFER_ADDR) || length != 4)
	  { 
	     printf("ERROR: dsk6x_hpi_write() - host packet command 1!\n");
	     exit(0);
	  }
 
	  flag =0;
      while (flag == 0)
	  {
    	 if (!dsk6x_hpi_read(hBd, host_buffer, &length, 
           DSP_BUFFER_ADDR) || length != 4)
		 { /* evm6x_hpi_read() failed */
		    continue; // try again
		 }
	     if(host_buffer[0] == 0) flag = 1;
	  } 

  }

  length = 4;
  host_buffer[0] = 1;
      
  if (!dsk6x_hpi_write(hBd, host_buffer, &length, 
        DSP_BUFFER_ADDR) || length != 4)
  { 
     printf("ERROR: dsk6x_hpi_write() - host packet command 2!\n");
     exit(0);
  }

  length = 8; /* 4 bytes for 1 word */
  flag =0;

  while (flag == 0)
  {
  	  if (!dsk6x_hpi_read(hBd, host_buffer, &length, 
        DSP_BUFFER_ADDR) || length != 8)
      { /* evm6x_hpi_read() failed */
		    continue; // try again
      }

	  if(host_buffer[0] == PWD) flag = 1;  
  } 
  
  /*-------------------------------------------------------------------*/
  /* Finish up                                                         */
  /*-------------------------------------------------------------------*/
  printf ("\n");
  if (checksum == host_buffer[1]) 
	  printf("Flash successfully programmed!\n");
  else 
	  printf("ERROR: Checksum does not match!\n");

  /*-------------------------------------------------------------------*/
  /* Close hex file                                                    */
  /*-------------------------------------------------------------------*/
  fclose(hex_fp);

  dsk6x_close(hBd);
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产中文字幕一区| 亚洲精品欧美综合四区| 色天使色偷偷av一区二区| 99精品久久只有精品| 久久成人麻豆午夜电影| 亚洲女同ⅹxx女同tv| 国产欧美日本一区二区三区| 亚洲免费观看高清完整版在线观看 | 久久久久9999亚洲精品| 日韩av二区在线播放| 欧美精品一区男女天堂| 九色综合国产一区二区三区| 国产精品久久久99| 欧美sm极限捆绑bd| 91麻豆免费看片| 国产69精品久久久久777| 天使萌一区二区三区免费观看| 久久久综合网站| 91黄色激情网站| 欧美一区二区国产| 91视频在线观看| 国产盗摄女厕一区二区三区| 亚洲国产乱码最新视频| 亚洲桃色在线一区| 久久久一区二区| 日韩亚洲电影在线| 欧洲精品一区二区三区在线观看| 播五月开心婷婷综合| 99久精品国产| 色婷婷久久久久swag精品| proumb性欧美在线观看| 色八戒一区二区三区| 粉嫩久久99精品久久久久久夜| 久久se这里有精品| 国产一区二区不卡| 成人午夜视频福利| 成人免费福利片| 日本道精品一区二区三区| 91香蕉视频mp4| 91福利在线导航| 欧美日韩黄视频| 精品国产91亚洲一区二区三区婷婷| 欧美日韩一区二区欧美激情| 波波电影院一区二区三区| 91在线视频官网| 欧美剧情片在线观看| 欧美成人福利视频| 国产精品美日韩| 亚洲成人中文在线| 精品无码三级在线观看视频| 久热成人在线视频| 欧美亚洲尤物久久| 欧美一区二区三区色| 精品久久久网站| 一区二区高清免费观看影视大全| 五月天激情综合网| 色婷婷久久久久swag精品| 久久久电影一区二区三区| 亚洲高清视频的网址| 国产一区视频网站| 精品视频在线免费| 亚洲人成影院在线观看| 极品美女销魂一区二区三区| 欧美午夜一区二区三区免费大片| 精品国产sm最大网站免费看| 亚洲第一在线综合网站| 白白色 亚洲乱淫| 337p粉嫩大胆色噜噜噜噜亚洲| 亚洲精品综合在线| 97久久精品人人爽人人爽蜜臀| 欧美欧美欧美欧美首页| 国产精品超碰97尤物18| 国内精品不卡在线| 免费观看在线综合色| 欧美视频中文字幕| 中文字幕综合网| 色先锋aa成人| 亚洲精品免费视频| 国产精品视频一二三| 国产一区二区不卡| 久久久久综合网| 国产精品一二一区| 九色综合国产一区二区三区| 精品欧美乱码久久久久久1区2区| 蜜臀精品久久久久久蜜臀| 精品91自产拍在线观看一区| 大胆亚洲人体视频| 一区二区三区成人在线视频| 成人午夜视频网站| 亚洲国产中文字幕在线视频综合| 精品视频在线免费| 精品一区二区在线看| 国产欧美日韩另类一区| 成人综合在线视频| 亚洲精品欧美激情| 欧美一区日本一区韩国一区| 国产乱妇无码大片在线观看| 综合激情成人伊人| 亚洲一区二区三区在线播放| 欧美一区二区三区性视频| 国产精品一区二区你懂的| 亚洲一区二区欧美| 久久色中文字幕| 欧美日韩国产中文| 国内偷窥港台综合视频在线播放| 亚洲色图.com| 欧美精品一区二区久久久| 色999日韩国产欧美一区二区| 一区二区成人在线观看| 欧美午夜精品久久久久久孕妇| 91丝袜美女网| 蜜桃一区二区三区四区| 日本一区二区免费在线 | 欧美精品日韩精品| 国产91色综合久久免费分享| 青青草成人在线观看| 亚洲欧美日韩国产一区二区三区 | 中文字幕精品一区二区三区精品| 欧美日韩国产一二三| aaa亚洲精品| 国产成人自拍网| 91黄视频在线| 国产99精品在线观看| 国产福利电影一区二区三区| 麻豆精品一二三| 久久爱另类一区二区小说| 视频一区二区三区在线| 亚洲国产日日夜夜| 亚洲影视在线观看| 一区二区三区国产精品| 一区av在线播放| 一区二区激情视频| 亚洲黄一区二区三区| 亚洲一区二区五区| 三级久久三级久久久| 日韩**一区毛片| 国产一区视频导航| 成人小视频免费观看| 91极品美女在线| 欧美人动与zoxxxx乱| 日韩精品一区二区三区中文不卡 | 777色狠狠一区二区三区| 欧美日韩dvd在线观看| 日韩视频在线永久播放| 久久新电视剧免费观看| 亚洲卡通动漫在线| 九色porny丨国产精品| 久久精品国产免费| 成人激情综合网站| 欧美色图第一页| 久久网这里都是精品| 亚洲午夜在线视频| 激情五月婷婷综合网| 91久久精品一区二区二区| 日韩免费电影网站| 亚洲欧洲精品成人久久奇米网| 午夜影院在线观看欧美| 成人一区二区三区| 在线免费av一区| 中文字幕一区二区三区蜜月| 一区二区三区中文字幕电影| 韩国v欧美v亚洲v日本v| 在线精品观看国产| 久久婷婷色综合| 男女男精品视频| 色婷婷综合中文久久一本| 欧美精品一区二区精品网| 一区二区三区视频在线看| 国产精品亚洲人在线观看| 宅男噜噜噜66一区二区66| 综合久久一区二区三区| 国产**成人网毛片九色| 欧美日本乱大交xxxxx| 亚洲嫩草精品久久| 大白屁股一区二区视频| 久久青草国产手机看片福利盒子| 亚洲国产精品综合小说图片区| 成人app在线| 亚洲国产精品成人综合色在线婷婷| 麻豆精品新av中文字幕| 日韩亚洲欧美一区二区三区| 香港成人在线视频| 日韩一区二区电影在线| 国产精品久久久久精k8 | 99riav久久精品riav| 欧美xxxxxxxxx| 岛国精品在线观看| 中文字幕在线播放不卡一区| 波多野结衣中文字幕一区| 国产精品激情偷乱一区二区∴| 国产一区二区女| 日本一区二区成人在线| 99视频一区二区| 亚洲自拍偷拍av| 欧美一区二区在线看| 福利一区福利二区| 久久久久久电影| 在线播放中文字幕一区| 国产一区视频网站| 亚洲桃色在线一区|