从u-boot移植出来的shell命令界面.docx

从u-boot移植出来的shell命令界面.docx

ID:28359051

大小:143.32 KB

页数:12页

时间:2018-12-09

从u-boot移植出来的shell命令界面.docx_第1页
从u-boot移植出来的shell命令界面.docx_第2页
从u-boot移植出来的shell命令界面.docx_第3页
从u-boot移植出来的shell命令界面.docx_第4页
从u-boot移植出来的shell命令界面.docx_第5页
资源描述:

《从u-boot移植出来的shell命令界面.docx》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、从u-boot移植出来的shell命令界面以前搞过u-boot,,有很多命令,,用超级终端操作,,比如help、tftp、erase、fatload,其实就是下面这段代码接受超级终端命令的。因为最近打算给产品做一个shell,用超级终端输入命令,,所以从u-boot找到这段代码并移植出来了,就只有delete_char和readline_into_buffer两个函数,非常简单。使用方法是:main(){  charbuffer[16];//缓冲区长度根据命令长度可调整  while(1){  

2、    _delay_ms(100);      //其中"LW-C360#"就是显示在超级终端的输入命令前端的,叫什么?      readline_into_buffer("LW-C360#",buffer);      //这里为你的命令解析函数,然后调用对应的处理函数,如我的voidshell(void)函数      Your_Cmd_Parse_and_Process();  }}使用截图: /*********************************************

3、***************************************  实现一个简单的Shell命令交互界面,命令行接收部分移植自u-boot-1.3.4***********************************************************************************/#define  tab_seq  ("      ")/*usedtoexpandTABs*/#define  erase_seq  ("bb")/*erases

4、equence*///删除一个字符staticchar*delete_char(char*buffer,char*p,int*colp,int*np,intplen){  char*s;  if(*np==0){      return(p);  }  if(*(--p)=='t'){  /*willretypethewholeline*/      while(*colp>plen){          USART_PutStr(COMMUNICATE_USART,erase_seq);  

5、        (*colp)--;        }      for(s=buffer;s

6、OMMUNICATE_USART,*s);          }      }  }else{      USART_PutStr(COMMUNICATE_USART,erase_seq);      (*colp)--;  }  (*np)--;  return(p);}//从串口读取命令行intreadline_into_buffer(constchar*constprompt,char*buffer){  char*p=buffer;  char*p_buf=p;  /*bufferind

7、ex*/  intn=0;  /*promptlength*/  intplen=0;  /*outputcolumncnt*/  intcol;  charc;  /*printprompt*/  if(prompt){      plen=strlen(prompt);      USART_PutStr(COMMUNICATE_USART,prompt);  }  col=plen;  for(;;){      //从at91sam9260串口读取一个字符      while(0==(

8、AT91C_BASE_US1->US_CSR&AT91C_US_RXRDY));      c=AT91C_BASE_US1->US_RHR;               /*        *Specialcharacterhandling        */        switch(c){            case'r':/*Enter*/            case'':                  //回车表示命令输入结束                  *p

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。