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

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

    关注

    6037

    文章

    44558

    浏览量

    635353
  • C语言
    +关注

    关注

    180

    文章

    7604

    浏览量

    136840
  • 脚本语言
    +关注

    关注

    0

    文章

    48

    浏览量

    8225
收藏 人收藏

    评论

    相关推荐

    nginx+lua+redis实现灰度发布

    了这种能力,随时可以基于这种能力和思想调整实现方案:比如nginx+lua+(其他数据源)、nginx+(其他脚本语言) 一、灰度方案: 常见的灰度实现方案: 1.请求路由:通过请求中的标识(如用户ID、设备ID、请求头等)来决定是否将请求路由
    的头像 发表于 12-17 10:01 70次阅读

    单片机编程语言有哪些选择

    常用的单片机编程语言,以及它们的特点和应用场景: 1. C语言 特点 :C语言是一种通用的编程语言,以其高效性和灵活性而闻名。它提供了丰富的
    的头像 发表于 11-01 14:13 565次阅读

    Lua语法基础教程(上篇)

    今天我们来学习Lua语法基础教程。由于篇幅过长,将分为上中下三篇进行讲解,本篇为上篇。 一、初识Lua Lua 是一种轻量小巧的脚本语言,它用标准C
    的头像 发表于 10-24 07:17 210次阅读

    单片机STM32可以用Python写吗?可以的开发板有哪些?

    近年来,随着嵌入式技术的发展,Python语言逐渐被引入单片机开发中,尤其是一些高性能的单片机上。这一趋势给开发者带来了极大的便利,尤其是在快速原型设计和实验中。本文将详细探讨
    的头像 发表于 09-05 08:00 3398次阅读
    <b class='flag-5'>单片机</b><b class='flag-5'>STM32</b>可以用Python写吗?可以的开发板有哪些?

    stm32单片机用什么软件编程

    STM32单片机是一种广泛应用于嵌入式系统领域的微控制器,具有高性能、低功耗、丰富的外设接口等特点。要对STM32单片机进行编程,需要选择合适的软件工具。 概述
    的头像 发表于 09-02 10:16 1361次阅读

    单片机烧录程序的基本步骤是什么

    单片机烧录程序是单片机开发过程中非常重要的一步,它涉及将编写好的程序代码通过一定的方式传输到单片机内部的存储器中,使单片机能够按照预定的逻
    的头像 发表于 09-02 09:47 1059次阅读

    stm32单片机引脚介绍及功能

    STM32系列单片机是STMicroelectronics(意法半导体)推出的一款基于ARM Cortex-M内核的32位微控制器。STM32单片机具有高性能、低功耗、丰富的外设和灵活
    的头像 发表于 09-02 09:38 5731次阅读

    【龙芯2K0300蜂鸟板试用】+3.移植lualoongarch

    1.Lua简介 Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放,其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。
    发表于 08-18 03:31

    51、STM32单片机的编程方式一样吗?

    STM32和51单片机是两种常见的单片机系列,它们在硬件架构、性能特点和编程方式等方面有所不同。但是从c语言编程的角度来说,我认为是大同小异的。我们来对比一下它们的编程特点:51&am
    的头像 发表于 05-18 08:04 2220次阅读
    51、<b class='flag-5'>STM32</b><b class='flag-5'>单片机</b>的编程方式一样吗?

    STM32单片机有哪几种常见的开发环境?

    STM32单片机是一款广泛应用于嵌入式系统开发的单片机,针对其开发,有以下几种常见的方式:STM32单片机有哪几种常见的开发环境?KeilM
    的头像 发表于 05-18 08:04 3089次阅读
    <b class='flag-5'>STM32</b><b class='flag-5'>单片机</b>有哪几种常见的开发环境?

    STM32单片机最小化系统设计原理

    STM32最小系统,就是能让STM32单片机能够正常工作所必须拥有的组成部分的集合,也是STM32单片机正常运行的必要环境。
    发表于 04-23 14:54 2832次阅读
    <b class='flag-5'>STM32</b><b class='flag-5'>单片机</b>最小化系统设计原理

    单片机与串口屏连接步骤指南

    单片机与串口屏的连接主要涉及硬件连接和软件设置两个方面。以下是一个基本的步骤指南
    的头像 发表于 03-13 10:16 3350次阅读
    <b class='flag-5'>单片机</b>与串口屏连接<b class='flag-5'>步骤</b>指南

    用DAVE生成的工程怎么移植MDK

    请问用DAVE生成的工程怎么移植MDK
    发表于 02-26 08:44

    STM32单片机的特点和功能是什么

    STM32单片机是一款基于ARM Cortex-M内核的32位闪存微控制器,由STMicroelectronics公司(意法半导体)生产。STM32单片机具有高性能、低功耗、丰富的外设
    的头像 发表于 01-03 15:33 1.2w次阅读

    stc51单片机怎么烧录

    步骤 常见问题与解决方法 STC51单片机是一种常见的8位单片机,广泛应用于各种嵌入式系统。它具有高性能、低成本、易于学习和使用等优点。STC51单片机使用汇编
    的头像 发表于 01-02 17:41 3440次阅读