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

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

?? xmodel.c

?? uclinux中xmodel協(xié)議源碼
?? C
字號:
//s3c44b0開發(fā)板與windows或linux 通過串口進行文件傳輸
/**********************************************************************************************************************************
命令字
xmodel /tmp/tset.txt

******************************************************************************************************************************/
#include     <stdio.h>
#include     <stdlib.h>
#include     <unistd.h>
#include     <sys/types.h>
#include     <sys/stat.h>
#include     <fcntl.h>
#include     <termios.h>
#include     <errno.h>
#include     <time.h>

/*
Xmodem Frame form: <SOH><blk #><255-blk #><--128 data bytes--><CRC hi><CRC lo>
*/

#define XMODEM_SOH 0x01
#define XMODEM_STX 0x02
#define XMODEM_EOT 0x04
#define XMODEM_ACK 0x06
#define XMODEM_NAK 0x15
#define XMODEM_CRC_CHR 'C'
#define XMODEM_CRC_SIZE 2   /* Crc_High Byte + Crc_Low Byte */
#define XMODEM_FRAME_ID_SIZE 2 /* Frame_Id + 255-Frame_Id */
#define XMODEM_DATA_SIZE_SOH 128  /* for Xmodem protocol */
#define XMODEM_DATA_SIZE_STX 1024 /* for 1K xmodem protocol */
#define USE_1K_XMODEM 0  /* 1 for use 1k_xmodem 0 for xmodem */


 #define XMODEM_DATA_SIZE  XMODEM_DATA_SIZE_SOH
 #define XMODEM_HEAD   XMODEM_SOH

/*********/

#define SERIAL_DEVICE "/dev/ttyS1"
#define MYBAUDRATE B115200

/***************SUB PROGRAM*******/
unsigned short GetCrc16 ( char *ptr, unsigned short count )
{
 unsigned short crc, i;

 crc = 0;
 while(count--)
 {
  crc = crc ^ (int) *ptr++ << 8;
 
  for(i = 0; i < 8; i++)
  {
   if(crc & 0x8000)
    crc = crc << 1 ^ 0x1021;
   else   
    crc = crc << 1;
  }
 }

 return (crc & 0xFFFF);
}

/*******************************/
int Initial_SerialPort(void)
{
 int fd;
 struct termios options;

 fd = open( SERIAL_DEVICE , O_RDWR | O_NOCTTY | O_NDELAY );
 if ( fd == -1 )
 { 
  /*open error!*/
  perror("Can't open serial port!");
  return -1;
 }

 /*Get the current options for the port...*/
 tcgetattr(fd, &options);

 /*Set the baud rates to BAUDRATE...*/
 cfsetispeed(&options,MYBAUDRATE);
 cfsetospeed(&options,MYBAUDRATE);
 tcsetattr(fd, TCSANOW, &options);
 if (0 != tcgetattr(fd, &options)) 
 {
  perror("SetupSerial 1");
  return -1;
 } 
 
 /*
  * 8bit Data,no partity,1 stop bit...
  */
 options.c_cflag &= ~PARENB;
 options.c_cflag &= ~CSTOPB;
 options.c_cflag &= ~CSIZE;
 options.c_cflag |= CS8;
 tcflush(fd,TCIFLUSH);

 /***Choosing Raw Input*/
 options.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG);
 options.c_oflag &= ~OPOST; 

 /*
  * Set the new options for the port...
  */
 if (0 != tcsetattr(fd, TCSANOW, &options))
 {
   perror("SetupSerial error");
   return -1 ;
 }

 return fd ;
}

//******************************
void ClearReceiveBuffer(int fd)
{
 unsigned char tmp;
 while ((read(fd,&tmp,1))>0);
 
 return;
}

