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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? convert_hex2ver.c

?? 這是基于s3c2410+uCos的LCD驅動程序源碼
?? C
字號:
/*------------------------------------------------------------------------
   This C file was developed by Altera Corporation.  It may be freely
   copied and/or distributed at no cost.  Any persons using this file for
   any purpose do so at their own risk, and are responsible for the results
   of such use.  Altera Corporation does not guarantee that this file is
   complete, correct, or fit for any particular purpose.  NO WARRANTY OF
   ANY KIND IS EXPRESSED OR IMPLIED.  This notice must accompany any copy
   of this file.
  ------------------------------------------------------------------------*/

/*------------------------------------------------------------------------
   Convert Intel Hex Format to Verilog Format
  ------------------------------------------------------------------------
   Version 1.0    Date 07/09/97

  ------------------------------------------------------------------------*/

#include <stdio.h>
#include <ctype.h>
#include <string.h>
#include "veriuser.h"
#include "acc_user.h"

#define TRUE 1
#define FALSE 0
#define MAX_BUFFER_SZ	2048
#define MAX_NAME_SZ		128
#define OUT_FILE_EXT 	".ver"
#define COLON			':'
#define OFFSET		  	9
#define H10		  		0x10L
#define AWORD			8
#define WORDS_PER_LINE	8
#define MASK15 			0x000000FFL
#define EXT_STR 		".ver"

typedef enum {
  OK = 0,
  WARNING = 1,
  ERROR = 2
} STATUS;
static int      line_no = 0;
/********************************************************************
 * char* trimAlteraExt(char* oldName, char* newName)
 * oldName : original file name.
 * newName : new file name which doesnt have file extension.
 *
 * This function trims the file extension
 * Looks for first "." and trims the file name afterwords.
********************************************************************/

char           *
trimAlteraExt(oldName, newName)
  char           *oldName;
  char           *newName;
{
  char            tempStr[MAX_BUFFER_SZ];
  char           *tempPtr = NULL;

  newName[0] = '\0';
  if (oldName[0] == '\0')
    return NULL;
  strcpy(tempStr, oldName);
  if (tempPtr = strstr(tempStr, ".")) {
    *tempPtr = '\0';
  }
  strcpy(newName, tempStr);
  return newName;
}

