社区导航

 

搜索
查看: 2247|回复: 27

[原创] 【脚本】单片机/嵌入式脚本 博览会

  [复制链接]

7866

TA的帖子

54

TA的资源

裸片初长成(中级)

Rank: 11Rank: 11Rank: 11Rank: 11

荣誉会员勋章

发表于 2017-9-26 23:27 | 显示全部楼层 |阅读模式
本帖最后由 辛昕 于 2017-9-26 23:29 编辑

感谢论坛的 d大神 的 micropython系列,所以我根本不用介绍神马是 单片机/嵌入式脚本。说到这个,大家都会想到 lua.
无奈,lua也好,micropython也罢,都是超过100K+的 “庞然大物”——想想stm32f030吧,总共才32K 64K flash。
所以,一直想找一个更小,更简单的东东。

这过程比较艰辛,比较悲催。
就,不说了。

晚上突然搜索到一个360doc,发现里面介绍了不少东西,居然闻所未闻,开眼了。
决定在接下去一个一个研究之前,先把它们发到这。

一种占一个楼层,反正这会估计都睡着了,没人抢沙发.......

此内容由EEWORLD论坛网友辛昕原创(整理),如需转载或用于商业用途需征得作者同意并注明出处
原帖



此帖出自编程基础论坛
没有一件事情是容易的,所以,起念头时,一定要好好琢磨


回复

使用道具 举报

7866

TA的帖子

54

TA的资源

裸片初长成(中级)

Rank: 11Rank: 11Rank: 11Rank: 11

荣誉会员勋章

 楼主| 发表于 2017-9-26 23:30 | 显示全部楼层
本帖最后由 辛昕 于 2017-9-26 23:56 编辑
ChaiScript

ChaiScript 是第一个也是目前唯一一个与C++的兼容性的脚本语言,受 ECMAScript 影响的嵌入式的功能性语言。

楼主说:

原谅我,虽然我听说过 ECMAScript,好像是个规范,但素我表示我完全不鸡岛它到底是个什么鬼
没有一件事情是容易的,所以,起念头时,一定要好好琢磨


回复

使用道具 举报

7866

TA的帖子

54

TA的资源

裸片初长成(中级)

Rank: 11Rank: 11Rank: 11Rank: 11

荣誉会员勋章

 楼主| 发表于 2017-9-26 23:32 | 显示全部楼层
本帖最后由 辛昕 于 2017-9-26 23:55 编辑
Felix

号称是地球上最快的脚本编程语言。

目标:

高性能
快速原型化和脚本语言发布模型
安全、无错
稳定
可伸缩性
适应性
平台无关
Felix 可无缝的绑定 C/C++ 代码,最大程度的利用现有库。

功能:

垃圾收集
静态类型
参数化多态
重载
正则表达式匹配
等等
示例代码:

  1. write$ stdout,"Enter your name: "; fflush stdout;
  2. val name = readln$ stdin;
  3. writeln$ stdout, "Hello " + name;
复制代码

楼主说:

尼玛好像很厉害的样子,那肯定小不到哪去,不过它也没骗我,它只是说最快。
不过这恰好就不是我想要的呀尼玛.......
没有一件事情是容易的,所以,起念头时,一定要好好琢磨


回复

使用道具 举报

7866

TA的帖子

54

TA的资源

裸片初长成(中级)

Rank: 11Rank: 11Rank: 11Rank: 11

荣誉会员勋章

 楼主| 发表于 2017-9-26 23:34 | 显示全部楼层
本帖最后由 辛昕 于 2017-9-26 23:56 编辑
LuaPlus

LuaPlus是Lua的C++增强,也就是说,LuaPlus本身就是在Lua的源码上进行增强得来的。用它与C++进行合作,是比较好的一个选择。

楼主说:

这个,我只关心两件事:
1.增强了,代码大了么?
2.和C++进行合作比较好,辣么,是说不用经过一层封装么?
没有一件事情是容易的,所以,起念头时,一定要好好琢磨


回复

使用道具 举报

6926

TA的帖子

17

TA的资源

版主

Rank: 6Rank: 6

发表于 2017-9-26 23:36 | 显示全部楼层
为什么要在资源这么少的片子上跑脚本呢?

点评

我也一直有这个疑问,的确是方便了不太会单片机的软件工程师做硬件开发,但局限性还是很大。可能对学习比较有好处。  详情 回复 发表于 2017-9-27 08:55
大神,需要你出山回答问题了 @dcexpert  详情 回复 发表于 2017-9-26 23:55
因为方便  详情 回复 发表于 2017-9-26 23:53
training


