在这一步里, 需要将LuatOS指定目录下的文件, 一起加入厂商SDK的编译环境中
目录有:
$LUATOS
- lua # Lua虚拟机
- luat/module # lua库实现
- luat/packages/vsprintf # 平台无关的printf实现
- luat/packages/lua-cjson # 平台无关的json库
- luat/packages/heap # 平台无关的lua heap实现
以上目录内的.h文件需要加入include配置, .c文件加入到编译路径.
请务必确保编译能通过,然后再做下一步
核心功能是 msgbus, timer, uart, fs,及几个基础方法.
msgbus
和timer
, 如果是freertos
, 使用现成的 luat/freertos 目录下的代码, 否则需要实现 luat_msgbus.h
和 luat_timer.h
uart
, 对应 luat_uart.h
需要逐一实现fs
, 文件系统, 如果支持posix风格的,则自带实现,否则需要实现 luat_fs.h
luat_base.h
完成编译环境的集成后, 在用户程序的入口处, 添加如下代码
#include "bget.h"
bpool(ptr, size); // lua vm需要一块内存用于内部分配, 给出首地址及大小.
luat_main(); // luat_main是LuatOS的主入口, 该方法通常不会返回.
即可验证LuatOS的启动过程.
建议的实现步骤
luat_openlibs
, 实现lua库的加载. 初始阶段可以只加载lua本身自带的库.main.luac
, 这时候又下一城了.外设通常指 gpio
/i2c
/spi
, 实现对应的.h文件就可以了, 然后在luat_openlibs
加载
这个需要实现netclient.h
, 会比较复杂, 请参考rtt的实现, 如有疑问请报issue或加QQ群沟通.
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.