CSDK for ABCDEGF
使用前须知
- 强烈推荐使用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, 选取加入PATH; xmake下载地址:https://xmake.io/#/guide/installation windows下可以直接访问:https://github.com/xmake-io/xmake/releases ,下载系统对应的xmake-x.x.x-win32.exe或者xmake-x.x.x-win64.exe即可. 建议使用最新版.
注意:环境变量需重启电脑生效
本地下载地址: https://pan.air32.cn/s/DJTr?path=%2F%E5%B8%B8%E7%94%A8%E5%B7%A5%E5%85%B7
-
如果编译example的话在本代码库的根目录执行
build.bat example
进行编译,注意:默认编译ec718p,如需编译ec718s或 ec716s需要自行修改build.bat中的CHIP_TARGET变量 -
生成的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 你的项目名称
在SDK外存放项目文件的编译方法
假设项目路径是 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即可
恢复到默认项目查找逻辑, 将上面PROJECT_DIR
恢复注释即可
rem you can set your outside project
rem set PROJECT_DIR=F:\example_test