回复

使用道具 举报

7866

TA的帖子

54

TA的资源

裸片初长成(中级)

Rank: 11Rank: 11Rank: 11Rank: 11

荣誉会员勋章

 楼主| 发表于 2017-9-26 23:37 | 显示全部楼层
本帖最后由 辛昕 于 2017-9-26 23:57 编辑
zhscript

实现一种不像计算机语言的脚本语言。 按照中文语法习惯去分析执行语句。 通过简单文字接口便可调用标准库(如libstdc)、第三方库、自己扩展的库。 环境:ubuntu、eclipse cdt、eclipse adt,mac osx、xcode。

楼主说:

中文?
能支持C/C++吗?
很多年前我发过一个帖子,吐槽在C代码里,混杂着英文,缩写和中文(拼音)的东西,然而我被一个大叔一句——我们以前只学过俄语没学过英文震撼了。
多年后,我被大量拼音域名充斥中文世界,我表示:
对不起,多年前我说错了。

中文,真尼玛重要,哪怕是我这样一个看英文技术网页都不至于太苦逼的人,内心深处还是渴望看中文
没有一件事情是容易的,所以,起念头时,一定要好好琢磨


回复

使用道具 举报

7866

TA的帖子

54

TA的资源

裸片初长成(中级)

Rank: 11Rank: 11Rank: 11Rank: 11

荣誉会员勋章

 楼主| 发表于 2017-9-26 23:40 | 显示全部楼层
本帖最后由 辛昕 于 2017-9-26 23:57 编辑
ccScript

GNU ccScript提供了一流的可扩展的多线程C++嵌入式脚本引擎。这个引擎也被用来在Bayonne(GNU电话服务器) ,并在TOSI( FreeBSD和GNU / Linux的交换机集成服务器) 。该引擎不同于传统的脚本系统,因为它是用来脚本近实时状态事件系统通过确定性回调步骤执行,而不是线性和非确定性时尚的嵌入式脚本库,如TCL和 libguile 。

楼主说:

其实这才是我最开始想了解的东西。
看样子,它似乎是 (GNU) C/C++原生支持的东西。
我曾对一个很久以前的 Cscript,它叫啥我忘了,好像是叫 csript 垂涎三尺。

可惜它不是免费的,而且就算教育版,连个代码都搞不到。
而且它似乎只有PC版......
所以死心了。

这充分说明了我对 原生脚本语言的渴望
没有一件事情是容易的,所以,起念头时,一定要好好琢磨


回复

使用道具 举报

7866

TA的帖子

54

TA的资源

裸片初长成(中级)

Rank: 11Rank: 11Rank: 11Rank: 11

荣誉会员勋章

 楼主| 发表于 2017-9-26 23:40 | 显示全部楼层
puppy


puppy是一种解释型的结构化脚本语言。puppy的语法十分简单,关键字也较少(14个),适合非专业编程人员使用,譬如游戏开发过程中某些逻辑的编 写,或为应用程序提供脚本支持,由用户为软件编写各种扩展。puppy使用C++语言实现,接口为C语言形式,因此可集成到C或C++项目中。puppy目前支持Windows及Linux。
没有一件事情是容易的,所以,起念头时,一定要好好琢磨


回复

使用道具 举报

7866

TA的帖子

54

TA的资源

裸片初长成(中级)

Rank: 11Rank: 11Rank: 11Rank: 11

荣誉会员勋章

 楼主| 发表于 2017-9-26 23:42 | 显示全部楼层
本帖最后由 辛昕 于 2017-9-26 23:58 编辑
Gui4Cli

Gui4Cli 是一种易学的脚本语言,可以让任何人,不管是编程熟手还是 菜鸟 都可以在几分钟内编写一个界面。你所要做的就是使用 Gui4Cli 语言 (简单易学)编写一个脚本(普通的文本文件)然后运行它。Gui4Cli有很多能力(列表,树形列表,分页,复合容器以及所有其它控件,计时器,数据库,jpg/gif/bmp 文件,图标,DirectX,字体,注册表控制,等等)。它有一个丰富的命令集合和一个简单,方便的语言来管理它们。更多细节,比如自动化和互联网支持将在不久之后加入。

有很多其它脚本语言,有些更强大,但大多数是难学的以致于还不如直接去学它们的母族语言(C/C++)。Gui4Cli 没有试图解决所有事情。你不能用它编写下一版本的 Windows ,但你可以用它编写多彩的界面,做很多事情来控制你的PC,以一种最快速,最简单的方式...

