当前位置: 首页 > 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://wiki.neutronadmin.com/news/65890/

相关文章:

  • 快站app官网下载wordpress移动主题
  • 竞价可以做两个网站吗有什么做兼职的网站比较好
  • 网站开发需要懂多少代码怀仁网站建设
  • 计算机网站建设与管理是什么备案网站可以做接码平台么
  • 网站建设思路方法三库一平台个人信息查询系统
  • 哪里网站建设联系方式郑州百度建网站
  • 域名网站建设教程wordpress 公告栏
  • 佛山网站设计定制wordpress 中文版 英文版
  • 国外哪个网站做服装下载app免费下载安装下载
  • 网页qq登录页面seo网站推广 沈阳
  • 网站开发前端跟后端的区别对电子商务网站建设的理解
  • 网站建设是什么意思 打不开wordpress 商业主题插件
  • 达州网站建设yufanse古镇中小企业网站建设
  • 请大学生做网站手机友好型网站
  • 网站建设哪家go好工商局网站建设方案
  • 网站设计工作内容wordpress 国内最好主题
  • 怎么给自己的网站做优化怎样做网站二级页面
  • 打开陕西建设厅网站建设厅质监总站网站
  • 扬州高端网站建设公益网站模板
  • wordpress精美的主题英文seo外链发布工具
  • wordpress企业站主题哪个好网站开发 方案 报价
  • 企业简介 网站建设百度推广有用吗
  • 雄安免费网站建设哪家好专门做继电器的网站
  • 标志设计作业东莞网站seo方法
  • 路由器 东莞网站建设百度推广送企业网站吗
  • 苏州有哪些做网站广州市建设工程价格信息
  • 快速搭建网站教程正规网站建设多少费用
  • 网站域名归属权做视频网站违法么
  • 微网站定制宁乡电商网站建设收费
  • 休闲小零食网站开发方案网站建设怎么进后台