elua解析器开源文档第三章:Lua解析器代码编译

目录

点击这里查看所有博文

第三章、Lua解析器代码编译

  第二章我们讲了下lua内核和模块注册示例,那么第三章那我们就把它拿出来跑跑。

  有的同学会讲,我这第二章也没怎么看懂啊,第三章还能继续学吗,要是不行的话那我就溜了,删库跑路走起。

在这里插入图片描述

  少年不要怕,我以人格担保。这第二章别说你没看懂,就算你没看。第三章你也能跑起来,你也能学会。So ,Believe in Yourself !!!

在这里插入图片描述

3.1、CSDK分区相关知识

  接下来的内容就和设备密切相关,在进入代码编译之前,我们需要知道一些基本的分区信息。我们这里以rda8910平台为例。

3.1.1、默认CSDK分区

rda8910(8M)app预留空间文件系统空间
起始地址0x601600000x60340000
长度0x1E00000x160000
结束地址0x603400000x604a0000

  正常的csdk底层存在两块用户可操作的空间,第一是app的预留空间,其大小为1.875MB。理论上用户的app编译出来的结果最大可为1.875MB。
0 x 1 E 0000 = 1966080 = x ∗ 1024 ∗ 1024 0x1E0000=1966080=x*1024*1024 0x1E0000=1966080=x10241024

x = 1.875 ( M B ) x=1.875(MB) x=1.875(MB)

  但是实际上后面需要预留一点,留少了程序就运行不了,具体要预留多少我也没测试,所以…嘿嘿嘿,你懂的。

  第二就是文件系统的预留空间,其大小为1.375MB。这个空间好像是有点小了哈,也别指望存储什么大文件。就这空间你连一首mp3都存不下。但是用来存些什么其他的小文本文件还是不错的。
0 x 160000 = 1441792 = x ∗ 1024 ∗ 1024 0x160000=1441792=x*1024*1024 0x160000=1441792=x10241024

x = 1.375 ( M B ) x=1.375(MB) x=1.375(MB)

3.1.2、CSDK—elua项目分区

rda8910(8M)app预留空间elua脚本区域文件系统空间
起始地址0x601600000x602D80000x60340000
长度0x1780000x680000x160000
结束地址0x602D80000x603400000x604a0000

  是不是感觉又有点不太一样了,app可用空间又小了点。也就是说你能写的东西更少了。
0 x 178000 = 1540096 = x ∗ 1024 ∗ 1024 0x178000=1540096=x*1024*1024 0x178000=1540096=x10241024

x = 1.46875 ( M B ) x=1.46875(MB) x=1.46875(MB)

  我们又把app的空间裁剪出来一部分存储lua脚本。这个空间只有416KB。
0 x 68000 = 425984 = x ∗ 1024 0x68000=425984=x*1024 0x68000=425984=x1024
x = 416 ( K B ) x=416(KB) x=416(KB)

  这样的话就发现app空间好像有点不太够,lua脚本空间好像也有点不太够。这也没办法,空间就只有这么大,少就少点吧,省着点用。

3.2、自定义elua脚本空间

  有的同学讲这不行哎,我贼能写,这400KB脚本空间太小了不够我用的,赶快给我改大点。

在这里插入图片描述

  emmm,改好了,各位老板们请查收。打开iot_sdk_4g_8910/config.cmake文件看一下。有没有看到你想要的东西。


#/*+\NEW\chenzhimin\2020.07.21\ elua工程专用*/
if(CONFIG_BUILD_LUA)
    set(CONFIG_LUA_FLASH_OFFSET 0x2D8000)
    set(CONFIG_LUA_FLASH_SIZE 0x68000)
else()
    set(CONFIG_BUILD_LUA OFF)
endif(CONFIG_BUILD_LUA)

message("BUILD_LUA:" ${CONFIG_BUILD_LUA})
#/*-\NEW\chenzhimin\2020.07.21\ elua工程专用*/


  CONFIG_LUA_FLASH_OFFSET参数就是设置lua脚本的起始地址的,默认是起始地址就是0x2D8000。

在这里插入图片描述

  别打了,别打了…0x602D8000是物理地址,实际上每个地址前面都带有60,这个底层已经处理好了,我们只需要填写逻辑地址即可。

  CONFIG_LUA_FLASH_SIZE参数设置的是lua脚本空间大小,你可以修改这两个值。但是起始地址加上空间大小,也就说lua脚本结束的地址却不能超过0x340000。一定要小心,不能计算错了。虽然我们将修改的接口开放出来了,但是我个人强烈建议不要随便修改!!!!

3.2、开始编译

  cmd窗口进入iot_sdk_4g_8910/project目录,然后执行app_elua.bat。进入编译状态,这需要一点时间。

在这里插入图片描述

  。。。。。。

  好了。编译完成

在这里插入图片描述

3.3、下载固件及脚本

  接下来就和大家使用LUAT版本开发一样了,打开luatools工具。尽量使用高于2.0.68的版本,低版本会出现CSDK日志信息打印不正确的问题。

在这里插入图片描述

  下载固件和脚本。注意啦,这里选自己编译的固件!!!!在这个地方~\iot_sdk_4g_8910\hex\Air720U_CSDK_app_elua.pac,脚本的话就和luat开发脚本一样,通用的没有区别。

在这里插入图片描述

  下载结束就是这个样子了。

在这里插入图片描述

在这里插入图片描述

  接下来可以去和其他人吹牛了,我也能编译luat源码了,想让它干什么就让它干什么。自己的模块自己做主!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

遇雪长安

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值