23451|40

7815

帖子

57

TA的资源

裸片初长成(中级)

楼主
 

在单片机上跑lua [复制链接]

 
说到Lua.......
就是个脚本语言,水果说,不就是个命令行么?嗯,我觉得也像,就是个shell bat之类的呗。
只不过shell依赖unix环境,bat依赖 windows

而lua这一类的脚本语言,它最神奇的地方就是,它不依赖任何操作系统。
不过,说实在的,我真的不知道怎么具体解释 Lua是啥。

简单地说,Lua和Python比较类似,就是脚本语言,对于脚本语言,目前我贫乏的大脑里只能联想到bat脚本可以很方便地组合小exe然后定制小软件。

好吧,翻来覆去来来去去还是这么一句,不说了。下面沙发说点正事。


最新回复

  详情 回复 发表于 2018-8-21 14:57
点赞 关注(2)
个人签名

强者为尊,弱者,死无葬身之地


回复
举报

6423

帖子

16

TA的资源

版主

沙发
 
已水
 
个人签名training
 

回复

6040

帖子

204

TA的资源

版主

板凳
 
本帖最后由 lcofjp 于 2016-5-26 22:50 编辑

二层占楼
在啥平台上跑的?stm32吗,点个灯让吾等膜拜一下。。
 
 
 

回复

7815

帖子

57

TA的资源

裸片初长成(中级)

4
 
先说说怎么跑起来吧。

三句不离本行,我是个搞单片机的,当然就关心怎么在单片机上运行。
以前我就知道了有个专门针对 embed的版本叫 eLua,很良心的是,这次他说的嵌入式,包括stm32这类单片机,而不是动不动就embed linux。
这得益于 Lua真的很小。

有个数据统计是,在PC上,全功能的Lua编译出来大概是120K,与之相比,python是八九百K,而Perl是1.1M。
但是,其实我玩了一下后感觉,其实Lua内核其实很小,为什么捏。
因为这个Elua融合了很多其他库,但它全部加起来也就40K.

所以一开始我非常happy地想从elua开始。

可是,我瞅了好几次,始终是它认识我,我不认识它......
没办法了。

我最后想,既然Lua这么小,还有人说直接从源码编译,我突然想起以前我编译 单元测试框架 Unity的事情,于是我想,不就是一个C库么,得,我自己玩。

于是跑到Lua官网,最后看了一圈,下了一份代码回来自个加入一个我之前玩的 stm32f429i的工程里。编译,调用一下,没什么大问题。

其实唯一注意的就是,如果你是要融入自己的程序,就是说Lua只是作为一个程序组件,那你就不要加入lua.c luac.c这两个头文件。

关于这两个,下边稍微有点详细解释。
 
个人签名

强者为尊,弱者,死无葬身之地

 
 

回复

7815

帖子

57

TA的资源

裸片初长成(中级)

5
 
其实去年春节的时候我没事就在家里寂寞空虚冷的玩了一下PC上的lua.
当时跑的是已经在windows下编译好的 LuaDist。
其实说实在的,我当时跑着跑着的感觉,就觉得自己是在玩cmd命令行而已。
又有点像我以前尝鲜玩Python一样。

在它上面可以输入很多很简单的又很像C库的一些命令,比如说
print("xxxx")
真心的连个f都不用写了。
非常接近自然语言,最重要的,丫还不用编译......

但我其实没有怎么玩下去。
所以,直到今天我还不是特别明白这货到底是什么
 
个人签名

强者为尊,弱者,死无葬身之地

 
 

回复

7815

帖子

57

TA的资源

裸片初长成(中级)

6
 
但是这次,我自个编译 lua了。
虽然我搜百度的时候,有人告诉我要记得 把 lua.c luac.c去掉,可是我很好奇啊。
我就不去试试。

结果就编译失败了——那会我还没下班,没忍住好奇,只是在codeblocks上试着编译一个来玩玩。

于是我发现,问题出在
lua.c luac.c里都各自有了一个main函数。

既然如此,如果再和自己的main函数混在一起那肯定不能通过编译的。

这时候我搜百度,得到的最有用的答案只有六个字。

lua.c编译出来的是 lua解释器,luac.c编译出来的是 lua编译器。
这是个什么鬼?

lua.c编译后跑了一下,得到一个和我以前运行LuaDist一模一样的界面,我在上面试着输入了一句 print("xxx");
一回车果然如此。

这时候我继续搜索 luac.c这个所谓的编译器又是个什么鬼?

其实我以前玩的时候就没搞明白过这个编译器是个什么东西,不是说lua只是个脚本语言么,不是说不要编译么,那这到底是什么玩意?

到最后我还是啥解释都没找到,都基本想买本 lua程序设计回来看了。

但我回想了一下,在搜的过程里,我看到一个这样的唯一有实质性的答案是

用luac.c可以运行 .lua后缀的lua文件。
 
个人签名

强者为尊,弱者,死无葬身之地

 
 

回复

7815

帖子

57

TA的资源

裸片初长成(中级)

7
 
所以我也基本放弃了继续无谓的搜索。
我发现不仅百度问不出啥,就是直接搜yahoo还是没有。

所以说,很可能是这个问题,问的就有点问题。

于是我感觉了一下这个答案。
可以运行lua文件。

于是我综合了一下,心理大致有了一个理解:

所谓解释器,应该就是类似于shell或者cmd窗口,它们可以接受命令,并解释执行。
而编译器,它的意思应该是可以理解 lua这种语言特有的文件,其后缀就是 .lua
正如c语言其后缀就是.c

而lua文件构成的必然也是 那些可以在 lua解释器里 运行的语句,命令。

这个过程,可以打个非常具体的比喻就是

