注意:使用前请详细阅读readme的每一句话,不要跳过!!!
重要!!!特别注意!!!!!
重要!!!特别注意!!!!!
重要!!!特别注意!!!!!
由于芯片原厂对编译改动较大,新补丁会导致部分芯片无法ota,所以后续底层patch与bsp相关底层新功能将在luatos-soc-2024仓库进行更新维护,此仓库将仅进行修复影响产品使用的bug(如需要底层原厂patch的可能将无法解决),所以如果还未进行开发请直接使用新仓库,如果还未量产也请尽快迁移新仓库以免影响ota!!!对迁移用户我们也在新仓库提供了迁移文档(非常简单,仅需修改编译文件,几分钟就可完成迁移以便您可以顺利迁移),对此造成影响深感抱歉~
重要!!!特别注意!!!!!
重要!!!特别注意!!!!!
重要!!!特别注意!!!!!
本代码库在2023.12.27执行过重置histroy的操作,如果无法pull,请重新clone本代码库
注意:对于之前使用luatos-soc-2022仓库开发的项目代码无法直接复制到luatos-soc-2023编译使用,查看本仓库demo的xmake.lua进行修改并参考主库csdk api进行修改才可使用!!!
- 强烈推荐使用git来下载本代码库, 不会命令行操作git可以用 tortoiseGit
- 本CSDK底层是没有AT指令的,不存在"调用某某AT指令"的情况
- 由于依赖luatos主库,所以要在 luatos-soc-2023 所在同级目录 clone LuatOS 仓库,否则编译报错
- 本项目使用xmake构建,就算不熟悉lua和构建也能直接上手使用,几乎不会在构建上花费您的时间,但如需自定义的一些操作请先查看下相关api
- 请留意, 本代码库使用的GCC版本与 luatos-soc-2022 库是不一样的, 无法更换,同样也不要擅自更改编译工具链
CSDK for ABCDEGF, 适用于所有基于ABCDEGF的合宙模组, 包括衍生型号及海外型号:
- Air780EP
- Air780ET
- Air780EL
- PLAT 打包好的sdk, 含协议栈, 部分源码, 头文件, 打包工具
- project 项目文件, 每个不同的项目代表不同的demo或者turnkey方案
- xmake.lua 主编译脚本, 一般不需要修改
-
安装xmake, Windows安装时注意选取加入PATH. xmake下载地址:https://github.com/xmake-io/xmake/releases windows下载系统对应的xmake-x.x.x-win32.exe或者xmake-x.x.x-win64.exe安装即可. 建议使用最新版.
注意:环境变量需重启电脑生效
注意:如果网络无法下载github等地址,采用下面的本地地址下载,后续更新xmake也会同步更新下方地址!!!
本地下载地址: https://pan.air32.cn/s/DJTr?path=%2F%E5%B8%B8%E7%94%A8%E5%B7%A5%E5%85%B7
linux和macos安装请自行参考,但并不建议,因为macos无法打包,并且Luatools只支持windows 安装教程: https://xmake.io/#/guide/installation
-
如果编译example的话在本代码库的根目录执行
build.bat example
进行编译,注意:默认编译ec718p,如需编译ec718s或 ec716s需要自行修改build.bat中的CHIP_TARGET变量 其他设置参考build.bat
中的注释说明不建议使用linux编译,Luatools不支持linux,下载调试依然需要windows !!!
linux下编译参考 windows的build.bat脚本, 先使用环境变量
export PROJECT_NAME=example
设置项目,其他的使用xmake f --chip_target=xxx --lspd_mode=xxx --denoise_force=xxx
进行统一配置,最后执行xmake
编译即可更多配置/编译自行参考 https://xmake.io
-
生成的binpkg位于
out
目录, 日志数据库文件位于PLAT
目录
-
加入头文件common_api.h
-
类似于
void main(void)
,但是可以任意名字,不能有入口参数和返回参数,同时允许多个入口 -
通过INIT_HW_EXPORT INIT_DRV_EXPORT INIT_TASK_EXPORT这3个宏修饰后,系统初始化的时候会调用function,不同的宏涉及到调用顺序不同
-
大优先级上
INIT_HW_EXPORT
>INIT_DRV_EXPORT
>INIT_TASK_EXPORT
-
这3个宏有统一用法
INIT_HW_EXPORT(function, level)
,其中function就是入口函数,level是小优先级,填"0","1","2"...(引号要写的),引号里数字越小,优先级越高。 -
INIT_HW_EXPORT
一般用于硬件初始化,GPIO之类的,可以没有 -
INIT_DRV_EXPORT
一般用于外设驱动初始化,初始化外部器件之类的,打开电源,提供时钟之类的,可以没有 -
INIT_TASK_EXPORT
一般用于初始化任务,用户代码基本上都是跑在任务里,原则上必须有
- project新建目录,目录名称和项目名称一致,目录下新建xmake.lua,内容仿照着example写,核心是TARGET_NAME必须和项目名称一致
- 代码路径当然不是限制的,在SDK的任何目录,甚至电脑上的其他地方,前提是你会改project里xmake.lua内的源码路径
- 根目录执行build.bat 你的项目名称
注意:这需要构建单独兼容,不会及时更新所以可能会出现一些问题(移芯构建会用到一些特殊配置操作,一些头文件要构建时候特殊配置),所以任何时候都不推荐使用此方法,可能会有问题却无法第一时间反映出来
假设项目路径是 F:\example_test
, 目录结构如luatos-soc-2023\project\example
一样,测试可将luatos-soc-2023\project\example
复制到F:并更名为example_test
编译方式:
将build.bat
中的PROJECT_DIR
解注释并修改为你的外部项目路径
rem you can set your outside project
set PROJECT_DIR=F:\example_test
随后执行build example_test即可
恢复到默认项目查找逻辑, 将上面PROJECT_DIR
恢复注释即可
rem you can set your outside project
rem set PROJECT_DIR=F:\example_test