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

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

?? shell.c

?? MANTIS是由科羅拉多大學開發的傳感器網絡嵌入式操作系統。 這是mantis的0.9.5版本的源碼。
?? C
字號:
//  This file is part of MANTIS OS, Operating System//  See http://mantis.cs.colorado.edu/////  Copyright (C) 2003-2005 University of Colorado, Boulder////  This program is free software; you can redistribute it and/or//  modify it under the terms of the mos license (see file LICENSE)#define _GNU_SOURCE#include <stdio.h>#include <stdbool.h>#include <stdlib.h>#include <inttypes.h>#include <ctype.h>#include <string.h>#include "shell_serial.h"#include "serial.h"#include "flash.h"#include "load.h"#include "mcc.h"#include "mcs.h"#include "run.h"#include "shell.h"/* following added for command server */#include "com.h"int go = 0;int program = 0;int clear_cb =0;char *srec = NULL;static char *stripwhite (char *line){   char *p = line;   while (isspace (*p)) {      p++;   }   return p;}void shell_send_to_node(char * string){   comBuf packet;   char *cursor=string;   packet.size=0;   /* copy the string into a packet */   while (*cursor && packet.size < COM_DATA_SIZE - 1){      if(*cursor == '\n') //make sure we don't sent newline	 *cursor++;      else if(*cursor == ' '){ //break each packet up by spaces	 packet.data[packet.size++]='\0'; //null terminate	 com_send(IFACE_SERIAL, &packet);	 packet.size=0;	 *cursor++;      }      else	 packet.data[packet.size++] = *cursor++; //add char, inc size   }   packet.data[packet.size++]='\0'; //null terminate string   com_send(IFACE_SERIAL, &packet); // send it over the uart}      void shell_send_byte(uint8_t byte){   comBuf send_packet;   send_packet.size=1;   send_packet.data[0]=byte;   com_send(IFACE_SERIAL, &send_packet);}int shell_find_node (find_node_callback find_callback_func){   comBuf *recv_pkt, send_pkt;   uint8_t retry_max = 50;   uint8_t retries = 0;   bool  error_flag = false;   com_mode (IFACE_SERIAL, IF_LISTEN);   //send_pkt.data[0] = SHELL_PRESENT;   //send_pkt.data[1] = '\0';   //send_pkt.size=2;   //com_send(IFACE_SERIAL, &send_pkt);/*   if (clear_cb) {      printf ("Sending cb 0\n");      send_pkt.data[0] = CLEAR_CB;      send_pkt.data[1] = '\0';      send_pkt.size = 2;      com_send(IFACE_SERIAL, &send_pkt);      check_recv (CLEAR_CB_PONG);   } else {      send_pkt.data[0] = SHELL_PRESENT;      send_pkt.data[1] = '\0';      send_pkt.size=2;      com_send(IFACE_SERIAL, &send_pkt);   }*/   while(retries++ < retry_max) {      if(find_callback_func != NULL)	 find_callback_func(retries);      else {	 if(retries > 1)	    fprintf(stderr,"Retry [%d]...", retries);      }      if (clear_cb) {	 printf ("Sending cb 1\n");	 send_pkt.data[0] = CLEAR_CB;	 send_pkt.data[1] = '\0';	 send_pkt.size = 2;	 com_send (IFACE_SERIAL, &send_pkt);      } else {	 send_pkt.data[0] = SHELL_PRESENT;	 send_pkt.data[1] = '\0';	 send_pkt.size=2;	 com_send (IFACE_SERIAL, &send_pkt);	       }      recv_pkt = com_recv(IFACE_SERIAL);      //usleep (10000);      switch (recv_pkt->data[0]) {      case CLEAR_CB_PONG:	 printf ("Cleared boot control block\n");	 clear_cb = 0;	 //com_free_buf (recv_pkt);	 //return(BOOTLOADER_MODE);	 break;      case LOADER_PRESENT:	 send_pkt.data[0] = SHELL_PRESENT;	 send_pkt.data[1] = '\0';	 send_pkt.size = 2;	 com_send(IFACE_SERIAL, &send_pkt); //send a ping	 break;      case LOADER_PRESENT_PONG:	 com_free_buf(recv_pkt);	 return(BOOTLOADER_MODE);	 break;      case APP_PRESENT:	 com_free_buf(recv_pkt);	 recv_pkt = com_recv(IFACE_SERIAL);	 com_free_buf(recv_pkt); //throw away the command prompt	 return(APP_MODE);	 break;      default:	 if(!error_flag){	    fprintf(stderr, "Unexpected serial input from node: %d.\n",	       recv_pkt->data[0]);	    error_flag = true;	 }	 break;      }      com_free_buf (recv_pkt);	          //usleep(10000);   }   return NODE_NOT_FOUND;}int shell_find_loader(find_node_callback find_callback_func){   int ret_val;   fprintf(stderr,"Searching for a sensor node...");   fflush (stdout);   while((ret_val = shell_find_node (find_callback_func)) != BOOTLOADER_MODE){      if(ret_val == APP_MODE){	 fprintf(stderr,"Application Mode, Sending reboot...\n");	 shell_send_to_node("MR"); //restart the app...      }      if(ret_val == NODE_NOT_FOUND) {	 fprintf(stderr,"Node not found!\n");	 return ret_val;      }      fprintf(stderr,"Searching for a sensor node...");      ret_val = shell_find_node(find_callback_func);   }   fprintf (stderr,"bootloader mode.\n");   return true;}int8_t shell_load_image(char *arg, update_callback callback_func){   char *name, *s;   char *image = (char *)malloc (CODE_MAX_SIZE);   int val;   int8_t ret;   // Only use file completion for this line, and then revert back   if (arg == NULL) {      //set_file_completion();      fprintf(stderr,"Enter name of S-Record file: ");      ret = scanf("%s", name);      //set_command_completion();   } else {      name = arg;   }      s = stripwhite(name); // Strip the whitespace so fopen works      // Read the srecord into memory   val = srec_read(s, image);      if(val == -1) {      fprintf(stderr,"Did not load file...\n");      free (image);      return SREC_READ_ERROR;   }   ret = write_image(image, val, callback_func);   free (image);   return ret;}/* send a command that restarts the node */void shell_send_restart(){   shell_send_to_node("MR"); //restart the app}/* Send command to start program execution. */int8_t shell_start_execution(char *arg){   comBuf startex_packet;   startex_packet.size = 1;   startex_packet.data[0] = START;   uint8_t ret_val;      com_send(IFACE_SERIAL, &startex_packet);   while(1) {      ret_val = check_recv(START);      if(ret_val == NODE_RESTARTED) { //node restarted so...	 fprintf(stderr,"oops... node restarted, sending again.\n");	 usleep (10000);	 com_send(IFACE_SERIAL, &startex_packet); //try again      }      else 	 return SUCCESS;   }}void shell_load_bootloader(){   char *write_fuse = "uisp -dprog=mib510 -dserial=/dev/ttyS0 -dpart=ATmega128 --wr_fuse_h=0x10 -v=0";   char *erase_mem = "uisp -dprog=mib510 -dserial=/dev/ttyS0 -dpart=ATmega128 --erase -v=0";   char *load_srec = "uisp -dprog=mib510 -dserial=/dev/ttyS0 -dpart=ATmega128 --upload if=/usr/local/share/mos/boot.srec -v=0";   char *verify = "uisp -dprog=mib510 -dserial=/dev/ttyS0 -dpart=ATmega128 --verify if=/usr/local/share/mos/boot.srec -v=0";   serial_block();   if(file_exists("/usr/local/share/mos/boot.srec") == false){      fprintf(stderr, "ERROR: /usr/local/share/mos/boot.srec not found.\n");      return;   } else {      fprintf(stderr, "boot file found!\n");   }   fprintf(stderr, "\nWriting the fuse high byte...\n");   fprintf(stderr, "%s\n",write_fuse);   if(!run_command(write_fuse)){	 printf("Writing fuse high byte failed.\n");	 return;   }      fprintf(stderr, "\nErasing program memory...\n");   fprintf(stderr, "%s\n",erase_mem);   if(!run_command(erase_mem)){      printf("Erasing memory failed.\n");      return;   }   fprintf(stderr, "\nLoading the bootloader program...\n");   fprintf(stderr, "%s\n",load_srec);   if(!run_command(load_srec)){      printf("loading failed.\n");      return;   }   fprintf(stderr, "\nVerifying the new image...\n");   fprintf(stderr, "%s\n",verify);   if(!run_command(verify)){      printf("verify failed.\n");      return;   }   fprintf(stderr, "Done.\n");   serial_unblock();}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产主播一区二区三区| 激情深爱一区二区| 久久综合给合久久狠狠狠97色69| 国产精品影视在线观看| 亚洲图片一区二区| 国产日产欧美一区二区三区| 欧美日韩视频在线观看一区二区三区| 国产精品羞羞答答xxdd| 丝袜诱惑亚洲看片| 亚洲狼人国产精品| 国产精品免费久久久久| 日韩欧美www| 欧美另类一区二区三区| 51午夜精品国产| 日本黄色一区二区| 成人av在线网| 国产露脸91国语对白| 日韩精品一区第一页| 一区二区免费看| 中文字幕日韩一区二区| 久久久久97国产精华液好用吗| 欧美日韩精品福利| 欧美亚男人的天堂| 色综合色综合色综合 | 一个色综合av| 国产精品成人在线观看| 久久久久久久综合日本| 日韩欧美国产一区在线观看| 欧美日韩你懂的| 欧美伊人久久久久久久久影院 | 日韩高清不卡一区二区三区| 亚洲男人的天堂在线观看| 中文字幕 久热精品 视频在线| 日韩美女主播在线视频一区二区三区| 欧美日韩久久久| 欧美日韩在线精品一区二区三区激情| 91啦中文在线观看| 色综合色狠狠天天综合色| 色综合一个色综合亚洲| 91丨porny丨户外露出| 大尺度一区二区| 成人在线综合网| 99麻豆久久久国产精品免费| a4yy欧美一区二区三区| 91蜜桃传媒精品久久久一区二区| 97久久精品人人做人人爽50路| 成人国产精品免费观看视频| 波多野结衣视频一区| 成人动漫中文字幕| 色欧美片视频在线观看在线视频| 91官网在线观看| 欧美嫩在线观看| 日韩视频在线一区二区| 精品国产凹凸成av人导航| 久久综合久久鬼色| 国产日韩欧美一区二区三区综合| 中文字幕免费不卡| 亚洲精品国产精品乱码不99 | 久久一留热品黄| 欧美激情一区二区在线| 中文字幕一区免费在线观看| 亚洲情趣在线观看| 五月激情综合色| 国内精品自线一区二区三区视频| 国产成人免费av在线| 91丝袜美腿高跟国产极品老师 | 国产日韩成人精品| 亚洲男同性恋视频| 青草国产精品久久久久久| 日本韩国精品在线| 日韩一区二区三区视频在线观看| 精品福利视频一区二区三区| 国产欧美一区二区三区沐欲 | 欧美激情艳妇裸体舞| 亚洲精品videosex极品| 日韩经典中文字幕一区| 国产尤物一区二区| 在线看日本不卡| 26uuu亚洲综合色| 一区二区三区在线观看国产 | 99精品热视频| 7777精品伊人久久久大香线蕉经典版下载 | 国产精品18久久久久久久久| av网站一区二区三区| 51精品秘密在线观看| 国产肉丝袜一区二区| 性做久久久久久免费观看欧美| 精品一区二区三区欧美| 91看片淫黄大片一级在线观看| 欧美一区二区二区| 亚洲欧美影音先锋| 久久99最新地址| 一本色道久久综合精品竹菊| 精品国产99国产精品| 一区二区三区日韩精品视频| 国产精品中文字幕一区二区三区| 欧美亚洲国产bt| 国产精品每日更新| 精品一区二区在线播放| 欧美亚洲国产一区二区三区| 欧美精彩视频一区二区三区| 日韩中文字幕1| 91搞黄在线观看| 中文字幕一区二区视频| 黄色日韩网站视频| 欧美日韩一二三| 亚洲视频小说图片| 国产精品一区专区| 亚洲精品ww久久久久久p站| 精品一区二区精品| 欧美日韩成人一区二区| 亚洲欧美色综合| 成人一区二区三区视频在线观看| 欧美一区二区三区四区在线观看| 亚洲精品免费在线| av毛片久久久久**hd| 久久免费国产精品| 久久99热这里只有精品| 欧美精品第1页| 亚洲成人www| 91高清视频在线| 亚洲视频中文字幕| 91一区二区在线观看| 亚洲国产精品二十页| 国产精品亚洲一区二区三区妖精| 日韩欧美亚洲国产精品字幕久久久 | 激情伊人五月天久久综合| 这里只有精品视频在线观看| 亚洲一区中文日韩| 91国内精品野花午夜精品| 亚洲色图制服诱惑 | 欧美一区二区女人| 性欧美疯狂xxxxbbbb| 欧美三级日本三级少妇99| 亚洲视频免费在线观看| 99久久er热在这里只有精品15| 国产精品网友自拍| jvid福利写真一区二区三区| 国产精品激情偷乱一区二区∴| 懂色av中文一区二区三区| 亚洲国产高清在线观看视频| 高清不卡一区二区在线| 国产精品青草久久| 99久久精品费精品国产一区二区| 1区2区3区精品视频| 97精品久久久久中文字幕| 亚洲激情自拍视频| 欧美日韩免费一区二区三区| 亚洲成人第一页| 日韩欧美国产一区二区三区| 久久电影国产免费久久电影| 久久先锋影音av| 高清不卡一二三区| 亚洲精品亚洲人成人网| 欧美视频日韩视频在线观看| 日韩精品欧美精品| 欧美不卡123| 成人动漫在线一区| 亚洲国产精品欧美一二99| 5858s免费视频成人| 国产综合成人久久大片91| 日韩激情一二三区| 精品sm捆绑视频| 丁香激情综合国产| 亚洲最大的成人av| 日韩精品中文字幕在线一区| 国产美女av一区二区三区| 中文字幕一区二| 欧美日韩激情在线| 国产一区二区视频在线| 成人欧美一区二区三区1314| 欧美日韩精品一区二区天天拍小说| 免费看日韩a级影片| 国产人成亚洲第一网站在线播放| 91麻豆精品秘密| 日本欧美久久久久免费播放网| 久久久久国产精品麻豆| 欧美综合久久久| 国产在线看一区| 一区二区三区国产精华| 日韩女优av电影| 91麻豆视频网站| 久久99精品国产| 亚洲精品日韩一| 久久久久久久久久久久久久久99| 一本到高清视频免费精品| 日本不卡在线视频| 亚洲人午夜精品天堂一二香蕉| 日韩一区二区免费在线电影| 99热这里都是精品| 国模套图日韩精品一区二区 | 欧美午夜不卡在线观看免费| 国产一区二区三区免费观看| 亚洲一区二区视频在线| 国产日韩成人精品| 欧美一区二区三区免费大片| a亚洲天堂av| 国产一区二区三区四| 丝袜美腿亚洲综合| 亚洲毛片av在线|