0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

单片机脚本语言移植lua到stm32MDK的步骤

汽车玩家 来源:cnblogs 作者:cnblogs 2021-07-22 16:54 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

Lua是一个小巧的脚本语言。作者是巴西人。该语言的设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。

Lua脚本能够非常easy的被C/C++ 代码调用,也能够反过来调用C/C++的函数,这使得Lua在应用程序中能够被广泛应用。不只作为扩展脚本,也能够作为普通的配置文件,取代XML,Ini等文件格式,而且更easy理解和维护。

Lua的目标是成为一个非常easy嵌入其他语言中使用的语言。大多数程序猿也觉得它的确做到了这一点。

非常多应用程序使用LUA作为自己的嵌入式脚本语言,以此来实现可配置性、可扩展性。这当中包含魔兽世界、博德之门、愤慨的小鸟、VOCALOID3 等。

MDK下lua移植到stm32

移植lua

  • l 加入�lua源代码到MDK,把lua.c 和luac.c删除。

l 改动堆栈大小:堆最小为5.5kb,栈最小是1.5kb。lua的空间分配在堆空间。16kb的内存建议分配是堆11Kb,栈4Kb,留1Kb给全局变量。

在startup_stm32f10x_md.s文件里

; stack size 0x1000 == 4Kb

Stack_Size EQU 0x00001000

; heap size 0x2c00 == 11Kb

Heap_Size EQU 0x00002C00

  • l 重写标准库底层函数

typedef int FILEHANDLE;

#pragma import(__use_no_semihosting_swi)

#pragma import(_main_redirection)

const char __stdin_name[150];

const char __stdout_name[150];

const char __stderr_name[150];

FILEHANDLE _sys_open(const char *name, intopenmode)

{

return0;

}

int _sys_close(FILEHANDLE fh)

{

return 0;

}

int _sys_write(FILEHANDLE fh, constunsigned char *buf, unsigned len, int mode)

{

return0;

}

int _sys_read(FILEHANDLE fh, unsigned char*buf, unsigned len, int mode)

{

return0;

}

  • //检查句柄是否为终端

int _sys_istty(FILEHANDLE fh)

{

return0;

}

int _sys_seek(FILEHANDLE fh, long pos)

{

return0;

}

  • //刷新句柄关联的缓冲区

int _sys_ensure(FILEHANDLE fh)

{

return0;

}

  • //返回文件当前长度

long _sys_flen(FILEHANDLE fh)

{

return0;

}

void _sys_exit(int status)

{

//while(1);

}

int _sys_tmpnam(char *name, int fileno, unsignedmaxlength)

{

return0;

}

  • //将一个字符写入控制台

void _ttywrch(int ch)

{

}

int remove(const char *filename)

{

return0;

}

char *_sys_command_string(char *cmd, intlen)

{

return NULL;

}

static int lua_led_on(lua_State *L)

{

GPIO_ResetBits(GPIOC,GPIO_Pin_13);

return1;

}


文章整合自:cnblogs

