当前位置: 首页 > news >正文

网站定制开发建设广州网站优化方式

网站定制开发建设,广州网站优化方式,网页设计总结2000字,打开百度官网以下内容源于朱有鹏嵌入式课程的学习#xff0c;如有侵权#xff0c;请告知删除。 参考资料#xff1a;http://www.cnblogs.com/biaohc/p/6394710.html 一、uboot命令体系基础 1、使用uboot命令 uboot启动后进入命令行环境#xff0c;在此输入命令按回车结束#xff0…以下内容源于朱有鹏嵌入式课程的学习如有侵权请告知删除。 参考资料http://www.cnblogs.com/biaohc/p/6394710.html 一、uboot命令体系基础 1、使用uboot命令 uboot启动后进入命令行环境在此输入命令按回车结束uboot会接收此命令然后解析、执行。 2、uboot命令体系实现代码在哪里 实现代码在uboot/common/cmd_xxx.c中。command.c、main.c也和命令有关。 3、每个uboot命令对应一个函数 这是uboot实现命令体系的一种思路和方法。 4、argcargv传给对应的函数作为命令参数 1有些uboot的命令支持传递参数 命令对应的函数接收的参数列表中一般有argc和argv命令体系会把执行命令时的命令参数比如 md 30000000 10以argc这里为3和argv这里argv[0]mdargv[1]30000000argv[2]10的方式传递给执行命令的函数。 2以help命令为例 help命令背后对应的函数名叫do_help在uboot/common/command.c的236行。int do_help (cmd_tbl_t * cmdtp, int flag, int argc, char *argv[]) 二、uboot命令解析和执行过程分析 1、uboot启动的第二阶段即start_armboot()函数最后进入一个死循环循环体就是main_loop。 2、main_loop函数执行一遍就是一个获取命令、解析命令、执行命令的过程。 1readline函数作用 输出x210 #内部调用cread_line函数此函数从securecrt中命令行中读取命令并进行初步的处理ichar getcmd_getch();这个函数是从串口中读取信息如果读取到\n或者\r的话表示输入完成之后的代码是处理键盘的特殊字符详细解释见博客http://blog.chinaunix.net/uid-30031530-id-5152127.html 2rc run_command (lastcommand, flag)函数 此函数进一步处理lastcommand中的字符串调用process_macros函数处理字符串中的转义字符调用parse_line函数统计argc、赋值argv调用find_cmd命令查找相应命令返回命令的结构体指针(cmdtp-cmd) (cmdtp, flag, argc, argv)以函数指针的方式来执行命令函数 命令的结构体 run_command函数 命令解释函数 如parse_line函数把md 30000000 10解析成argv[0]mdargv[1]30000000argv[2]10; 命令查找函数 本来可以把所有命令的结构体放在一个数组里或者一个链表里但是uboot中用了一个新的方法就是定义了一个专门的段来存放所有的命令结构体这个段的起始地址和结束地址都放在连接脚本里。见下图详细分析见博文http://blog.csdn.net/oqqhutu12345678/article/details/73251739 总结uboot实现命令管理的思路 1填充1个结构体实例构成一个命令 2给命令结构体实例附加特定段属性用户自定义段链接时将带有该段属性的内容链接在一起排列 命令结构体彼此紧挨着不会夹杂其他东西也不会遗漏带有这种段属性的实例但它们是乱序的其实就是命令结构体的集合有点像一个命令结构体数组。 3uboot重定位时将该段整体加载到DDR中。 4段起始地址和结束地址定义在u-boot.lds中决定了这些命令集的开始和结束地址。 附 一、uboot中增加自定义命令 1、在已有的c文件中直接添加命令 1比如在uboot/common/command.c中添加一个命令叫mycmd。 2在已有的.c文件中添加命令比较简单直接使用U_BOOT_CMD宏即可添加命令给命令提供一个do_xxx的对应的函数。 3添加完成后要重新编译工程make distclean; make x210_sd_config; make然后烧录新的uboot去运行即可体验新命令。 4还可以在函数中使用argc和argv来验证传参。 2、自建一个c文件并添加命令 1在uboot/common目录下新建一个命令文件叫cmd_xjh.c对应的命令名就叫xjh对应的函数就叫do_xjh函数然后在c文件中使用U_BOOT_CMD宏定义命令对应的函数。注意头文件包含不要漏掉。 2在uboot/common/Makefile中添加上xjh.o目的是让Make在编译时把cmd_xjh.c编译链接进去。 3重新编译烧录。重新编译步骤是make distclean; make x210_sd_config; make 二、creat_line函数 static int cread_line(const char *const prompt, char *buf, unsigned int *len) {unsigned long num 0;unsigned long eol_num 0;unsigned long rlen;unsigned long wlen;char ichar;int insert 1;int esc_len 0;int rc 0;char esc_save[8];while (1) {rlen 1; #ifdef CONFIG_BOOT_RETRY_TIMEwhile (!tstc()) { /* while no incoming data */if (retry_time 0 get_ticks() endtime)return (-2); /* timed out */} #endifichar getcmd_getch();if ((ichar \n) || (ichar \r)) {putc(\n);break;}/** handle standard linux xterm esc sequences for arrow key, etc.*/if (esc_len ! 0) {if (esc_len 1) {if (ichar [) {esc_save[esc_len] ichar;esc_len 2;} else {cread_add_str(esc_save, esc_len, insert,num, eol_num, buf, *len);esc_len 0;}continue;}switch (ichar) {case D: /* - key */ichar CTL_CH(b);esc_len 0;break;case C: /* - key */ichar CTL_CH(f);esc_len 0;break; /* pass off to ^F handler */case H: /* Home key */ichar CTL_CH(a);esc_len 0;break; /* pass off to ^A handler */case A: /* up arrow */ichar CTL_CH(p);esc_len 0;break; /* pass off to ^P handler */case B: /* down arrow */ichar CTL_CH(n);esc_len 0;break; /* pass off to ^N handler */default:esc_save[esc_len] ichar;cread_add_str(esc_save, esc_len, insert,num, eol_num, buf, *len);esc_len 0;continue;}}switch (ichar) {case 0x1b:if (esc_len 0) {esc_save[esc_len] ichar;esc_len 1;} else {puts(impossible condition #876\n);esc_len 0;}break;case CTL_CH(a):BEGINNING_OF_LINE();break;case CTL_CH(c): /* ^C - break */*buf \0; /* discard input */return (-1);case CTL_CH(f):if (num eol_num) {getcmd_putch(buf[num]);num;}break;case CTL_CH(b):if (num) {getcmd_putch(CTL_BACKSPACE);num--;}break;case CTL_CH(d):if (num eol_num) {wlen eol_num - num - 1;if (wlen) {memmove(buf[num], buf[num1], wlen);putnstr(buf num, wlen);}getcmd_putch( );do {getcmd_putch(CTL_BACKSPACE);} while (wlen--);eol_num--;}break;case CTL_CH(k):ERASE_TO_EOL();break;case CTL_CH(e):REFRESH_TO_EOL();break;case CTL_CH(o):insert !insert;break;case CTL_CH(x):case CTL_CH(u):BEGINNING_OF_LINE();ERASE_TO_EOL();break;case DEL:case DEL7:case 8:if (num) {wlen eol_num - num;num--;memmove(buf[num], buf[num1], wlen);getcmd_putch(CTL_BACKSPACE);putnstr(buf num, wlen);getcmd_putch( );do {getcmd_putch(CTL_BACKSPACE);} while (wlen--);eol_num--;}break;case CTL_CH(p):case CTL_CH(n):{char * hline;esc_len 0;if (ichar CTL_CH(p))hline hist_prev();elsehline hist_next();if (!hline) {getcmd_cbeep();continue;}/* nuke the current line *//* first, go home */BEGINNING_OF_LINE();/* erase to end of line */ERASE_TO_EOL();/* copy new line into place and display */strcpy(buf, hline);eol_num strlen(buf);REFRESH_TO_EOL();continue;} #ifdef CONFIG_AUTO_COMPLETEcase \t: {int num2, col;/* do not autocomplete when in the middle */if (num eol_num) {getcmd_cbeep();break;}buf[num] \0;col strlen(prompt) eol_num;num2 num;if (cmd_auto_complete(prompt, buf, num2, col)) {col num2 - num;num col;eol_num col;}break;} #endifdefault:cread_add_char(ichar, insert, num, eol_num, buf, *len);break;}}*len eol_num;buf[eol_num] \0; /* lose the newline */if (buf[0] buf[0] ! CREAD_HIST_CHAR)cread_add_to_hist(buf);hist_cur hist_add_idx;return (rc); }
http://www.yutouwan.com/news/65890/