楼主说:

身为一个多年搞GUI(mcu上)的人,我对这个东西非常感兴趣,当然看完介绍我几乎马上明白,这东西几乎没办法直接拿来用。
但是,没关系,我感兴趣的是,它和底层图形接口的耦合方法。

因为,这也是我开发自己的 FreeUI过程中经常关心的问题。
没有一件事情是容易的,所以,起念头时,一定要好好琢磨


回复

使用道具 举报

7866

TA的帖子

54

TA的资源

裸片初长成(中级)

Rank: 11Rank: 11Rank: 11Rank: 11

荣誉会员勋章

 楼主| 发表于 2017-9-26 23:43 | 显示全部楼层
本帖最后由 辛昕 于 2017-9-27 00:04 编辑
Io

Io语言是一门简单小巧采用原型编程范式的弱类型动态语言。虚拟机只有10K左右。初次遇见Io,你一定会惊叹于它的简洁。从Io官网就可以看出来,作者Steve Dekorte是个极度崇尚简洁的人。

io作为一门原型语言,其对象关系模型也十分清晰。使用protos就可以查看某一个对象(需要为带有type槽的对象)的原型列表。某一个对象在收到消息时会查找自己的是否含有相应的消息槽,如果有就直接响应,如果没有就在它的原型列表上依次查找,以此类推。也可以通过appendProto(anObject)把anObject放入对象的原型列表中。

楼主说:

这看起来真的吊炸天的厉害。
不过,我只想弱弱的问:C的么,C++也行......
没有一件事情是容易的,所以,起念头时,一定要好好琢磨


回复

使用道具 举报

7866

TA的帖子

54

TA的资源

裸片初长成(中级)

Rank: 11Rank: 11Rank: 11Rank: 11

荣誉会员勋章

 楼主| 发表于 2017-9-26 23:44 | 显示全部楼层
本帖最后由 辛昕 于 2017-9-27 00:04 编辑
Circa

Circa 是一个可让编程者即时看到代码运行结果的编程语言,也就是说你在写代码的同时代码也在运行中。其灵感来自于 Lisp 和 Smalltalk,语法类似 Python 和 Ruby。

语言本身采用 C++ 编写。
楼主说:

因吹斯听
没有一件事情是容易的,所以,起念头时,一定要好好琢磨


回复

使用道具 举报

7866

TA的帖子

54

TA的资源

裸片初长成(中级)

Rank: 11Rank: 11Rank: 11Rank: 11

荣誉会员勋章

 楼主| 发表于 2017-9-26 23:46 | 显示全部楼层
本帖最后由 辛昕 于 2017-9-27 00:05 编辑
execline

execline 是一个非常轻量级的非交互的脚本语言,和 SHELL 类似,你可以使用 execline 来编写 SHELL,主要用于嵌入式系统,但也支持在多种 Linux/Unix 上运行。
楼主说:
我就想说:
非交互是什么鬼意思,难道脚本不是拿来交互的咩.....
还是不是我以为的那个意思,说的不是代码之间的交互?
没有一件事情是容易的,所以,起念头时,一定要好好琢磨


回复

使用道具 举报

7866

TA的帖子

54

TA的资源

裸片初长成(中级)

Rank: 11Rank: 11Rank: 11Rank: 11

荣誉会员勋章

 楼主| 发表于 2017-9-26 23:53 | 显示全部楼层
白丁 发表于 2017-9-26 23:36
为什么要在资源这么少的片子上跑脚本呢?

因为方便
没有一件事情是容易的,所以,起念头时,一定要好好琢磨


回复

使用道具 举报

7866

TA的帖子

54

TA的资源

裸片初长成(中级)

Rank: 11Rank: 11Rank: 11Rank: 11

荣誉会员勋章

 楼主| 发表于 2017-9-26 23:55 | 显示全部楼层
白丁 发表于 2017-9-26 23:36
为什么要在资源这么少的片子上跑脚本呢?

大神,需要你出山回答问题了
@dcexpert

点评

现在硬件成本降低,很多时候不用在意MCU的成本,因为它只占系统成本中相当小的比例,如果可以减少开发时间,减少维护量,带来的好处是远远大于一颗MCU的成本的。 特别在产品的前期开发是这样,等产品稳定后,在重  详情 回复 发表于 2017-9-27 10:05
没有一件事情是容易的,所以,起念头时,一定要好好琢磨