/****************************************************************/
int 
display_msg(status, str, data_file)
  STATUS          status;
  char           *str;
  char           *data_file;
{
  switch (status) {
  case WARNING:
    printf("WARNING: %s, %s\n\n", data_file, str);
    break;
  case ERROR:
    printf("ERROR:%s, line %d, %s\n\n", data_file, line_no, str);
    break;
  default:
    break;
  }
  return (TRUE);
}
/****************************************************************
  char *ltrim(str)
  char *str;
  Deletes leading blanks in string 'str'
****************************************************************/
char           *
ltrim(str)
  char           *str;
{
  int             i = 0, j = 0;

  /* Illeagal application. Returns NULL. */
  if (str == 0)
    return (0);
  /* Deletes leading blanks */
  while (*(str + i) == ' ' || *(str + i) == '\n' || *(str + i) == '\t' || *(str + i) == '\b')
    i++;
  for (; *(str + i) != '\0'; i++, j++)
    *(str + j) = *(str + i);
  /* Appends a NULL character to the end of the string */
  *(str + j) = '\0';

  return (str);
}
/****************************************************************
Function: write_data
Description: Write ROM data in the verilog format so that
	it can be read using readmemh(infile, rom)
Format:	example data format for the 8 bit data
		@1
		01 02 03 04 05 06 07 08
		@a
		0a 0b 0c
****************************************************************/
int 
write_data(ofp, nn, aaaa, off_addr, dddd, width)
  FILE           *ofp;
  long            nn, aaaa, off_addr;
  char           *dddd;
{
  int             count, i;
  char            data[MAX_BUFFER_SZ + 1];
  int             num_hexs, nibbles;


  if ((width % AWORD) == 0) {
    num_hexs = width / AWORD;
  } else {
    num_hexs = (width / AWORD) + 1;
  }

  fprintf(ofp, "@%x\n", aaaa + off_addr);

  nibbles = num_hexs * 2;
  count = 1;
  while (nn > 0) {
    if (nn >= num_hexs) {
      strncpy(data, dddd, nibbles);
      data[nibbles] = '\0';
    } else {
      for (i = 0; i < (num_hexs - nn); i++) {
	sprintf(data + i * 2, "%s", "00");
      }
      strcat(data + (num_hexs - nn), dddd);
    }
    if (count < WORDS_PER_LINE) {
      fprintf(ofp, "%s ", data);
      count++;
    } else {
      fprintf(ofp, "%s\n", data);
      count = 1;
    }
    dddd = dddd + nibbles;
    nn -= num_hexs;
  }
  if (count > 1)
    fprintf(ofp, "\n");


}
/****************************************************************/
/* Convert Intel-hex format data to verilog format data 		 */
/* Intel-hex format 	:nnaaaaattddddcc 						 */
/****************************************************************/
convert_hex2ver()
{
  char            buffer[MAX_BUFFER_SZ + 1];
  char            out_file[MAX_NAME_SZ + 1];
  char            init_filename[MAX_NAME_SZ + 1];
  char            dddd[MAX_BUFFER_SZ + 1];
  char           *in_file, *out_str;

  FILE           *ifp, *ofp;
  int             i;
  int             done = FALSE;
  int             first_rec = FALSE;
  int             last_rec = FALSE;
  int             width;
  long            off_addr, nn, aaaa, tt, cc, aah, aal, dd, sum;
  handle          wrk;
  static s_setval_value user_s = {accStringVal};
  static s_setval_delay delay;

  off_addr = nn = aaaa = tt = cc = aah = aal = dd = sum = 0;

  in_file = (char *) tf_getcstringp(1);
  width = tf_getp(2);
  trimAlteraExt(in_file, out_file);
  strcat(out_file, OUT_FILE_EXT);
  if ((ifp = fopen(in_file, "r")) == NULL) {
    printf("cannot read %s\n", in_file);
    fclose(ifp);
    return (1);
  }
  if ((ofp = fopen(out_file, "w")) == NULL) {
    printf("cannot write %s\n", out_file);
    fclose(ofp);
    return (1);
  }
  while (!done) {
    if (fgets(buffer, MAX_BUFFER_SZ, ifp) == NULL) {
      if (!first_rec)
	done = display_msg(WARNING, "Intel-hex data file is empty.", in_file);
      else if (!last_rec)
	done = display_msg(ERROR, "Missing the last record.", in_file);
    } else if (strlen(ltrim(buffer)) == 0) {
      line_no++;
    } else if (buffer && (buffer[0] == COLON)) {
      line_no++;
      first_rec = TRUE;
      sscanf(buffer + 1, "%02x%04x%02x", &nn, &aaaa, &tt);
      if ((tt == 2) && (nn != 2)) {
	done = display_msg(ERROR, "Invalid data record.", in_file);
      } else {
	sscanf(buffer + 3, "%02x%02x", &aah, &aal);
	sum = nn + aah + aal + tt;
	for (i = 0; i < nn; i++) {
	  sscanf(buffer + OFFSET + i * 2, "%02x", &dd);
	  sprintf(dddd + i * 2, "%02x", dd);
	  sum += dd;
	}
	sscanf(buffer + OFFSET + i * 2, "%02x\n", &cc);

	switch (tt) {
	case 0x00:		/* normal_record */
	  first_rec = TRUE;
	  if (((~sum + 1) & MASK15) == cc) {
	    write_data(ofp, nn, aaaa, off_addr, dddd, width);
	    off_addr = 0;
	  } else {
	    done = display_msg(ERROR, "Invalid checksum.", in_file);
	  }
	  break;
	case 0x01:		/* last record */
	  last_rec = TRUE;
	  if (((~sum + 1) & MASK15) != cc) {
	    display_msg(ERROR, "Invalid checksum.", in_file);
	  }
	  done = TRUE;
	  break;
	case 0x02:		/* address base record */
	  sscanf(dddd, "%x\n", &off_addr);
	  if (((~sum + 1) & MASK15) == cc) {
	    off_addr *= H10;
	  } else {
	    done = display_msg(ERROR, "Invalid checksum.", in_file);
	  }
	  break;
	default:
	  done = display_msg(ERROR, "Unknown record type.", in_file);
	  break;
	}			/* switch */
      }
    } else {
      line_no++;
      display_msg(ERROR, "Invalid INTEL HEX record", in_file);
      done = TRUE;
    }
  }
  fclose(ifp);
  fclose(ofp);
  /* append EXT_STR to the input string and pass it back in arg 1 */
  delay.model = accNoDelay;
  wrk = acc_handle_tfarg(3);
  trimAlteraExt(in_file, init_filename);
  strcat(init_filename, EXT_STR);
  user_s.value.str = init_filename;
  acc_set_value(wrk, &user_s, &delay);

  return (0);
}
s_tfcell veriusertfs[] = {
  {usertask, 0, 0, 0, convert_hex2ver, 0, "$convert_hex2ver"},
  {0}  /* last entry must be 0 */
};

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品夜色噜噜亚洲a∨| 国产精品久久三区| 欧美国产精品一区二区三区| 亚洲综合在线观看视频| 激情欧美一区二区| 欧美日韩一区二区三区免费看 | 国产一区激情在线| 欧美自拍偷拍一区| 中文字幕一区二区三区四区不卡| 蜜臀久久99精品久久久久宅男| 色婷婷综合久久久| 欧美国产在线观看| 国产在线不卡视频| 日韩精品一区在线观看| 性感美女久久精品| 在线视频欧美精品| 亚洲男人天堂av网| 色综合天天综合色综合av | 欧美麻豆精品久久久久久| 国产精品三级电影| 国产精品一区二区x88av| 欧美一区二区三区在| 亚洲国产成人va在线观看天堂| 波多野洁衣一区| 国产午夜精品一区二区| 精品一区二区久久久| 日韩美女视频在线| 捆绑调教美女网站视频一区| 日韩一区二区三区在线视频| 性久久久久久久| 欧美日韩精品系列| 午夜亚洲国产au精品一区二区 | 99精品视频免费在线观看| 久久久欧美精品sm网站| 狠狠色综合日日| 精品国产a毛片| 国产一区二区三区在线观看免费| 2020国产精品久久精品美国| 韩国一区二区视频| 日本一区二区在线不卡| 成人性生交大片免费看视频在线 | 国产91色综合久久免费分享| 久久综合狠狠综合久久综合88 | 精品88久久久久88久久久| 久久99精品久久久久久久久久久久| 91精品欧美久久久久久动漫| 久久精品免费观看| 国产欧美日韩三级| 91福利视频久久久久| 午夜精品福利一区二区三区av| 日韩欧美电影一区| 国产高清不卡二三区| 亚洲免费观看高清完整版在线观看| 91色九色蝌蚪| 日本va欧美va欧美va精品| www精品美女久久久tv| 99精品国产91久久久久久| 亚洲一区二区三区中文字幕| 欧美一级片在线观看| 国产福利91精品一区二区三区| 国产精品成人一区二区艾草 | 99久久精品国产一区二区三区| 亚洲男同性恋视频| 日韩一级大片在线观看| 成人福利视频网站| 午夜精品久久久久久久| 久久婷婷国产综合精品青草| 色久综合一二码| 精品一区二区在线视频| 亚洲女同ⅹxx女同tv| 日韩视频免费观看高清完整版| 成人在线视频一区二区| 日精品一区二区| 国产精品国产a| 337p亚洲精品色噜噜| 成人av小说网| 免费不卡在线视频| 亚洲色图欧美激情| 久久亚洲春色中文字幕久久久| 97久久精品人人做人人爽50路| 视频一区视频二区中文| 国产精品欧美精品| 日韩欧美国产系列| 91国在线观看| 成人妖精视频yjsp地址| 麻豆91免费观看| 亚洲福利一区二区三区| 国产日韩高清在线| 欧美一级片在线观看| 91黄色激情网站| 北岛玲一区二区三区四区| 久久精品国产免费| 五月激情综合色| 亚洲欧美激情一区二区| 中文字幕乱码一区二区免费| 日韩视频一区在线观看| 欧美视频一区在线| 91色.com| 91小视频免费观看| 成人一区二区三区中文字幕| 狠狠v欧美v日韩v亚洲ⅴ| 亚洲成人7777| 亚洲制服丝袜av| 亚洲精品视频免费观看| 亚洲欧洲日韩女同| 国产精品理伦片| 国产精品三级电影| 日本一区二区综合亚洲| 欧美韩日一区二区三区四区| 久久在线免费观看| 26uuu成人网一区二区三区| 日韩一级完整毛片| 日韩精品中文字幕一区| 日韩精品一区二| 欧美tickling网站挠脚心| 日韩视频在线你懂得| 日韩一区二区三区视频| 日韩午夜在线影院| 精品国产自在久精品国产| 精品欧美一区二区久久| 久久久一区二区| 国产三区在线成人av| 国产日产欧美一区二区视频| 欧美激情一区二区三区四区 | 亚洲精品在线电影| 精品对白一区国产伦| 久久精品欧美一区二区三区麻豆| 久久久午夜电影| 亚洲欧洲另类国产综合| 亚洲免费观看在线视频| 天天av天天翘天天综合网| 裸体歌舞表演一区二区| 国产一区中文字幕| 不卡的av在线播放| 欧洲国产伦久久久久久久| 欧美日本一道本在线视频| 日韩欧美一级在线播放| 国产午夜精品美女毛片视频| 亚洲视频网在线直播| 亚洲成年人网站在线观看| 久久99精品久久久久久国产越南 | 欧美日韩午夜在线| 日韩精品一区二区三区在线| 久久夜色精品国产噜噜av| 国产精品久久久99| 亚洲成人免费视| 国内久久精品视频| 91麻豆国产香蕉久久精品| 欧美精品亚洲二区| 国产夜色精品一区二区av| 一区二区三区在线观看国产| 天堂在线一区二区| 成人动漫中文字幕| 91精品国产入口| 国产精品青草久久| 日韩成人免费在线| 99精品热视频| 精品成人一区二区三区| 亚洲图片激情小说| 久草这里只有精品视频| 一本色道久久综合亚洲91| 日韩一区二区电影| 一区二区三区资源| 大桥未久av一区二区三区中文| 欧美日韩一卡二卡三卡| 国产精品夫妻自拍| 黑人巨大精品欧美黑白配亚洲| 欧美综合亚洲图片综合区| 国产性做久久久久久| 秋霞影院一区二区| 色婷婷综合视频在线观看| 国产婷婷一区二区| 蜜桃视频在线一区| 欧美日韩一级二级三级| 国产精品狼人久久影院观看方式| 蜜桃久久精品一区二区| 欧美日韩久久一区二区| 日韩美女久久久| 国产成人午夜99999| 精品日韩欧美一区二区| 日本网站在线观看一区二区三区| 97精品久久久久中文字幕| 国产精品素人一区二区| 黄网站免费久久| 欧美成人aa大片| 麻豆视频观看网址久久| 欧美美女黄视频| 午夜影视日本亚洲欧洲精品| 色狠狠综合天天综合综合| 中文字幕在线不卡| 91在线免费视频观看| 国产精品乱人伦中文| 高清不卡一二三区| 国产亚洲va综合人人澡精品 | 美女视频一区二区三区| 7777精品伊人久久久大香线蕉 | 亚洲国产美女搞黄色| 91蜜桃免费观看视频| 亚洲少妇屁股交4| 色丁香久综合在线久综合在线观看|