×

VxWorks/Linux/Android的分布式开发测试环境探索和展望

消耗积分:1 | 格式:rar | 大小:0.6 MB | 2017-10-27

分享资料个

不管是通信产品终端还是成套的固网移动通信设备,客户都关注着各种需求不断涌现的全球市场。在当今高度竞争的市场环境中,用户对产品上市速度(time-to-market)、应用功能(application features)和系统稳定性(stability)的要求日益增长,这就对研发的全球化协作和可预期性(predictability)提出了越来越高的要求。由于运营商和设备制造商都迫切期望获得可直接上市的(market-ready)的解决方案以降低研发风险,商用的操作系统以及统一的综合开发测试平台伴以宽带网络技术可以满足在世界不同地域运作的研发虚拟团队的需要,并借助这样的平台加强跨操作系统、跨产品线的技术技巧和代码的重用。
  随着设备系统的越来越复杂高端,所需要支持的应用范围也越来越广,研发难度日益提高。开发工程师需要统一稳定的开发测试平台来减少花在适应开发环境的工夫,专注在应用开发上。与此同时,高性能的片上调试(on-chip debugging)工具、多内核多线程的设备调试开发工具平台、软件版本控制终端程序和源代码编辑软件,直至从软件单元测试到集成测试的开发测试平台的需求日益高涨。研发的全球化虚拟团队的要求使得统一的分布式开发环境的实现成为大企业必须解决的问题。
  风河系统公司(Wind River)是设备软件优化(DSO)的全球领导者,目前已经成为了Intel的全资子公司。VxWorks硬实时操作系统是风河公司的老牌拳头产品,风河商用级Linux操作系统也已占据了相当的市场份额。此外,风河Android平台也已崭露头角。风河公司的JTAG开发工具(On-Chip Debugging)不仅延续了风河公司一贯以来对Power Architecture、ARM、MIPS、ColdFire架构的支持,也加入了对Intel Atom系列处理器和RMI多核架构的支持。统一的Workbench开发平台和测试管理平台(Test Management)对不同的操作系统开发进行支持,从而实现了在统一的平台下支持完全不同的应用领域的开发工作,并且实现了在一个平台下完成了设备开发到测试结束全过程的集成开发环境支持。
  风河系统公司产品结构框图,如图1所示。
  VxWorks/Linux/Android的分布式开发测试环境探索和展望
  图1 风河系统公司产品结构框图
  分布式开发测试环境的网络构架与实现
  如今,研发中心和虚拟团队分布在全球各地,使用VPN利用Internet把公司资源整合在一起。笔者在公司内部网络中搭建了Windows 2003服务器,在服务器上安装了风河系统公司的Workbench开发平台和工程师习惯使用的各种开发测试工具和代码编辑器。对于不同的研发中心和产品线,服务器上配置的Workbench版本和目标操作系统(VxWorks)版本各不相同,但其他开发工具是一致的。我们推荐研发工程师使用统一的Test Management测试平台进行测试用例开发和维护。这样的风河系统开发服务器被分布配置在各个研发中心的局域网内,使得研发工程师们可以选择空闲的服务器进行开发工作。
  全球各地的虚拟团队通过微软的Windows远程桌面连接登录服务器,工程师们可以打开Workbench或者其他的开发工具,并通过服务器连接软件源代码版本控制(SCM)服务器,在服务器上进行开发工作,不但实现了开发环境的一致,也保证了代码的安全。
  图2所示为风河系统开发服务器网络构架和实现。
  VxWorks/Linux/Android的分布式开发测试环境探索和展望
  图2 风河系统开发服务器网络构架和实现图
  在设计中,由于全公司所有研发工程师都可以访问风河系统开发服务器,这样的网络架构可以充分使用风河公司产品的许可证(License),使之在产品线和虚拟团队之间被共享使用。使用了这样的开发环境,公司还可以促进不同产品线、不同操作系统下的开发者之间进行开发技巧的交流,从而提高竞争力,并且提高软件代码的重用性。在内部网络中,由于多个同样的风河系统开发服务器被分布配置在不同的地域和局域网中,公司可以配置分布式编译器以提高编译效率;同时公司也可以考虑使用分布式计算机资源建立服务器,并且根据实际需要配置计算资源。
  分布式开发测试环境探索和展望
  分布式风河开发测试系统支持不同版本下的VxWorks操作系统的产品开发,随着已成为Intel全资子公司的风河系统公司在网络设备Linux领域、消费电子领域以及在Moblin和Android支持方面日益强大,将来该平台还可以兼顾这些领域下的产品开发,从而实现最大限度的资源整合效益。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !

'+ '

'+ '

'+ ''+ '
'+ ''+ ''+ '
'+ ''+ '' ); $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code ==5){ $(pop_this).attr('href',"/login/index.html"); return false } if(data.code == 2){ //跳转到VIP升级页面 window.location.href="//m.obk20.com/vip/index?aid=" + webid return false } //是会员 if (data.code > 0) { $('body').append(htmlSetNormalDownload); var getWidth=$("#poplayer").width(); $("#poplayer").css("margin-left","-"+getWidth/2+"px"); $('#tips').html(data.msg) $('.download_confirm').click(function(){ $('#dialog').remove(); }) } else { var down_url = $('#vipdownload').attr('data-url'); isBindAnalysisForm(pop_this, down_url, 1) } }); }); //是否开通VIP $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code == 2 || data.code ==5){ //跳转到VIP升级页面 $('#vipdownload>span').text("开通VIP 免费下载") return false }else{ // 待续费 if(data.code == 3) { vipExpiredInfo.ifVipExpired = true vipExpiredInfo.vipExpiredDate = data.data.endoftime } $('#vipdownload .icon-vip-tips').remove() $('#vipdownload>span').text("VIP免积分下载") } }); }).on("click",".download_cancel",function(){ $('#dialog').remove(); }) var setWeixinShare={};//定义默认的微信分享信息,页面如果要自定义分享,直接更改此变量即可 if(window.navigator.userAgent.toLowerCase().match(/MicroMessenger/i) == 'micromessenger'){ var d={ title:'VxWorks/Linux/Android的分布式开发测试环境探索和展望',//标题 desc:$('[name=description]').attr("content"), //描述 imgUrl:'https://'+location.host+'/static/images/ele-logo.png',// 分享图标,默认是logo link:'',//链接 type:'',// 分享类型,music、video或link,不填默认为link dataUrl:'',//如果type是music或video,则要提供数据链接,默认为空 success:'', // 用户确认分享后执行的回调函数 cancel:''// 用户取消分享后执行的回调函数 } setWeixinShare=$.extend(d,setWeixinShare); $.ajax({ url:"//www.obk20.com/app/wechat/index.php?s=Home/ShareConfig/index", data:"share_url="+encodeURIComponent(location.href)+"&format=jsonp&domain=m", type:'get', dataType:'jsonp', success:function(res){ if(res.status!="successed"){ return false; } $.getScript('https://res.wx.qq.com/open/js/jweixin-1.0.0.js',function(result,status){ if(status!="success"){ return false; } var getWxCfg=res.data; wx.config({ //debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId:getWxCfg.appId, // 必填,公众号的唯一标识 timestamp:getWxCfg.timestamp, // 必填,生成签名的时间戳 nonceStr:getWxCfg.nonceStr, // 必填,生成签名的随机串 signature:getWxCfg.signature,// 必填,签名,见附录1 jsApiList:['onMenuShareTimeline','onMenuShareAppMessage','onMenuShareQQ','onMenuShareWeibo','onMenuShareQZone'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 }); wx.ready(function(){ //获取“分享到朋友圈”按钮点击状态及自定义分享内容接口 wx.onMenuShareTimeline({ title: setWeixinShare.title, // 分享标题 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享给朋友”按钮点击状态及自定义分享内容接口 wx.onMenuShareAppMessage({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 type: setWeixinShare.type, // 分享类型,music、video或link,不填默认为link dataUrl: setWeixinShare.dataUrl, // 如果type是music或video,则要提供数据链接,默认为空 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ”按钮点击状态及自定义分享内容接口 wx.onMenuShareQQ({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到腾讯微博”按钮点击状态及自定义分享内容接口 wx.onMenuShareWeibo({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ空间”按钮点击状态及自定义分享内容接口 wx.onMenuShareQZone({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); }); }); } }); } function openX_ad(posterid, htmlid, width, height) { if ($(htmlid).length > 0) { var randomnumber = Math.random(); var now_url = encodeURIComponent(window.location.href); var ga = document.createElement('iframe'); ga.src = 'https://www1.elecfans.com/www/delivery/myafr.php?target=_blank&cb=' + randomnumber + '&zoneid=' + posterid+'&prefer='+now_url; ga.width = width; ga.height = height; ga.frameBorder = 0; ga.scrolling = 'no'; var s = $(htmlid).append(ga); } } openX_ad(828, '#berry-300', 300, 250);