脚本在嵌入式系统的应用

脚本在嵌入式系统的应用,第1张

脚本曾经限于行业应用,一直给我低效、低能的印象,但凡事总有个例外,我工作中用到了脚本语言。

于是让我思索究竟这个脚本在嵌入式系统上。特别是工业系统上,能有多大的作为?究竟能走多远。

脚本语言不是什么新奇的东西,自打有了编译型的语言自然就有了解释型的语言。限于计算机硬件,解释型的语言初期没有编译型的语言强手。后来计算机硬件越来越强了,解释型语言,这样的易于学习,编程简单的语言渐渐流行,代表的就是Basic

再后来,横空出世了Java。这样的介于解释型和编译型语言之间的语言。代表了一个时期的技术走向。90年代前后诞生了很多有影响力的语言,如站点类的PHP。Ruby等。全能高效的Python。小巧灵动,在游戏界大显身手的Lua。Linux下的 Bash 脚本……太多了。

脚本语言特别像发展时间比較长的,如Python。其配合库众多庞大,已经涉及到各个行业领域。

能够轻松的用Python做一个Windows、Linux下的应用程序。也能够用来写浏览器的Web界面,也能够写server的CGI甚至server本身。这都难不倒Python。

相似的还有Ruby,Perl。PHP,在站点后台专业领域,都有独到的地方。

然而在嵌入式里。这些脚本语言好像都失去了踪影。特别是一些可靠性高,实时性好的领域,对脚本语言往往敬而远之。广大的嵌入式从业者。特别是单片机编程程序猿们,对这个东西还是比較抗拒的。

原因非常easy,原生的Python集成到单片机上得接近900KB的代码空间,除此之外,还须要付出大量的内存开销。嵌入式系统,往往内存管理是简陋的。甚至是没有。这对脚本语言这样的内存大户来说。实在难以接受。

有非常多嵌入式的有志之士,干了非常多有意思的尝试,比方说将Lua弄到单片机上。用Lua开发单片机程序。

不失为一个有意思的创新。如Python的python-on-a-chip。micropython,这些项目都是非常有价值的探索。脚本和C语言比。究竟能为我们带来什么?脚本的出现并非偶然。程序实际上就是一套施加在一些数据上的一些算法。计算完毕后,输出数据而已。没有输出数据的程序是无意义的。 脚本。如Python中的表、元表、字典等数据结构,非常easy的几十行代码能构建出用C语言成百上千行才干写出来的复杂数据结构。简单的迭代方式遍历复杂数据结构的办法,也是C语言无法简单的模仿。

就连用C++++的迭代器,相比也是罗嗦麻烦。静止的引用回收机制。使得脚本基本不考虑内存的泄漏问题。这些特点,决定了脚本适合复杂的数据处理。

天生的不须要编译的特点,也使得在执行时刻也能够方便的改变代码。

嵌入式有几类应用,是非常适合脚本处理的:

1.复杂的数据结构实现。用C/C++写,真心的不好,还是用脚本去实现吧。比方说,uC/OS和FreeRTOS这样的跑一个诸如sqlite的数据库,数据库的查询,插入等等。选择脚本是明智的。往往Linux太大,团队实施起来,须要较多的精力,并且,网上东找西找的Linux下的代码,稳定性可靠性难以保证。短时间搞出产品来实在是太难了。

要是烂在了现场。更加是悔不当初。

这时,小巧的脚本,如Lua就是个非常理想的选择。

2.灵活性的选择,系统规模没有上到Linux这样的水平。但在系统里又想保留灵活性。希望能像载入可执行文件一样,迅速的让系统获得新的特性。

脚本是这样的小系统的不二之选。

3.測试,一般做嵌入式的公司,时间都非常的紧张,没时间做非常仔细的白盒測试。

在进度和质量的双重压力下,白盒測试往往成了走过场,大家都心照不宣。那就根本不走。导致后来的集成測试中问题扎堆。事实上利用脚本语言能够非常轻松的构建測试用例,測试代码,进行模块间的測试。和主要的单元測试。

时间紧了。就多做些模块间的測试。控制一下測试的粒度。时间宽松了,用脚本能够測得再细些。

特别对于嵌入式中须要的复杂数据,可能须要其它系统。诸如PC平台的软件配合。都能够在脚本里轻松的模拟出来。

可能有些朋友 *** 心速度问题,Lua 有 LuaJIT,Python的PyPy,处理器的不断进步。我认为这都不是问题,问题是你迈出了这步没有?脚本和C,就像当年的 C与ASM。

全然替代不是目的,合理的在嵌入式中优化现有的实现框架。才是我们须要的。

我坚信,脚本在嵌入式中一定会大放异彩。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2573072.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-07
下一篇 2022-08-07

发表评论

登录后才能评论

评论列表(0条)

保存