查看: 22718|回复: 37

打算做块STM32F4的板,用来跑LUA,做你想做的事

  [复制链接]
  • TA的每日心情
    开心
    2020-2-5 16:14
  • 签到天数: 518 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2012-11-23 18:02:19 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 dzcn 于 2013-1-12 16:22 编辑

    一、什么是LUA(度娘百科)

           Lua 是一个小巧的脚本语言。作者是巴西人。该语言的设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。
      Lua脚本可以很容易的被C/C++代码调用,也可以反过来调用C/C++的函数,这使得Lua在应用程序中可以被广泛应用。不仅仅作为扩展脚本,也可以作为普通的配置文件,代替XML,Ini等文件格式,并且更容易理解和维护。
      Lua由标准C编写而成,代码简洁优美,几乎在所有操作系统和平台上都可以编译,运行。
      一个完整的Lua解释器不过200k,在目前所有脚本引擎中,Lua的速度是最快的。这一切都决定了Lua是作为嵌入式脚本的最佳选择。
    Lua的目标是成为一个很容易嵌入其它语言中使用的语言。大多数程序员也认为它的确做到了这一点。
      很多应用程序使用LUA作为自己的嵌入式脚本语言,以此来实现可配置性、可扩展性。这其中包括魔兽世界、博德之门、愤怒的小鸟等

    二、搭建LUA运行平台
        完整的LUA编译后大概需要200多K的空间,STM32F4最大1M的FLASH和高达192K的RAM(大的RAM可以运行大的LUA脚本,因为LUA脚本读到RAM进行解释的),不用外扩FLASH和RAM,最主要的是STM32F4带有FPU,而LUA的数据都是以浮点类型存在的--这真是天生的一对,{:soso_e113:}还有更主要的是STM32F4最近很火,所以就选它了。平台大概外设包含USB、串口、液晶、SD卡,其他的IO引出。

    三、移植LUA到STM32F4
    移植过程很简单,因为LUA是标准C写的,基本上无需做任何修改就可以编译在任何支持标准C的编译器,简单吧。
    四、编写STM32F4外设驱动、并注册到LUA
    STM32F4有驱动库,只需要简单的改写成LUA要求的格式或自己定义成类似ARDUINO形式的即可(当然也需要遵循LUA所要求的格式,否则会不认您这个亲家的{:soso_e120:})。当然这驱动也包括液晶驱动。
    五、移植文件系统,并注册到LUA
    移植FATFS或其它的开源文件系统都可,将文件系统常用的操作注册到LUA,就可以用LUA语言来操作SD卡的文件了。最重要的是,可以把放在SD卡上的lua程序读进来放到LUA虚拟机里执行。

    六、应用
    说了这么到,看官们肯定急了,这..这LUA到底能干吗?
    话说我也不知道能干吗,任您发挥。比如:
    用lua程序写个游戏,把程序拷贝到SD卡,插上SD卡,就可以玩了。
    用lua程序控制外设,把程序拷贝到SD卡,插上SD卡,就可以得到您要的结果。
    因为有了LUA,您可以动态加载您的应用程序,可以像WINDOWS那样在桌面生成您应用程序的图标,点击图标就可以执行您的程序。
    还可以用LUA解释XML,这样你就可以在PC机上布局你的界面,生成XML,让LUA去帮您完成剩下的工作。让界面设计变得如此简单。
    还可以...
    而这一切,只需要在文本编辑器上编写您的LUA程序即可,彻底摆脱编译器、下载器、调试器。
    其实...这大部分已经有国外的大牛帮我们完成了,那就是elua。不过那东东很膨大,不利于我们学习掌握,所以准备踏着先人的足迹,重新走一遍。
    嗯,就这些吧,有兴趣的童鞋们踊跃跟帖哦。
    ---------------------------------------------------------------------------------------
    原理图更新于#32
       LUA_BOARD.pdf

    -------------------------------------------------------------------------------------------------------------------------------------------

    进度帖:
    lua board 基于stm32f4的lua脚本板

    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2016-8-25 12:42
  • 签到天数: 692 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2012-11-23 18:14:55 | 显示全部楼层
    不错的想法,支持
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2016-5-9 12:20
  • 签到天数: 350 天

    连续签到: 1 天

    [LV.8]以坛为家I

    发表于 2012-11-23 18:39:53 | 显示全部楼层
    听起来有意思。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2015-5-29 12:01
  • 签到天数: 11 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    发表于 2012-11-23 20:57:28 | 显示全部楼层
    用lua程序写个游戏,把程序拷贝到SD卡,插上SD卡,就可以玩了。
    用lua程序控制外设,把程序拷贝到SD卡,插上SD卡,就可以得到您要的结果。

    有性趣
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2017-6-4 09:20
  • 签到天数: 427 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2012-11-23 21:07:33 | 显示全部楼层
    非常期待哟
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2020-3-19 13:22
  • 签到天数: 805 天

    连续签到: 1 天

    [LV.10]以坛为家III

    发表于 2012-11-23 21:22:01 | 显示全部楼层
    期待                                       
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2020-2-5 16:14
  • 签到天数: 518 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2012-11-23 21:32:02 | 显示全部楼层
    火哥造个廉价的板子给我们玩玩啊
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2015-2-14 09:02
  • 签到天数: 656 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2012-11-23 21:37:24 | 显示全部楼层
    对lua感兴趣
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2013-9-20 19:11
  • 签到天数: 31 天

    连续签到: 1 天

    [LV.5]常住居民I

    发表于 2012-11-23 21:39:29 | 显示全部楼层
    不错不错,只是希望班子能做的尽量简单一些,有需要功能扩展的再往上搭建扩展板,方便以后DIY

    另外STM32F4应该是有USB OTG的吧...能不能直接通过USB编辑SD卡上的文件,然后芯片接着就可以读取文件运行,免得插来插去很麻烦...

    还有一点就是如果是只用文本编辑器的话,有什么办法能实现语法检查呢?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2016-8-26 01:52
  • 签到天数: 120 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2012-11-24 01:38:56 | 显示全部楼层
    挺好玩儿的,感兴趣!
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-11-25 22:27 , Processed in 0.182411 second(s), 32 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.