编辑:ymf

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6078

    文章

    45629

    浏览量

    675403
  • C语言
    +关注

    关注

    183

    文章

    7649

    浏览量

    146409
  • 脚本语言
    +关注

    关注

    0

    文章

    48

    浏览量

    8624
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    学习STM32单片机,从菜鸟牛人应该怎么走?

    、函数、指针等。 2.了解电子电路基础 对于单片机开发来说,了解电子电路的基础知识是非常重要的,包括基本的电路原理、电阻、电容、电感等元件的作用和特性。 第二步STM32入门 1.了解ARM
    发表于 05-11 15:38

    C++与lua联合编程

    在现代软件工程的庞大架构中,纯粹的 C++ 与动态脚本语言之间的关系,早已演变成一场精密的“商业分工”。C++ 扮演着提供极致性能的“底层重工业”,而 Lua 则充当着实现灵活业务逻辑的“轻量级
    发表于 04-19 16:27

    智能显示模块支持脚本语言吗?

    智能显示模块支持脚本语言吗?
    发表于 02-26 11:18

    小白也能听懂的单片机知识路径

    尝试新的想法和技术,不断挑战自我,实现创新。 从51单片机STM32单片机,这是一条充满挑战与机遇的学习之路。通过不断努力和实践,只要保持对技术的热爱和坚持,一定能够成为
    发表于 02-04 16:44

    CW32单片机支持哪几种开发环境,比较常用的MDK支持吗?

    CW32单片机支持哪几种开发环境,比较常用的MDK支持吗。 若使用MDK开发,是否也需要下载芯片包,导入MDK中?xxx32的库可以用吗。
    发表于 01-26 06:14

    Lua基础语法更新篇(上)

    初识 Lua   Lua 是一种轻量小巧的脚本语言,它用标准C语言编写并以源代码形式开放。这意味着什么呢?这意味着Lua虚拟
    的头像 发表于 01-23 19:56 256次阅读
    <b class='flag-5'>Lua</b>基础语法更新篇(上)

    LuatOS-Air脚本移植LuatOS版本注意事项

    一、lua版本不一样 LuatOS-Air使用的是lua5.1版本,本身不支持位移运算符。 LuatOS使用的是lua5.3版本,取消了module(..., package.seeall)这种形式
    的头像 发表于 01-17 14:48 1307次阅读
    LuatOS-Air<b class='flag-5'>脚本</b><b class='flag-5'>移植</b><b class='flag-5'>到</b>LuatOS版本注意事项

    为什么单片机还在用C语言编程?

    最适合单片机开发的编程语言实在太过晦涩难懂,学习起来非常的不方便,并且每一种单片机的汇编指令有很大区别,所以想把一个程序从这种单片机移植
    发表于 11-28 07:37

    LUA例程-常用的回调函数使用说明

    详细说明LUA脚本函数功能和对应的应用实例。对于LUA脚本编程有很大的帮助和提高技能。
    发表于 11-24 16:43 0次下载

    C语言单片机C语言有什么差异

    单片机c语言相对于普通C语言增加了一些基本的指令,还有变量的赋值是16进制,当然单片机c语言只牵涉
    发表于 11-14 07:55

    大彩讲堂:VisualHMI-LUA教程-获取与设置32位数据函数的应用

    一、适合范围本文档适用于VisualHMI平台,Lua脚本语言为V5.3版本,配合工程可以完成大部分的内部逻辑处理。二、概述2.1.get_uint32(vtype,addr)读取无符号整形寄存器
    的头像 发表于 10-15 17:46 1495次阅读
    大彩讲堂:VisualHMI-<b class='flag-5'>LUA</b>教程-获取与设置32位数据函数的应用

    大彩讲堂:VisualHMI-LUA教程-获取和设置16位数据函数

    一、适合范围本文档适用于VisualHMI平台,Lua脚本语言为V5.3版本,配合工程可以完成大部分的内部逻辑处理。二、概述2.1get_uint16(vtype,addr)读取无符号短整型寄存器
    的头像 发表于 10-13 16:40 1583次阅读
    大彩讲堂:VisualHMI-<b class='flag-5'>LUA</b>教程-获取和设置16位数据函数

    怎么测单片机系统频率

    ,各有其特点和操作要点。 示波器测量法 示波器是测量单片机系统频率的常用工具,其原理是通过捕捉单片机输出的周期性信号,根据信号的周期计算频率。 操作步骤 首先,确定单片机的时钟输出引脚
    的头像 发表于 07-25 11:39 1203次阅读

    大彩讲堂:VisualHMI-LUA教程-on_run回调函数使用指南

    一、适合范围本文档适用于VisualHMI平台,Lua脚本语言为V5.3版本,配合工程可以完成大部分的内部逻辑处理。二、概述on_run(screen)周期回调函数,用该回调函数,会根据设定的时间
    的头像 发表于 07-23 15:25 1350次阅读
    大彩讲堂:VisualHMI-<b class='flag-5'>LUA</b>教程-on_run回调函数使用指南

    机智云配网教程第三期:单片机代码移植实战

    前言本篇文章将分享单片机移植的经验。可以下载并按步骤移植,也可以直接使用已移植好的工程文件。文中将介绍我在
    的头像 发表于 07-01 17:32 2345次阅读
    机智云配网教程第三期:<b class='flag-5'>单片机</b>代码<b class='flag-5'>移植</b>实战