Air105#

通常你不需要这份文档,这是用于自行扩展固件的高级文档。

我们提供的固件包就包含编译好的固件(soc后缀)

如果你只是想将已有的库添加到固件中,可以使用我们提供的在线云编译生成自定义固件。

如果你是在找刷机/编译lua脚本之类的应用型文档,那么这份文档不是你需要查看的内容。

视频教程链接: B站每日喝粥

准备环境#

Windows平台用户#

装好7-zip,建议保持默认文件夹!!!

装好xmake,安装后重启电脑!!!

Linux平台用户#

装好7-zip与xmake!!!,各个平台装法不一样(apt/yum/pacman),自己搜吧

准备项目#

推荐用git, 如果下载zip一定一定要解压后改文件夹名称!!!

将LuatOS主仓库clone到适当位置, 如果不熟悉git, 强烈建立入门一下

git clone https://gitee.com/openLuat/LuatOS.git

再将Air105项目clone到与LuatOS主仓库的同级目录

git clone https://gitee.com/openLuat/luatos-soc-air105.git

必须按以下目录结构进行摆放, 以 D:\gitee 为例

LuatOS 主库代码 D:\gitee\LuatOS
Air101 适配代码 D:\gitee\luatos-soc-air105

检查点, 路径正确的情况下, 以下文件路径必存在, 找不到就肯定是命名问题, 手动添加是徒劳的 

D:\gitee\LuatOS\lua\src\lgc.c
D:\gitee\luatos-soc-air105\application\include\luat_conf_bsp.h

任何附加字符都不可用, 例如 LuatOS-master 就是错误的命名

定制固件里的库#

打开app/port/luat_conf_bsp.h,按需注释或取消注释。注意,如果固件放不下,会编译失败。

编译#

进入105仓库目录,执行xmake ,开始编译即可,生成的文件会在build/out/目录, 以.soc为后缀

> cd luatos-soc-air105
> xmake
[  0%]: compiling.release Third_Party\cm_backtrace\cm_backtrace.c
[  0%]: compiling.release bsp\common\src\bsp_common.c  
[  0%]: compiling.release bsp\common\src\core_service.c
[  0%]: compiling.release bsp\common\src\pid.c
[  0%]: compiling.release bsp\usb\src\core_usb_class_g_serial.c
[  0%]: compiling.release bsp\usb\src\core_usb_class_hid.c     
[  0%]: compiling.release bsp\usb\src\core_usb_class_msc_scsi.c
[  0%]: compiling.release bsp\usb\src\core_usb_stack.c 
[  0%]: compiling.release bsp\air105\platform\bl_main.c
...
[ 95%]: compiling.release ..\LuatOS\luat\packages\zlib\luat_lib_zlib.c
[ 95%]: compiling.release ..\LuatOS\luat\packages\zlib\trees.c
[ 96%]: compiling.release ..\LuatOS\luat\packages\zlib\uncompr.c
[ 96%]: compiling.release ..\LuatOS\luat\packages\zlib\zutil.c
[ 96%]: compiling.release ..\LuatOS\components\camera\luat_lib_camera.c
[ 96%]: compiling.release bsp\air105\platform\startup_full.s
[ 99%]: linking.release bootloader.elf
[ 99%]: archiving.release liblvgl.a
   text    data     bss     dec     hex filename
  14992     472  173772  189236   2e334 build/out/bootloader.elf
[ 99%]: linking.release app.elf
   text    data     bss     dec     hex filename
 872724       8  315460 1188192  122160 build/out/app.elf
[100%]: build ok

然后使用LuaTools或者LuatIDE刷机即可

编译过程展示(Linux下)

asciicast

比较方便的方法-xmake插件#

上述编译方式跑通了可以正常编译之后再看这里!!!

vscode里安装xmake插件

vscode_xmake

vscode中打开luatos-soc-air105直接点击下方build即可编译

xmake_build