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

北京网站推广服务wordpress当前位置

北京网站推广服务,wordpress当前位置,网络营销推广计划,徐州建设局官网Vxworks是一个嵌入式系统#xff0c;主要运行在arm、ppc、mips等嵌入式处理器上#xff0c;它同样可以运行在X86处理器上。风河公司开发的tornado开发环境就 包括了pentium版本#xff0c;并且发布了相应的bsp。因此我们可在vmware虚拟机上运行vxworks#xff0c;利用虚拟机… Vxworks是一个嵌入式系统主要运行在arm、ppc、mips等嵌入式处理器上它同样可以运行在X86处理器上。风河公司开发的tornado开发环境就 包括了pentium版本并且发布了相应的bsp。因此我们可在vmware虚拟机上运行vxworks利用虚拟机的功能我们不需要额外的计算机硬件就可 以开始我们的实验。 系统引导 计算机系统上电后首先需要执行引导程序然后加载操作系统。嵌入式系统中一般是将引导程序称之为bootrom固化在ROM芯片也称为 bootrom指的是物理硬件中。系统上电后执行ROM中的引导程序将操作系统由flash或硬盘加载到内存。对于PC而言系统上电后运行BIOS 程序之后将软盘或则硬盘上的引导扇区载入内存执行引导过程引导程序再将操作系统加载到内存中启动。vmware的虚拟硬盘开始时没有安装 引导程序因此无法从硬盘引导。因此我们需要制作一个引导软盘来引导系统加载vxworks。我们的第一个实验就是编译引导程序镜像制作引导 盘。 制作引导盘 首先要在你的PC上Tornado 2.2 for pcPentium开发环境。另外需要安装pcPentium的BSP包这个软件包可以到风河公司的网站免费下载。 制作引导盘当然还需要一张软盘但是目前的PC基本都不使用软盘软驱了如果你的古董机还有软驱的话那么恭喜你你只需要一张软盘就搞定了。 好在vmware可以直接使用软盘镜像并且可以直接创建软盘镜像因此我们在vmware中安装一个虚拟的windowsxp系统以便在虚拟的windowsXP系统中 将软盘镜像格式化并制作启动软盘。当然也可以使用虚拟软驱RamDiskNT在主机上使用软盘镜像。 Ok准备工作做好了我们开始编译bootrom。你可以通过tornado集成开发环境的菜单命令build boot rom。 弹出build boot rom对话框我们选择pcpentium BSP、编译bootrom、工具使用gnu 编译完成后可以在$WIND_BASE/target/config/pcPentium目录下找到编译出来的bootrom文件。 我们也可以使用命令行方式编译bootrom进入cmd命令行界面进入 $WIND_BASE/target/config/pcPentium目录目录中有一个Makefile文件我们就是使用这个makefile文件来编译bootrom。实际集成开发环境也是使用它 来编译的。编译之前我们需要设置一下所需的环境变量 set WIND_BASED:/Tornado2.2 set WIND_HOST_TYPEx86-win32 实际上tornado已经提供了一个批处理文件用于设置相关的环境变量这个文件就是 $WIND_BASE/host/x86-win32/bin/torVars.bat我们也可以直接运行这个批处理 ../../../host/x86-win32/bin/torVars.bat 然后执行命令 make bootrom 就可以在$WIND_BASE/target/config/pcPentium目录下生成bootrom文件 把上面的命令写成一个批处理makeBootRom.bat方便使用内容如下 D:/tornado2.2/host/x86-win32/bin/torVars.bat cd %WIND_BASE%/target/ config/pcPentium make bootrom 好了编译成功。下一步使用如下命令创建引导盘 mkboot a: bootrom mkboot.exe是tornado提供的制作启动盘的工具a盘是软盘的盘符bootrom就是我们的引导镜像文件。 将制作好的引导盘载入虚拟机中 虚拟机上电后自动从软盘启动出现如下界面。 是的你没看错系统确实已经成功启动只不过vxworks系统默认是不接受任何输入输出的。因此我们看不到它运行的任何东西也无法操作它。 这样一个界面让人很无语这跟一个人变成了瞎子瘸子没什么分别。下一步我们将console组件加入到bootrom中。 打开$WIND_BASE/target/config/pcPentium/config.h文件找到 #undef INCLUDE_PC_CONSOLE                /* PC keyboard and VGA console */ 将它改为 #define INCLUDE_PC_CONSOLE                /* PC keyboard and VGA console */ 那么结合上下文 #ifdef INCLUDE_PC_CONSOLE #   define PC_CONSOLE           (0)      /* console number */ #   define N_VIRTUAL_CONSOLES   (2)      /* shell / application */ #endif /* INCLUDE_PC_CONSOLE */ 很明了定义这个宏之后console就打开了。重新编译bootrom并制作启动软盘。在虚拟机中运行会看到如下界面 输入p命令查看系统的启动参数其意义如下 boot device:fd0,0 ——启动设备为软驱0,0表示第一个软驱3.5寸盘 unit number:0 ——设备单元号一般为0 processor:0 ——处理器编号一般为0 host name:host ——主机名访问主机时用到比如从主机复制文件:cp “host:src”, “./dest” file name:/fd0/vxWorks.st ——vxworks镜像文件包括了完整的路径 inet on Ethernet (e):90.0.0.50 ——本地网卡ip地址 host inet(h):90.0.0.3 ——主机ip地址 user (u):target ——用户名用来访问ftp服务器一般都是主机 flags (f):0 ——标识十六进制数它的意义下面再讲 BOOT_LINE bootrom支持从本地磁盘上加载vxworks系统镜像文件也支持从网络加载vxworks系统镜像文件。在系统开发阶段需要频繁的编译 和加载系统镜像通常我们使用网络加载的方式这样在主机上修改完代码编译之后就可以通过网络加载到目标机上运行。而 在系统开发后期或者系统发布正式运行时则设置为从本地磁盘加载此时我们可以将系统镜像文件发在本地磁盘上开机即 可自动加载运行。从上面的参数可以看出系统默认从软驱加载。可以通过c命令修改这些参数具体的修改步骤就不说了。也可 以通过配置文件中的默认bootline来修改这些默认的参数。 打开$WIND_BASE/target/config/pcPentium/config.h文件找到cpupcPentium选项下 #define DEFAULT_BOOT_LINE / fd0,0(0,0)host:/fd0/vxWorks.st h90.0.0.3 e90.0.0.50 utarget 这就是默认的bootlinebootline的格式如下 bootDev(unitNum,procNum) hostname:bootFile eead bbad hhad ggad uusername pwpassword fflags tntargetName sstartupScript oother 具体含义 bootDev / 设备名软盘fd; 硬盘ATA网络要根据网卡的类型来做NE2000及其兼容网卡为ENE3COM以太网卡为ELTIntel网 卡为EEXIntel82559网卡为fei 3C905B PCI网卡为elPci。 unitNum / 设备单元号一般指为0 procnum / cpu的处理器号一般为0 flags / 标识十六进制数意义如下 0x01: 关闭对处理器0的系统控制 0x02: 将局部symbols和全局symbols装入目标机symbols表 0x04: 禁止自动启动即由用户输入boot line 0x08: 快速boot(不计数等待用户输入) 0x40: 使用BOOTP or DHCP client 0x80: 使用TFTP获取image,否则使用RSH或FTP用FTP时pw不为空 0x100: 使目标机登记为一个代理ARP client ead / 目标机ip地址此值如为空网络接口不被帮定 bad / 背板接口 had / 主机ip地址 gad / 网关地址如果主机和目标机不在一个局网里需要 bootFile: / 存放vxworks image的路径 usr: / 使用FTP或RSH时的用户名 passwd: / ftp password other: / 从网络启动时此值可为空当从软盘或硬盘启动时如果此值为你的网络设备boot会为你绑定网络设备 hostname: / 主机名,任意 targetName目标机名 startupScript: / 脚本名在boot以后的target shell里执行 因为我们要做很多实验还是把它配置成网络加载方便一点。修改为 #define DEFAULT_BOOT_LINE / lnPci (0,0)host:d://ftp//vxWorks h192.168.1.1 e192.168.1.2 utarget 这里详细讲解一下设备名称对于不同的设备其命名格式不同对于块设备的命名规则我们可以在bootconfig.c 文件的bootLoad函数中找到对应的格式化字符串比如软驱的格式是fdx,x可以找到如下语句 sscanf (params.bootDev, %*2s%*c%d%*c%d, drive, type); 其中%*2s%*c%d%*c%d就是对应的格式星号表示此数据忽略。再例如ATA硬盘其格式字符创为%*3s%*c%d%*c%d 对于网卡则需要使用驱动程序中定义的名称vxworks一般使用END驱动Enhanced Network Driver在驱动程序 提供的xxxEndLoad函数会返回一个设备名。比如AMD的PCNET-PCI网卡驱动程序文件为ln97xEnd.c其中ln97xEndLoad 函数中会返回LN_97X_DEV_NAME if (initString [0] NULL) { bcopy ((char *)LN_97X_DEV_NAME, initString, LN_97X_DEV_NAME_LEN); DRV_LOG (DRV_DEBUG_LOAD, Returning string.../n, 1, 2, 3, 4, 5, 6); return ((END_OBJ *)OK); } LN_97X_DEV_NAME的定义在头文件ln97xEnd.h中 #define LN_97X_DEV_NAME          lnPci      /* name of the device */ 修改网卡驱动程序 Vmware自带的虚拟网卡是AMD的PCnet-PCI vxworks自带的驱动程序头文件为target/h/drv/end/ln97xEnd.h据测试在vmware中无法工作。 大家可以试一下在config.h文件中定义INCLUDE_LN_97X_END编译宏执行make bootrom命令生成一个bootrom进行测试你将得到下面的 错误提示 因此需要从AMD官方网站下载最新驱动。解压后得到一个tar目录将这个目录覆盖$WIND_BASE/tar目录然后运行 $(WIND_BASE)/host/x86-win32/bin/ torVars.bat 进入$(WIND_BASE)/target/src/drv/end目录运行 make CPUPENTIUM toolgnu ln97xend.o 重新定位到$(WIND_BASE)/target/lib/pentium/PENTIUM/common目录并将上一步生成的文件ln97xend.o复制到此目录下。 备份此目录下的文件libdrv.a运行命令 arpentium -d libdrv.a ln97xEnd.o删除libdrv.a中原有的ln97xEnd模块然后再运行命令 arpentium -ra iOlicomEnd.o libdrv.a ln97xEnd.o 将我们刚刚创建的新模块添加进去。这里的-r选项是表示替换-a选项表示文件放在指定文件(iOlicomEnd.o)之后。 然后我们需要修改配置文件使bootrom中包含我们的网卡驱动程序确保 #define INCLUDE_END /* Enhanced Network Driver Support */ #define INCLUDE_LN_97X_END /* (END) AMD 79C97x PCI interface */ 而其它的网卡驱动宏都是#undef的。 修改sysLn97xEnd.c 打开C:/tornado2.2/target/config/pcPentium目录下的sysLn97xEnd.c文件先定位到 “memory-mapped IO base”这段文字然后将其前面的参数由pciRsrc[endUnit].bar[1]修改为NONE保存即可 pciRsrc[endUnit].bar[1],     /* memory-mapped IO base */ NONE, /* memory-mapped IO base */ 编译bootrom并制作引导盘启动虚拟机可以看到错误没了如下图 编译vxWorks 为了测试一下网卡驱动功能正常我们可以编译一个vxworks镜像文件然后通过ftp加载到虚拟机中运行。 编译vxworks文件很简单只需要在target/config/pcPentium目录下执行命令 make vxWorks 将生成一个vxWorks文件把这个文件放到ftp目录下。并且打开ftp服务器这里使用tornado自带的wftpd32.exe 添加一个新用户usertarget, passwordtarget。使用引导盘启动虚拟机。引导程序将自动加载这个镜像并运行 可以看到Attaching network interface lo0… done。并且vxworks已经正常运行。 加入SHELL组件 上面看到的这个界面与我们平时在实验室看到的不一样没有大大的vxworks的logo。原因是vxworks默认不包含shell组件需要修改config.h文件 #define INCLUDE_SHELL 重新执行makevxwoks命令生成文件加载到虚拟机中就会出现如下界面不过此时的shell还不能识别命令因为制作的镜像中没有符号表 因此无法解析命令。这样的shell简直就是废材。 使用符号表文件 要shell识别命令需要提供符号表文件。上面的makefile vxWorks命令在生成vxWorks文件的同时还生成了一个符号表文件vxWorks.sym这个文件 可用于主机上的WDB进行调试。首先要配置目标机在tornado中选择tools/target serves/config菜单命令 弹出如下对话框可以新建一个目标机配置在Core File and Symbols选项中指定vxWorks.sym文件,另外需要指定后台目标机为后台主机为前台通信方式为wdbrpc并设置IP地址  设置完成单击OK。或者直接单击Launch启动此时在windows的任务栏会出现target-server的小图标双击它可以查看详细信息 连接成功后在主界面上的下拉列表中选择配置的target-server并单击-i图标启动shell这时候就可以执行输入的命令了。如下图: 虽然使用tornado集成环境进行调试有直观的优势并且支持源码级调试一切看起来都很美。但是目标机与主机之间的通信通常比较耗时有时候由于 种种原因还可能出现目标机连接不上的问题。在实际使用时用得比较多的还是直接在目标机的控制台中输入命令进行调试。这要求把符号表和代码一起 下载到目标机上这里又有两种方式一种是符号表文件放在主机上系统启动时从主机同步符号表另一种是直接将符号表编译到vxWorks镜像文件中。 从主机同步符号表 这种方式需要修改配置文件在config.h中添加 #define INCLUDE_SYM_TBL_SYNC 当然最好还是加上那些show函数否则只能打断点却不能查看任务状态等重要信息就像瞎子走路只能迈动两腿却不知身在何方是很郁闷的。添加如下选项 #define INCLUDE_SHOW_ROUTINES 编译之后将vxWorks文件和vxWorks.sym文件都放到ftp目录下。启动虚拟机我们看到它自动将符号表同步了。然后我们就可以直接在控制台输入命令进行操作。 编译vxWorks.st 最为直接的一种方式就是将符号表编译到vxWork文件中这样不需要连接主机就可以在控制台上进行操作了。编译方式也很简单 make vxWorks.st 这样就搞定了。虽然直接将符号表嵌入到vxWorks文件中镜像文件的体积会增大但是现在的硬件这么便宜。有的嵌入式系统甚至配置了2G内存。 因此这个问题越来越容易解决了。
http://wiki.neutronadmin.com/news/442133/

