2023-12-28 10:04:40 +08:00
2023-12-24 20:45:06 +08:00
2023-12-21 15:03:40 +08:00
2024-06-25 13:00:53 +08:00
2023-12-19 17:57:43 +08:00
2023-12-22 15:17:07 +08:00
2023-12-20 14:21:08 +08:00
2023-12-22 15:17:07 +08:00
2023-12-19 17:57:43 +08:00
2023-12-22 15:17:07 +08:00
2023-12-22 15:17:07 +08:00
2023-12-23 15:57:29 +08:00
2023-12-28 09:36:39 +08:00
2023-12-19 17:57:43 +08:00
2024-01-03 11:39:10 +08:00

简介

这是一个开发Air780E的Demo.

测试硬件采用合宙EVB-780E-H开发板。

已知问题

  • C++静态类的构造函数不可用(可由应用代码支持),可编译但需要谨慎使用(若必须使用,请充分测试)。
  • C++全局类的构造函数不可用(可由应用代码支持),可编译但需要谨慎使用(若必须使用,请充分测试)。
  • C++异常可能出现问题(不确定),可编译但需要谨慎使用(若必须使用,请充分测试)。
  • 当无SIM卡时可能导致main线程(最低优先级线程)得不到执行无法进行看门狗喂狗。如需要作为主模块可适当调整看门狗代码或者调高main线程优先级。本人仅将Air780E作为定制化通信模块(非主模块,核心模块采用其它芯片,允许通信模块自行重启)检测不到SIM卡属于异常情况需要重启。

Kconfig

kconfig工具采用python软件包kconfiglib,通过pyinstaller打包而来,主要打包以下工具:

  • genconfg
  • guiconfig

注意若使用wine启动exe工具推荐进行如下设置

  • 使用winecfg将操作系统设为windows 10且将prosys设为停用若对其它应用有影响可单独对本工程的exe设置

winecfg_version

winecfg_propsys

除了使用winecfg进行设置,也可采用注册表导入的方式,即在当前目录执行wine reg import Kconfig_wine.reg

源代码下载

由于本源代码包含第三方源代码,故直接下载可能有部分源代码缺失,需要通过以下方法解决:

  • 在进行git clone 使用--recurse-submodules参数。

  • 若已通过git clone下载,则在源代码目录中执行以下命令下载子模块:

     git submodule update --init --recursive
    

源代码更新

若使用git pull更新已下载的源代码,请在更新后使用git submodule update --init --recursive更新子模块。

资源文件

类似于桌面程序的资源文件。源代码实现的目录为 rc

在固件编写中很多时候需要大量的固定数据直接手工嵌入到C文件里比较麻烦。

通过读取文件转换到对应C文件可大大节省时间可添加常用的文件如各种证书或者不适宜放在可读写的文件系统中的文件(如需要在格式化中保留或者初始参数)。转换程序源代码为rc/fsgen.cpp

使用步骤如下:

  • 将待添加的文件放入 rc/fs目录下。

  • 使用文件名调用以下函数(需包含相应头文件RC.h):

    //通过名称获取资源大小
    size_t RCGetSize(const char * name);
    
    //通过名称获取资源指针
    const unsigned char * RCGetHandle(const char * name);
    

硬件

状态灯

状态灯占用GPIO27在开发板上为NET_STATUS灯。

测试截图

MQTT

简易测试

MQTT_Hello_MQTTX

MQTT_Hello_SerialPort_1

MQTT_Hello_SerialPort_2

MQTT_Hello_Luatools

编译

  • 操作系统: Windows 10及更新版本

注意:非Windows下可采用wine编译。

编译准备

编译本工程的前提是能够正常编译原合宙官方SDK详细说明见luatos-soc-2022

  • 本工程采用xmake管理编译树因此需要安装好xmake其官方网址为https://xmake.io
  • 编译过程中可能需要下载文件,因此需要在整个编译过程中保持网络畅通。

Ubuntu

对于Ubuntu可采用以下命令安装wine:

sudo apt-get install wine winbind

当wine安装好后,也需要安装xmakeWindows版使用wine 安装程序名称启动安装程序并安装。

脚本说明

  • build.bat:构建工程文件并编译。
  • clean.bat:清理构建文件
  • Kconfig.bat:调整Kconfig设置。使用此工具可修改Kconfig设置,也可手动修改.config文件(不存在则创建)修改Kconfig设置。

对于非Windows启动脚本需要使用wine cmd /c 脚本路径启动脚本。

代码编辑

当成功执行一次构建操作后,sdk目录将产生CMakeLists.txt,利用CMake可生成某些IDE的工程文件可用于代码编辑(不一定可编译)。

本人常用CodeBlocks作为IDE产生CodeBlocks的工程文件步骤如下:

  • 安装好CMake与Ninja
  • 创建build目录并进入build目录
  • 执行 cmake -G "CodeBlocks - Ninja" ../sdk生成工程文件。
  • 使用CodeBlocks打开生成的cbp工程文件进行代码编辑。

固件烧录

正常编译完成后,最终的固件在 sdk\out目录下的子目录中,后缀名为binpkg。

此时可直接使用合宙官方的Luatools的固件下载烧录:

  • USB BOOT烧录。使用USB连接PC按下BOOT按键后进行一次复位,然后直接下载。

调试

  • 采用Luatools的4G模块USB打印,采用USB调试。
  • 串口调试。串口0(调试串口) 115200 8N1。注意:由于占用了调试串口,不能使用原厂工具抓log。
Description
No description provided
Readme MIT 10 MiB
Languages
C++ 82.7%
C 15.3%
Lua 1%
Batchfile 0.7%
CMake 0.3%