回复

使用道具 举报

5605

TA的帖子

207

TA的资源

版主

Rank: 6Rank: 6

发表于 2017-9-27 02:19 | 显示全部楼层
我觉得教主你还是洗洗睡吧,我们年纪都不小了,该搞点正经事了,就像曾经的我,东扯西扯,到现在连个正经工作都找不到了,不过话说回来,有点业余爱好还是可以的,但是前提是在某方面要有所成就,否则还是专一个方向的好。
作为本帖的回复,我觉得你没提js是不完美的,现在帮你补充下,你也研究下
JerryScript
A JavaScript engine for Internet of Things

JerryScript is the lightweight JavaScript engine intended to run on a very constrained devices such as microcontrollers:

Only few kilobytes of RAM available to the engine (<64 KB RAM)
Constrained ROM space for the code of the engine (<200 KB ROM)
The engine supports on-device compilation, execution and provides access to peripherals from JavaScript.
网址:http://jerryscript.net/

EEWORLD开发板置换群:309018200,——电工们免费装β的天堂,虽然在群里买不到板子,但是可以学会开车;虽然学不到技术,但是可以学会开车;商家勿入!加群暗号:喵


回复

使用道具 举报

6999

TA的帖子

193

TA的资源

五彩晶圆(高级)

Rank: 9Rank: 9Rank: 9

测评达人

发表于 2017-9-27 08:25 | 显示全部楼层
单片机上跑脚本用处是啥 教主

点评

问题是这东西有商业化的产品会用吗?  详情 回复 发表于 2018-3-27 10:05
免编译。 不用接触原始代码。  详情 回复 发表于 2017-9-27 10:28


回复

使用道具 举报

746

TA的帖子

2

TA的资源

纯净的硅(中级)

Rank: 5Rank: 5

荣誉会员勋章

发表于 2017-9-27 08:55 | 显示全部楼层
白丁 发表于 2017-9-26 23:36
为什么要在资源这么少的片子上跑脚本呢?

我也一直有这个疑问,的确是方便了不太会单片机的软件工程师做硬件开发,但局限性还是很大。可能对学习比较有好处。

点评

有所选择有所牺牲。 其实这个东西,已经不是真正意义上的脚本了。 更多的只是要一个 C语法解析器。  详情 回复 发表于 2017-9-27 10:29
亚里士缺德


回复

使用道具 举报

8113

TA的帖子

14

TA的资源

版主

Rank: 6Rank: 6

测评达人

发表于 2017-9-27 10:05 | 显示全部楼层
辛昕 发表于 2017-9-26 23:55
大神,需要你出山回答问题了
@dcexpert

现在硬件成本降低,很多时候不用在意MCU的成本,因为它只占系统成本中相当小的比例,如果可以减少开发时间,减少维护量,带来的好处是远远大于一颗MCU的成本的。

特别在产品的前期开发是这样,等产品稳定后,在重新优化也来得及。

点评

额,主要是我瞄准的是 所谓 智能尘埃 这个领域.........  详情 回复 发表于 2017-9-27 11:13


回复

使用道具 举报

7866

TA的帖子

54

TA的资源

裸片初长成(中级)

Rank: 11Rank: 11Rank: 11Rank: 11

荣誉会员勋章

 楼主| 发表于 2017-9-27 10:28 | 显示全部楼层
常见泽1 发表于 2017-9-27 08:25
单片机上跑脚本用处是啥 教主

免编译。
不用接触原始代码。

点评

问题是有产品开发会用这种方式吗?  详情 回复 发表于 2018-3-27 10:06
没有一件事情是容易的,所以,起念头时,一定要好好琢磨


回复

使用道具 举报

7866

TA的帖子

54

TA的资源

裸片初长成(中级)

Rank: 11Rank: 11Rank: 11Rank: 11

荣誉会员勋章

 楼主| 发表于 2017-9-27 10:29 | 显示全部楼层
汤权 发表于 2017-9-27 08:55
我也一直有这个疑问,的确是方便了不太会单片机的软件工程师做硬件开发,但局限性还是很大。可能对学习比 ...

有所选择有所牺牲。
其实这个东西,已经不是真正意义上的脚本了。
更多的只是要一个 C语法解析器。
没有一件事情是容易的,所以,起念头时,一定要好好琢磨


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2019-6-26 21:47 , Processed in 0.520290 second(s), 18 queries , Gzip On, MemCache On.

快速回复 返回顶部 返回列表