//********************************
int main(int argc,char *argv[])
{
 int fd;
 char *data_file_name;
 char packet_data[ XMODEM_DATA_SIZE ];
 char frame_data[ XMODEM_DATA_SIZE + XMODEM_CRC_SIZE + XMODEM_FRAME_ID_SIZE + 1 ];
 unsigned char tmp;
 FILE *datafile;
 int complete,retry_num,pack_counter,read_number,write_number,i;
 unsigned short crc_value;
 unsigned char ack_id;

 printf("sx-at91 started...\r\n");
 
 //**open serial port1
 if ( (fd = Initial_SerialPort()) == -1)  
  return -1 ;

 data_file_name = argv[1];

 if((datafile=fopen(data_file_name,"rb"))==NULL)
 {
  perror ("Can't open file!");
  return -1 ;
 }

 //*******************************
 
 pack_counter = 0;
 complete = 0;
 retry_num = 0;
 ClearReceiveBuffer(fd);

 while((read(fd,&ack_id,1))<=0);
 
 printf("%c\r\n",ack_id);
 ack_id=XMODEM_ACK;
 while(!complete)
 {
  switch(ack_id)
  {
  case XMODEM_ACK:
   retry_num = 0;
   pack_counter++;
   read_number = fread( packet_data, sizeof(char), XMODEM_DATA_SIZE, datafile);
   if(read_number>0)
   {
    if(read_number<XMODEM_DATA_SIZE_SOH)
    {
   
     printf("Start filling the last frame!\r\n");
     for(;read_number<XMODEM_DATA_SIZE;read_number++)
      packet_data[read_number] = 0x00;
    }
    frame_data[0] = XMODEM_HEAD;
    frame_data[1] = (char)pack_counter;
    frame_data[2] = (char)(255-frame_data[1]);
 
    for(i=0;i<XMODEM_DATA_SIZE;i++)
     frame_data[i+3]=packet_data[i];
 
    crc_value = GetCrc16(packet_data,XMODEM_DATA_SIZE);
    frame_data[XMODEM_DATA_SIZE_SOH+3]=(unsigned char)(crc_value >> 8);
    frame_data[XMODEM_DATA_SIZE_SOH+4]=(unsigned char)(crc_value);
    write_number = write( fd, frame_data, XMODEM_DATA_SIZE_SOH + 5);
    printf("waiting for ACK,%d,%d,...",pack_counter,write_number);
    while((read(fd,&ack_id,1))<=0);
   
    if(ack_id == XMODEM_ACK)
     printf("Ok!\r\n");
    else
     printf("Error!\r\n");
   }
   else
   {
    ack_id = XMODEM_EOT;
    complete = 1;
    printf("Waiting for complete ACK ...");
   
    while(ack_id != XMODEM_ACK)
    {
     ack_id = XMODEM_EOT; 
     write_number=write(fd,&ack_id,1);
     while((read(fd,&ack_id,1))<=0);
    }
    printf("OK\r\n");
  
    printf("Sending file complete\r\n");
   }
  break;

  case XMODEM_NAK:
   if( retry_num++ > 10) 
   {
    printf("Retry too many times,Quit!\r\n");
    complete = 1;
   }
   else
   {
    write_number = write(fd,frame_data,XMODEM_DATA_SIZE + 5);
    printf("Retry for ACK,%d,%d...",pack_counter,write_number);
    while((read(fd,&ack_id,1))<=0);
    
    if( ack_id == XMODEM_ACK )
     printf("OK\r\n");
    else
     printf("Error!\r\n");
   }
  break;

  default:
   printf("Fatal Error!\r\n");
   complete = 1;
  break;
  }

 }

 fclose(datafile);
 close(fd);

 return 0;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
最近中文字幕一区二区三区| 国产欧美日韩三级| 91网站最新地址| 国产91高潮流白浆在线麻豆| 久久99精品国产麻豆婷婷洗澡| 欧美高清视频一二三区| 欧美午夜宅男影院| 欧美老肥妇做.爰bbww| 欧美日精品一区视频| 欧美日韩三级在线| 欧美日韩国产精品自在自线| 88在线观看91蜜桃国自产| 91精品国产综合久久精品麻豆 | av一二三不卡影片| 成人av片在线观看| 色综合久久综合网97色综合| 欧美无砖砖区免费| 欧美一级在线视频| 国产亚洲欧美激情| 亚洲蜜桃精久久久久久久| 亚洲最大色网站| 免费观看在线综合| 99视频在线精品| 欧美日韩国产一区| 久久九九全国免费| 亚洲夂夂婷婷色拍ww47 | 欧美色视频在线| 日韩丝袜情趣美女图片| 久久久激情视频| 亚洲精品国产一区二区精华液| 中文字幕日本乱码精品影院| 亚洲图片有声小说| 国产一区二区三区av电影| 99re热这里只有精品视频| 欧美剧情片在线观看| 国产免费久久精品| 午夜亚洲国产au精品一区二区| 蜜臀久久99精品久久久久久9| 国产精品主播直播| 欧美三级资源在线| 国产精品久久久久影视| 日韩vs国产vs欧美| 99久久精品久久久久久清纯| 欧美精品自拍偷拍| 亚洲少妇中出一区| 久久国产精品露脸对白| 欧美主播一区二区三区美女| 国产夜色精品一区二区av| 午夜视频久久久久久| 99久久综合色| 久久久噜噜噜久久中文字幕色伊伊| 亚洲欧美中日韩| 久草在线在线精品观看| 欧美视频在线一区| 亚洲男人的天堂网| 大陆成人av片| 久久久久久麻豆| 蜜桃传媒麻豆第一区在线观看| 高清在线不卡av| 日韩一区二区三区在线观看| 亚洲女女做受ⅹxx高潮| 成人动漫视频在线| 久久网站热最新地址| 欧美a级理论片| 欧亚一区二区三区| 国产精品久久毛片a| 国产激情91久久精品导航| 日韩亚洲欧美一区二区三区| 亚洲高清视频在线| 色狠狠色狠狠综合| 亚洲欧美国产三级| 欧美亚洲综合网| 亚洲午夜激情网页| 欧美精品 国产精品| 亚洲成人精品一区二区| 日韩一二三区视频| 麻豆中文一区二区| 日韩女优视频免费观看| 日韩二区三区四区| 欧美精品日韩综合在线| 日韩av在线免费观看不卡| 91.com在线观看| 免费在线观看一区| 亚洲精品一区二区三区福利 | 免费在线看一区| 日韩欧美在线123| 精品在线你懂的| 国产午夜精品一区二区三区视频| 日本午夜一本久久久综合| 欧美一区二区视频观看视频 | 欧美变态tickling挠脚心| 黄色资源网久久资源365| 久久久久亚洲蜜桃| 国产成人在线视频网站| 国产精品美女久久久久aⅴ | 国产精品综合av一区二区国产馆| 精品久久五月天| av欧美精品.com| 亚洲电影中文字幕在线观看| 日韩视频永久免费| 国产成都精品91一区二区三| 亚洲女人****多毛耸耸8| 欧美日韩一区二区在线观看视频| 亚洲一区视频在线观看视频| 91精品国产综合久久久久久久久久| 奇米影视在线99精品| 国产精品私人自拍| 在线不卡的av| 国产91丝袜在线播放0| 亚洲成人激情综合网| 欧美激情中文不卡| 91精品国产综合久久精品图片| 国产在线精品免费| 一区二区三区加勒比av| 亚洲精品一区二区精华| 欧美日韩一区二区三区高清| 国产精品一区二区视频| 亚洲第一二三四区| 午夜精品一区在线观看| 精品国产自在久精品国产| 91亚洲资源网| 国产麻豆精品95视频| 天堂午夜影视日韩欧美一区二区| 日韩女优av电影在线观看| 欧美三日本三级三级在线播放| 国产一区二区三区免费看| 午夜日韩在线电影| 在线日韩国产精品| 蜜臀va亚洲va欧美va天堂| 日本一区二区免费在线观看视频| **网站欧美大片在线观看| 久久精品国产77777蜜臀| 亚洲欧美日韩一区二区 | 欧美高清dvd| 94-欧美-setu| 国产精品乡下勾搭老头1| 蜜臀精品久久久久久蜜臀| 亚洲一二三区不卡| 亚洲免费伊人电影| 国产精品欧美精品| 久久精品亚洲精品国产欧美| 欧美一级二级三级蜜桃| 欧美视频三区在线播放| 色综合咪咪久久| 91蝌蚪porny| 91在线精品秘密一区二区| 成人精品一区二区三区四区| 久久精品国产色蜜蜜麻豆| 久久精品免费观看| 日本欧美久久久久免费播放网| 自拍偷在线精品自拍偷无码专区| 精品国产一区二区精华| 91精品国产综合久久精品麻豆 | 国产精品69毛片高清亚洲| 精品亚洲国内自在自线福利| 天堂一区二区在线| 日本中文字幕不卡| 久久99精品一区二区三区三区| 亚洲不卡在线观看| 免费在线成人网| 精品中文字幕一区二区| 国产麻豆视频一区二区| 国产成人丝袜美腿| 不卡的av在线| 色婷婷亚洲精品| 91精品国产综合久久福利软件| 欧美性大战久久| 制服丝袜亚洲色图| 欧美一区二区三区在线观看视频| 欧美丰满少妇xxxxx高潮对白| 欧美色图天堂网| 91精品国产色综合久久不卡蜜臀| 91精品国产综合久久久久| 欧美mv和日韩mv的网站| 国产片一区二区| 亚洲综合久久av| 日韩在线观看一区二区| 国产曰批免费观看久久久| 成人高清免费观看| 91成人网在线| 日韩区在线观看| 亚洲国产精品av| 午夜不卡在线视频| 国产米奇在线777精品观看| 91在线观看下载| 日韩一区二区三区三四区视频在线观看| 欧美精品v日韩精品v韩国精品v| 欧美亚洲另类激情小说| 精品国产一区二区三区久久影院 | 日本一区二区三区四区| 一区二区三区在线视频免费观看 | 欧美日韩精品三区| 国产欧美精品国产国产专区| 亚洲国产wwwccc36天堂| 国产乱码精品一区二区三| 色88888久久久久久影院按摩| 欧美日韩国产成人在线91| 久久久久9999亚洲精品| 亚洲一区二区三区三| 不卡视频在线观看|