# CAT1.bis_OpenCPU
**Repository Path**: lierda-iot_0/CAT1.bis_OpenCPU
## Basic Information
- **Project Name**: CAT1.bis_OpenCPU
- **Description**: 利尔达OpenCPU SDK,cat1bis通讯,支持NT26F6D0,NT26K2全系列模组
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 3
- **Forks**: 1
- **Created**: 2026-05-19
- **Last Updated**: 2026-06-27
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# OpenCPU README_zh
**[English](README.md) | 中文**
# 1 简介
OPENSDK 是 Lierda 面向 Cat.1 用户开发的一个开放型 SDK 开发系统。内核基于 FreeRTOS 开发的底包分离模式结构框架,具有完整的任务管理、内存管理、异常管理、系统时钟和中断管理。除了基础内核功能外 OPENSDK 针对 Cat.1 模组提供了丰富的外设管理、休眠唤醒、安全启动、远程升级等丰富功能,为开发者提供 "一站式" 完整软件平台,可有效降低开发门槛、缩短开发周期。
# 2 OPENSDK 框架
OPENSDK 在设计方面可以划分为三层:底包层、系统层和用户层。
```text
+----------------------------------------------------------------+
| [用户层] app demo ai ... |
+----------------------------------------------------------------+
| stdlibC API | EC API | LIOT API | ThreadPart API |
+----------------------------------------------------------------+
| [系统层] |
| +-------------------------+ +----------------------------+ |
| | TTS | OTA | Driver | | ThirdParty | |
| +------+------+-----------+ | lwip CJSON | |
| | SECBOOT | PRECFG | | Freertos websocket | |
| +-------------+-----------+ | lvgl mbedtls | |
| | LIOTAPI .h | ECAPI .h | | ... | |
| +-------------+-----------+ +-----------------------------+ |
+----------------------------------------------------------------+
| [底包层] |
| +--------+------------+------+------+--------------+ |
| | PortLib| bootloader | AP | CP | ELF Parser | |
| +--------+------------+------+------+--------------+ |
| | LogLib | MemoryMap | |
| +---------------------+----------------------------+ |
| |
+----------------------------------------------------------------+
| [模组] NT26FCNB60WNA NT26K2B1 NT26F6D0 ... |
+----------------------------------------------------------------+
```
1. **底包层**:底包层对于用户不可见,由 Lierda 维护,针对不同的模组型号将相关库文件打包后放在 `components/basePkg/` 目录下。底包提供了代码运行最基础的构建环境,将 SDK 所需要的 API 以及库文件进行整合,SDK 基于底包开放出来的 API 进行开发。
2. **系统层**:运行 SDK 的核心代码,系统上电后系统先完成底包与内核初始化,再加载系统层组件,从 `components/kernel/core/main.c:main()` 开始加载运行,系统层采用模块化设计包含 kernel、配置、驱动、开源第三方库、TTS、OTA 升级等,除 Kernel、配置外可以灵活裁剪。
3. **用户层**:提供给开发者创作的代码的区域,由系统层 `Main()` 函数创建 10K 大小的独立线程调用代码入口 `void user_main(void)`,用户业务代码通常从该入口开始执行。代码主要集中在 `examples` 目录下。Lierda 为开发者预设了两个工程。`app` 工程是一个空工程,没有实现具体功能,一般用户可以基于 `app` 工程上开发自己的代码。`demo` 工程是 Lierda 为客户提供的 API 接口示例的 demo,给用户参考调用。
# 3 目录结构
```
──
├── components (组件库,核心代码都放在这里)
│ ├── basePkg (底包目录,Lierda 针对不同型号生成的底包库)
│ │ └── F6B_A、F7B_A、F6D_A、K2B_A、...
│ ├── driver (开放的底层驱动)
│ │ └── lcd、camera、...
│ ├── kernel
│ │ ├── app.ld (链接脚本)
│ │ ├── core (系统启动入口)
│ │ ├── ecapi (移芯平台相关 api 的头文件存放目录)
│ │ ├── include (一般头文件存放目录)
│ │ └── lierda_api (lierda 相关 api 的头文件存放目录)
│ ├── ota (fota 相关代码)
│ ├── precfg (预设相关配置代码实现,由 config/default.ini 和 iodriver.ini 传参)
│ ├── secboot (安全启动校验相关代码)
│ ├── thirdparty (开源第三方的源码)
│ │ └── CJSON、freertos、websockets、lwip、mbedtls 等
│ └── tts (tts 相关代码)
├── config
│ ├── default.ini (预设相关配置,如设置:默认 uartat 口、默认注网 cid、apn 等..)
│ └── iodriver.ini (uart/spi/i2s/i2c/can 驱动的 io 引脚配置预设)
├── docs (相关文档)
├── examples
│ ├── app (默认工程,无实际功能,客户代码在此添加)
│ └── demo (默认示例 demo 工程,提供相关 API 接口示例)
├── LICENSE (开源代码许可)
├── build.bat (windows 下编译入口)
├── Makefile (Makefile 编译入口,linux 下可直接编译)
├── README_EN.md (英文 README 文件)
├── README.md (中文 README 文件)
├── rules (Makefile 编译规则)
│ └── Makefile、Makefile.defs、Makefile.modem、Makefile.rules、Makefile.tools、Makefile.vars
└── tools (脚本及工具)
└── 7z、appota、fcelf、lfsutil、msys64、precfg、secboot、toolchain
```
# 4 支持的型号
模组型号根据模组屏蔽盖上的丝印得到。底包根据芯片和功能拆分不同版本。
| 底包版本 | 芯片说明 | **FLASH** | **RAM** | **文件系统** | 适配模组型号 |
| --- | --- | --- | --- | --- | --- |
| F6B_A | EC718PM B 系列 | 812 KB | 1 MB | 780 KB | NT26FCNB30WNA / NT26FCNB60WNA |
| F6D_A | EC718PM D 系列 | 812 KB | 1 MB | 780 KB | NT26F6D0(全系列) / NT26F7D0 |
| F7B_A | EC718PM B 系列 Volte | 452 KB | 1 MB | 168 KB | NT26FCNB70WNA |
| K2B_A | EC716E B 系列 | 844 KB | 512 KB | 840 KB | NT26KCNB20NNA / NT26KCNB2MNNA / NT26K2B1 |
| K2F_A | EC716E F 系列 | 844 KB | 512 KB | 840 KB | NT26KCNF20NNA |
| F6E_A | EC718PM F 系列 | 844 KB | 512 KB | 840 KB | NT26F6E0 (正在开发中) |
| F6C_A | EC718PM F 系列 | 844 KB | 512 KB | 840 KB | NT26F6C0 (正在开发中) |
# 5 外设资源
| 外设 | K2B_A | F6B/F6D/F7B |
| --- | --- | --- |
| **UART** | 3 路 | 4 路 |
| | 波特率:4.9Kbps、9.6Kbps、115.2Kbps、921.6Kbps,最高可达 3 Mbps
数据位:5~8 位
奇偶校验:无校验、奇校验、偶校验
停止位:1、2
支持流量控制
UART1 支持 LPUART | |
| **GPIO** | 21 路 | 39 路 |
| | 包含 9 路 AONGPIO
电平:默认电平 1.8V,软件可调节范围:1.65V~3.30V
配置模式:输入、输出
中断触发方式:低电平、高电平、上升沿、下降沿
内部上拉下拉:部分 IO 支持 | |
| **I2C** | 模式:支持主、从模式
速率:100 KHz~1 MHz
寻址:支持 7/10 位寻址 | |
| **SPI** | 1 路 | 2 路 |
| | 模式:支持主、从模式
速率:最高支持 25.6 MHz
数据位宽:8 位、16 位 | |
| **USP** | 1 路 | 3 路 |
| | 数量:3 路(I2S/CSPI/LSPI)
模式:支持主、从模式
支持 8~96k、16 或 24 位,8~48k,32 位
支持标准 I2S/LJ/RJ 模式、PCM 模式 A/B
I2S/PCM 支持 TXRX/TX/RX
CSPI 支持从机接收
USP0/USP1 底层有硬件加速
新增支持 QSPI 与 8080 接口(仅 718(P_M/P_VM) 系列模组支持) | |
| **USB** | 支持 USB2.0
支持 480Mbps(HS),12Mbps(FS)数据传输
支持设备模式(设备) | |
| **ADC** | 2 路 | 4 路 |
| | 模拟通道:4 路,输入范围:0V~3.4V
温度传感器:1 路,输入范围:-40°C~85°C
VBAT 电压:1 路,输入范围:2.7V~4.5V
精度:12-bit AUXADC | |
| **Timer** | 数量:支持 6 路硬件定时器 | |
| **PWM** | 数量:支持 6 路 | |
| **低功耗定时器** | 数量:支持 7 个 | |
| **WAKEUP** | 数量:支持 6 路低功耗唤醒源 | |
| **CAN** | 不支持 | 不支持 |
# 6 快速开发
下面是快速开发指导,更详细的开发参考[《新手开发指南》](https://opendocs.lierda.com/docs/CAT.1_Doc_Protal/zh_CN/general/quick_start.html)。
## 6.1 获取模组型号和确认编译的工程
- 查看模组丝印上的模组型号。
- 工程名在 `examples/` 目录下,目录名对应工程名,如:`examples/demo` -> `demo` 工程。
## 6.2 编译
SDK 支持 Windows 和 Linux 环境开发。
Windows下可以使用 lierda_upgrade_tool 工具编译也可以使用 Makefile 编译,客户可以根据实际情况选择编译方式,具体使用方法参考:[《Lierda 蜂窝固件烧录工具使用指导》](https://opendocs.lierda.com/docs/CAT.1_Doc_Protal/zh_CN/tools/flash/flash-tool.html)
以下是主要介绍 SDK 根目录下使用命令行编译:
**6.2.1 Linux 编译**
Linux 建议系统 Ubuntu 20.04 及以上,需要安装 Make、Python3 和 32 位运行环境。
```bash
sudo apt update
sudo apt install -y make
sudo apt install -y lib32z1 lib32stdc++6
sudo apt install -y python3.10 python3.10-dev python3.10-distutils
```
```bash
# 进入 SDK 目录
cd CAT1.bis_OpenCPU
# 增量编译,未改动的文件不参与编译
make
# 全清编译,清除例程后重新编译
make all
# 带参数的编译:全清编译 + 指定工程使用 example 下的 demo 工程 + 底包使用 F6D_A
make all PROJECT=demo MODEM=NT26F6D0 MODEMPKG=F6D_A
```
**6.2.2 Windows 编译**
```bash
# 进入 SDK 目录
cd CAT1.bis_OpenCPU
# 增量编译,未改动的文件不参与编译
./build.bat
# 全清编译,清除例程后重新编译
./build.bat all
# 带参数的编译:全清编译 + 指定工程使用 example 下的 demo 工程 + 底包使用 F6D_A
./build.bat all PROJECT=demo MODEM=NT26F6D0 MODEMPKG=F6D_A
```
## 6.3 生成文件
编译完成后生成的文件在根目录的 **gccout/工程名** 目录下,以 demo 工程 + 模组 NT26F6D0 为例,在 **gccout/demo/** 目录下:
- `demo_NT26F6D0_01.binpkg`:底包 + 应用层的合包。
- `demo_NT26F6D0.bin`:仅包含应用层的包。
- `F6D_A_base.binpkg`:仅包含底包不包含应用的合包。
## 6.4 烧录
烧录工具我们使用 lierda_upgrade_tool 工具,工具使用文档可以参考:
[《Lierda 蜂窝固件烧录工具使用指导》](https://opendocs.lierda.com/docs/CAT.1_Doc_Protal/zh_CN/tools/flash/flash-tool.html)
## 6.5 查看日志
打开任意串口工具,波特率选择 115200,打开串口后,即可查看 APP 的 log。
更多日志详情参考:[《Windows Log 抓取指南》](https://opendocs.lierda.com/docs/CAT.1_Doc_Protal/zh_CN/tools/log/log-tool.html)
# 7 文档
[通用指南](https://opendocs.lierda.com/docs/CAT.1_Doc_Protal/zh_CN/general/index.html) | [硬件资料](https://opendocs.lierda.com/docs/CAT.1_Doc_Protal/zh_CN/hardware/index.html) | [软件开发](https://opendocs.lierda.com/docs/CAT.1_Doc_Protal/zh_CN/software/index.html) | [工具](https://opendocs.lierda.com/docs/CAT.1_Doc_Protal/zh_CN/tools/index.html)
# 8 更多开发示例
[《基于L-CT4IT00-YP00W-01_V04硬件》](https://opendocs.lierda.com/docs/CAT.1_Doc_Protal/zh_CN/examples/L-CT4IT00-YP00W-01_V04/L-CT4IT00-YP00W-01_V04_quick_start.html)
[ 《Lierda 小达 应用指导》](https://opendocs.lierda.com/docs/CAT.1_Doc_Protal/zh_CN/examples/XiaoDa/XiaoDa%20Application%20Guide_Rev0.1.html)
# 9 工具
- [《USB驱动安装指导》](https://opendocs.lierda.com/docs/CAT.1_Doc_Protal/zh_CN/tools/usb/USB_Driver_Installation_Guide.html)
# 10 许可协议
71x OPENSDK 遵循 Apache License 2.0 开源许可协议,可以免费在商业产品中使用,并且不需要公开私有代码,没有潜在商业风险。
```c
/*
* Copyright (c) Lierda Science & Technology Group Co., Ltd.
*
* SPDX-License-Identifier: Apache-2.0
*/
```