上周重新开始4G Cat.1模组openCPU开发,初步熟悉EC718S SDK,对PLAT熟悉和了解。
## PLAT目录代码结构分析
基于对代码的详细检查,这是一个 EC718 CAT1芯片的SDK平台目录 ,具备完整的嵌入式开发环境。以下是详细的结构分析:
### 1. 总体架构
PLAT目录是一个典型的 嵌入式系统SDK ,采用 分层模块化设计 ,支持多种编译工具链(GCC和ARMCC)。
### 2. 核心目录结构 构建与配置层
– 根目录文件 :
– Makefile – 主构建文件,定义gccall、clean-gccall等构建目标
– 多个批处理文件: GccBuild_ec716e.bat 等,支持不同芯片型号的编译
– SdkRelease.bat – SDK发布脚本
– cmd.lnk – 链接配置文件
“`硬件抽象层(driver)
driver/
├── board/ec7xx_0h00/ # 板级支持包
├── chip/ec7xx/ # 芯片级驱动
└── hal/ # 硬件抽象层
├── common/ # 通用HAL
└── ec7xx/ # EC7xx专用HAL
“` 中间件层(middleware)
这是系统的核心部分,包含多个子模块:
自主开发中间件(developed) :
– at/ – AT命令处理系统
– atcust/ – 自定义AT命令
– atdecoder/ – AT命令解析器
– atentity/ – AT实体处理
– atps/ – PS相关AT命令
– atref/ – AT命令参考实现
– atreply/ – AT响应处理
– tcpipmgr/ – TCP/IP协议栈管理
– nvram/ – 非易失性存储管理
– fota/ – 固件空中升级(FOTA)
– cms/ – 通信服务模块
– debug/ – 调试系统
第三方组件(thirdparty) :
– lwip – 轻量级TCP/IP协议栈
– mbedtls – 安全套接字层
– mqtt – MQTT客户端
– httpclient – HTTP客户端
– littlefs – 小型文件系统
“`操作系统层(os)
os/freertos/
├── CMSIS/ # ARM Cortex-M软件接口标准
├── inc/ # 头文件
├── portable/ # 移植层
└── src/ # 源代码
“` 应用层(project)
project/ec7xx_0h00/ap/apps/
├── at_command/ # AT命令应用示例
├── bootloader/ # 引导加载程序
├── driver_example/ # 驱动示例
└── spi_2boards/ # SPI通信示例
### 3. 应用示例分析
查看 at_command 应用的 app.c ,可以看到典型的嵌入式应用结构:
void main_entry(void)
{
BSP_CommonInit(); // 板级初始化
osKernelInitialize(); // 操作系统初始化
registerAppEntry(appInit, NULL); // 注册应用入口
if (osKernelGetState() == osKernelReady)
{
osKernelStart(); // 启动内核
}
while(1);
}
### 4. 关键特性
AT命令系统
– 模块化AT命令处理架构
– 支持自定义AT命令扩展
– 完整的命令解析和响应机制
通信功能
– 支持多种通信协议(TCP/IP、HTTP、MQTT、SSL)
– 集成三大运营商认证模块(电信、联通、移动)
存储管理
– NVM(非易失性存储)管理
– 配置信息持久化
– 支持FOTA升级
调试系统
– 统一的日志系统
– 多级别调试输出
– 支持Unilog调试协议
### 5. 开发流程
1. 配置阶段 :通过 mw_common.h 等头文件配置系统参数
2. 编译阶段 :使用GCC或ARMCC工具链
3. 运行阶段 :FreeRTOS调度多任务执行
4. 调试阶段 :通过AT命令和日志系统调试
### 6. 适用场景
这是一个专为 物联网设备 设计的完整SDK,特别适合:
– CAT1通信模组开发
– 工业级物联网应用
– 需要AT命令控制的产品
– 支持运营商认证的设备
整个SDK展现了一个 专业级嵌入式系统 的完整架构,从底层驱动到上层应用都有完善的模块化设计,是EC718芯片开发的核心平台。
浙公网安备 33010602011771号