同步操作将从 合宙Luat/LuatOS-SoC-2022 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
CSDK for ABCDEGF, 适用于所有基于ABCDEGF的合宙模组, 包括衍生型号及海外型号:
安装xmake, 选取加入PATH, 建议安装到C:\Program Files下,其他目录可能会出问题; xmake下载地址:xmake官网 windows下可以直接访问:合宙云盘 ,下载系统对应的xmake-2.7.3-win32.exe或者xmake-2.7.3-win64.exe即可. 比2.7.3更高的版本也是可以的.
注意:环境变量需重启电脑生效
如果编译example的话在本代码库的根目录执行build.bat example
进行编译
生成的binpkg位于out
目录, 日志数据库文件位于PLAT
目录
建议将 project/example
拷贝一份,作为验证项目
本CSDK中没有main函数,需要通过宏注册入口函数
加入头文件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
一般用于初始化任务,用户代码基本上都是跑在任务里,原则上必须有
假设项目路径是 D:\github\ABCDEGF-webabc
, 目录结构如下
D:\github
- ABCDEGF-webabc
- code
- xmake.lua
- src
app_main.c
task_mqtt.c
- inc
app_main.h
RTE_Device.h
- doc
- README.md
编译方式:
set PROJECT_DIR=D:\github\ABCDEGF-webabc\code
build webabc
注意: code\xmake.lua里面的TARGET_NAME,对应命令行的项目名, webabc
恢复到默认项目查找逻辑, 之后就能恢复到 project/xxx 查找xmake.lua
set PROJECT_DIR=
build luatos
在有网的环境下, xmake会自行下载gcc工具链. 但如果无法联网, 或者网络受限的情况, 通常会有这种提示:
error: fatal: not a git repository
或者git/http连接失败的提示. 故这里提供离线gcc工具链下载和编译的方法
D盘根目录
, 压缩包内自带一层目录gcc-arm-none-eabi-10.3-2021.10
D:\gcc-arm-none-eabi-10.3-2021.10
, 检查 D:\gcc-arm-none-eabi-10.3-2021.10\bin\arm-none-eabi-g++.exe
是否存在, 如果不存在, 那肯定是多一层目录. 务必检查!!!本代码库
的 build.bat
, 修改内容如下原本的内容:
rem set GCC_PATH=E:\gcc_mcu
修改成set开头的语句,注意是去掉rem并修改值.
set GCC_PATH=D:\gcc-arm-none-eabi-10.3-2021.10
重新打开
一个命令行cmd
, 进入本代码库
,执行 build.bat
即可正常编译.
build.bat
安装Xmake可以使用官方提供的一键脚本
curl -fsSL https://xmake.io/shget.text | bash #使用curl进行安装
wget https://xmake.io/shget.text -O - | bash #使用wget进行安装
当前仅测试了 Ubuntu 16.04 和 Ubuntu 20.04 amd64版本
需要安装额外的32位支持, 否则执行fcelf时报文件不存. 后续可能会有64bit fcelf提供
dpkg --add-architecture i386 && apt update
apt-get install -y lib32z1 binutils:i386 libc6:i386 libgcc1:i386 libstdc++5:i386 libstdc++6:i386 p7zip-full
编译 wine 环境的 docker
./build-wine-docker.sh
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。