相关文章:

  • 企业模拟网站建设石家庄高端网站开发
  • 网站开发培训好学吗深圳网站建设专家
  • 专业购物网站建设价格王野天与葛优
  • 湖南省建设工程造价总站网站网站设置域名
  • 一站式网站建设业务网站建设售价多少钱
  • pc网站建设哪个好网站推广优化外包便宜
  • 绥化建设网站重庆建设工程施工安全管理网
  • 东莞哪里有网站建设厂家调研报告
  • 山东跨境电商建站公司公司注册网上核名流程
  • 深圳网页制作培训吉林网站优化
  • 广州微信网站建设咨询wordpress解压到空间
  • 上海网站设计工作室遵义直播遵义新闻官网
  • 开源课程 视频网站模板如何 做网站挣钱
  • 电子商务网站建设的一般步骤有泉州网站设计制作
  • 网站制作自助免费模板网站都有什么区别
  • 视频号的网站链接广告页面模板
  • 自助网站建设怎么建设淘宝网站推广策划方案
  • 黄山市建设工程造价管理站网站wordpress表情按钮
  • 啥网站都能看的浏览器下载互联网网站建设咨询
  • 甘肃省建设银行校园招聘网站做网站的教程视频
  • 品牌型网站建设哪家公司网站创建
  • 网站开发的系统需求wordpress切换div组件
  • 定制彩票网站开发女教师遭网课入侵视频大全播放
  • 网站做交叉连接关键词智能优化排名
  • 建设银行社保卡网站在哪网站开发员的工作内容
  • 成都户外网站建设wordpress登陆logo
  • 涿州市建设局网站网址是多少seo指的是什么
  • 佛山市企业网站建设哪家好建网站要多少钱维护
  • 中国建设注册中心网站关于域名用于接入境外网站说明书
  • 用手机可以做网站joomla 企业网站模板