lua的解释器就相当于windows下的cmd窗口,编译器就类似于可以执行bat的cmd程序;
在linux下,解释器相当于 终端,编译器相当于 shell脚本工具 sh
 
个人签名

强者为尊,弱者,死无葬身之地

 
 

回复

7815

帖子

57

TA的资源

裸片初长成(中级)

8
 
本帖最后由 辛昕 于 2016-5-27 10:24 编辑

至于lua栽到 单片机上能干嘛,这也是我下一步在想的事情

目前,我对于lua的唯一想法就是 脚本,然后可以用字符串描述要调用的C函数......
除此以外,真心我贫乏的大脑再无第二种想象。

当然,像elua那样我也看着觉得挺累,没啥意思,看来我去中心化的倾向真是太重了。
我从来没想过让lua当一个单片机程序的主控,我只是希望使用lua的一些方便特性而已

好了,11点了,洗澡撤了~~~

回头慢慢玩吧。
lua有份教程有中文版本,回头我捣鼓上来,边看边想想可以怎么玩。
[url=【Lua】中文教程 https://bbs.eeworld.com.cn/forum. ... 1192&fromuid=115166 (出处: 电子工程世界-论坛)]已发帖上传了这份pdf[/url]

因为我突然该死的觉得,假使现在没有lua,我也好像知道怎么实现 这种通过字符串调用函数的方法了。

我以前一直觉得这是个很神奇,甚至涉及了编译连接过程的事情,谁知道它丫的这么偷鸡.......
不过想想也是,lua本来就是一门很小很简洁的语言,既然都是纯C,那还能有什么别的神奇手段,还不是我以前自己想多了.........
 
个人签名

强者为尊,弱者,死无葬身之地

 
 

回复

7815

帖子

57

TA的资源

裸片初长成(中级)

9
 
lcofjp 发表于 2016-5-26 22:47
二层占楼
在啥平台上跑的?stm32吗,点个灯让吾等膜拜一下。。

stm32f429i
其实啥平台都能,随意~~
 
个人签名

强者为尊,弱者,死无葬身之地

 
 

回复

1万

帖子

24

TA的资源

版主

10
 
等续集。
 
 
 

回复

2721

帖子

0

TA的资源

纯净的硅(中级)

11
 
求助怎么在DOS下执行bat程序?我这边有个bat程序要升级。另外Qt也是多平台的,我感觉比lua好,但看到很多都是嵌入式应用,没用它来编程
 
 
 

回复

7815

帖子

57

TA的资源

裸片初长成(中级)

12
 
suoma 发表于 2016-5-27 07:51
求助怎么在DOS下执行bat程序?我这边有个bat程序要升级。另外Qt也是多平台的,我感觉比lua好,但看到很多都 ...

直接点击那个bat文件啊......
 
个人签名

强者为尊,弱者,死无葬身之地

 
 

回复

7815

帖子

57

TA的资源

裸片初长成(中级)

13
 
suoma 发表于 2016-5-27 07:51
求助怎么在DOS下执行bat程序?我这边有个bat程序要升级。另外Qt也是多平台的,我感觉比lua好,但看到很多都 ...

dos,你说的是cmd窗口吧?
直接输入那个bat的名字啊,当然你得设置好路径找到它。要么去它的文件夹下执行
 
个人签名

强者为尊,弱者,死无葬身之地

 
 

回复

1228

帖子

0

TA的资源

纯净的硅(高级)

14
 
F7discovery全力支持楼主,期待楼主无脑教程
 
个人签名

喝最烈的酒,..DIY最实用的东西

 
 

回复

7815

帖子

57

TA的资源

裸片初长成(中级)

15
 
lidonglei1 发表于 2016-5-27 10:02
F7discovery全力支持楼主,期待楼主无脑教程

怎么无脑了
 
个人签名

强者为尊,弱者,死无葬身之地

 
 

回复

1228

帖子

0

TA的资源

纯净的硅(高级)

16
 

SORRY,我表述有问题,我喜欢无脑的教程,希望您能把教程整的简单易懂一些,要不我跟不上
 
个人签名

喝最烈的酒,..DIY最实用的东西

 
 

回复

7815

帖子

57

TA的资源

裸片初长成(中级)

17
 
lidonglei1 发表于 2016-5-27 10:46
SORRY,我表述有问题,我喜欢无脑的教程,希望您能把教程整的简单易懂一些,要不我跟不上

嘿嘿,其实我知道的,逗你玩呢
最爱这种无脑教程了,每次我看到一些教程我无从下手我就想抽死丫的去,真的是,欺负我没玩过怎么回事..........
 
个人签名

强者为尊,弱者,死无葬身之地

 
 

回复

2721

帖子

0

TA的资源

纯净的硅(中级)

18
 
辛昕 发表于 2016-5-27 09:09
dos,你说的是cmd窗口吧?
直接输入那个bat的名字啊,当然你得设置好路径找到它。要么去它的文件夹下执 ...

好的我试一下,这边有个固件升级
 
 
 

回复

1305

帖子

0

TA的资源

纯净的硅(高级)

19
 
其实lua就是解释型语言(好像是这么叫的吧),类似我们小时候学的basic语言。

我一直有一点搞不清楚,如果用lua,保密性怎么解决?
 
 
 

回复

7815

帖子

57

TA的资源

裸片初长成(中级)

20
 
yang_alex 发表于 2016-5-28 11:50
其实lua就是解释型语言(好像是这么叫的吧),类似我们小时候学的basic语言。

我一直有一点搞不清楚,如 ...

神马安全性?

对了,其实我现在反而不觉得lua是一门语言,我更倾向于它是一个
程序库。

当然,这可能与我对lua还不够了解所致
 
个人签名

强者为尊,弱者,死无葬身之地

 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表