上位机图像处理和嵌入式模块部署(树莓派4b使用lua)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

lua是一个脚本语言,比c语言开发容易,也没有python那么重,整体使用还是非常方便的。一般当成胶水语言进行开发,非常方便。不过考虑到还有很多的同学没有接触过lua,今天主要讨论下在树莓派4b上怎么使用lua。

1、下载lua

直接从官方下载最新版本的lua语言即可,

复制代码
https://www.lua.org/download.html

2、编译lua

因为树莓配4b本身包含了gcc和g++编译器,所以可以直接从开发板上面进行编译开发。首先解压软件,

复制代码
tar xzvf lua-5.4.6.tar.gz

解压完了,接着就是直接进行编译,

复制代码
cd lua-5.4.6/
make linux

编译结束之后,不出意外的话,我们就可以看到两个生成的可执行文件,一个静态库文件。其中可执行文件是lua,编译文件是luac,静态库文件是liblua.a。

3、最简单的打印hello.lua

学习一门新的语言,可以从hello world开始。最简单的脚本就是这样的一个hello.lua文件,

复制代码
print("Hello World!")

执行方法有两种,第一种就是用./src/luac hello.lua,生成luac.out,然后用lua来执行luac.out文件。还有一种就是直接用./src/lua hello.lua来执行。因为我们刚开始学习,所以建议采用后面一种方法。

4、循环文件loop.lua

一般学习语言,无非就是变量、判断、循环和函数。这里,我们来看看循环应该怎么处理的,

复制代码
while( true )
do
   print("循环将永远执行下去")
end

5、函数文件function.lua

看过了循环,接着继续看函数文件function.lua的实现过程,

复制代码
--[[ 函数返回两个值的最大值 --]]
function max(num1, num2)

   if (num1 > num2) then
      result = num1;
   else
      result = num2;
   end

   return result;
end
-- 调用函数
print("两值比较最大值为 ",max(10,4))
print("两值比较最大值为 ",max(5,6))

函数本身不复杂,注意这里的--代表注释,稍微留心一下即可。

6、类的定义文件class.lua

本身lua是一个面向对象的语言,我们可以简单看下,在lua下面class.lua是如何进行处理和定义的。

复制代码
-- 元类
Shape = {area = 0}

-- 基础类方法 new
function Shape:new (o,side)
  o = o or {}
  setmetatable(o, self)
  self.__index = self
  side = side or 0
  self.area = side*side;
  return o
end

-- 基础类方法 printArea
function Shape:printArea ()
  print("面积为 ",self.area)
end

-- 创建对象
myshape = Shape:new(nil,10)

myshape:printArea()

7、更重要的学习

很多时候,我们使用lua作为胶水语言来进行业务处理。主要还是看重了它可以快速开发的特点。这种情况下,底层开发语言一般用c/c++语言,上层业务用lua语言。所以这个时候,大家还要学习下c语言和lua之间相互调用的方法和过程,这一点比较重要。

相关推荐
爱喝水的鱼丶21 分钟前
SAP-ABAP:ALV通用封装实践——搭建可复用的ALV开发工具类,减少80%重复代码
开发语言·性能优化·sap·abap·erp·alv
脱胎换骨-军哥43 分钟前
C++/Rust无缝互操作:混合系统新常态
开发语言·c++·rust
songroom1 小时前
Kimi K3:Rust封装XTP接口详细教程实践
开发语言·后端·rust
kebeiovo1 小时前
游戏服务端开发:Actor模型详解(Go语言)
开发语言·后端·golang
迷途呀2 小时前
Python:函数中的参数类型
开发语言·笔记·python·langchain·nlp
Herbert_hwt2 小时前
建立Java程序开发
java·开发语言
愚公移码2 小时前
蓝凌EKP18产品:流程虚拟机(PVM)
java·开发语言·前端
十月的皮皮2 小时前
stm20260720-从新手 C 到量产 STM32 工程:程序设计推导指南
c语言·开发语言·stm32·stm32cubemx·hal库
Echo缘3 小时前
嵌入式系统C语言资源分类与内存分布分析
c语言·开发语言
JaneConan4 小时前
鸿蒙 ArkUI 深水区:@Watch 和 @Observed,状态变了「自动跑」+ 嵌套对象「深层重绘」
开发语言·后端·ui·harmonyos