相关文章:

  • 自助建站系统网站建设系统网站建设网站建设wordpress主题列表封面
  • 百度推广智能网站wordpress码农主题
  • 手机网站设计与规划郑州seo优化外包顾问
  • 网站建设多少钱印刷企业网站模板
  • 合肥网站建设 乐云seo国外网站需要备案吗
  • 模特公司网站模板珠海建网站设计
  • 内蒙古高等级公路建设开发有限责任公司网站wordpress默认账号密码忘记
  • 济南外贸网站建设公司排名wordpress 网页制作
  • 网站空间购买注意事项代理网址域名
  • 沧州网站建设设计定制自助网站建设平台
  • 客户网站建设问题销售型网站建设
  • 设计接单兼职网站搜狗推广停止了吗
  • 网站地区分站系统网络媒体广告代理
  • 邯郸市网站建设多少钱wordpress.备份
  • 优化图片传网站常州网站建设流程
  • 免费企业网站建设流程wordpress淘宝发货插件
  • 网站开发客户需求域名网站购买
  • 做网站反应快的笔记本有哪些国内最新军事新闻
  • 视频弹幕网站怎么做一分钟赚一元的游戏
  • 西安企业网站建设模板国外网站网页设计
  • a4网站建设阿里云个人网站建设书
  • 好用的手机网站主页淄博网站建设与推广
  • 上海模板开发建站wordpress在新窗口打开
  • 游戏网站建设表格台州汇客网站建设
  • 青岛装饰公司十强排名网络优化的目的
  • 网站服务器怎么进做网站用旧域名好不好
  • 快速域名网站备案免费制作图片生成器
  • 网站开发 浏览器兼容性正规漫画网站开发流程
  • 建设团购网站河南政务服务网查二建证书
  • 网上哪里给公司做网站wordpress 页面 html代码