Ai-Thinker-Open_RTL8710BX_A.../README.md
2026-08-07 15:15:33 +08:00

110 lines
4.3 KiB
Markdown
Executable file
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Ai-Thinker RTL8710BX AliOS SDK
## 项目介绍
本仓库是面向 RTL8710BN/RTL8710BX 系列模组的 AliOS Things 1.3.4 与阿里云 LinkKit 示例 SDK。仓库同时包含产品示例、AliOS 内核与框架、RTL8710BN 平台适配、MK3080 等板级配置以及固件打包脚本。
仓库属于遗留 SDK原始代码最后提交于 2020 年,依赖 Python 2 和较旧的构建系统。2026-08-07 已在 Ubuntu 22.04/WSL2 中验证 `smart_outlet@mk3080` 目标可以完成两次干净构建;这不代表其他 Board 或真实硬件功能已经验证。
## 目录结构
| 路径 | 说明 |
| --- | --- |
| `Products/example/smart_outlet/` | 智能插座示例、设备状态与 LinkKit 业务逻辑 |
| `Living_SDK/kernel/` | AliOS 内核初始化、Rhino 和系统服务 |
| `Living_SDK/framework/` | LinkKit、网络管理、OTA、事件循环等框架 |
| `Living_SDK/platform/mcu/rtl8710bn/` | RTL8710BN 启动、HAL、驱动、链接脚本和预编译库 |
| `Living_SDK/board/mk3080/` | MK3080 Board 配置、Boot/ATE 镜像和板级代码 |
| `tools/mk3080.sh` | RTL8710BN/MK3080 分阶段编译、链接与固件打包 |
| `Service/version/` | 固件版本信息组件 |
详细模块关系和启动流程见[架构说明](docs/ARCHITECTURE.md)。
## 快速开始与构建
推荐在 Ubuntu 22.04 或 WSL2 中构建。已验证环境需要:
- Git
- Python 2.7(仅用于遗留构建脚本)
- Python 3.10 与 `aos-cube==0.5.11`
- ARM GNU Toolchain 10.3.1
- Newlib 3.3.0
Ubuntu 22.04 可以安装 ARM 编译器和 Newlib
```bash
sudo apt-get install --no-install-recommends gcc-arm-none-eabi libnewlib-arm-none-eabi
```
准备独立的 aos-cube 环境后,按以下方式执行干净构建:
```bash
cd Ai-Thinker-Open_RTL8710BX_ALIOS_SDK
# WSL 可能注入 NAME该变量会覆盖旧 Makefile 中的组件 NAME。
unset NAME
ulimit -s unlimited
# /usr/bin 必须排在 aos-cube venv 前,使遗留 Make 脚本使用 Python 2
# aos 命令仍会从后面的 venv 中找到,并由它自己的 Python 3 shebang 启动。
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:$HOME/.venvs/aos-cube-0.5.11-system/bin
./build.sh clean smart_outlet
./build.sh example smart_outlet mk3080 MAINLAND ONLINE 0
```
成功后主要产物位于:
```text
out/smart_outlet@mk3080/
```
其中包括 ELF、MAP、HEX、应用 BIN、OTA BIN 和包含 Boot/ATE 分区的 `all.bin`
完整环境、产物哈希与日志见[真实构建验证](docs/BUILD_VERIFICATION.md)。
## 代码入口与运行流程
RTL8710BN 的主启动流程为:
```text
Realtek startup
-> main
-> sys_init_func
-> aos_kernel_init
-> application_start
-> Wi-Fi 获得 IP
-> linkkit_main
```
具体文件、行号、符号和最终 ELF 证据见[代码入口说明](docs/CODE_ENTRY.md)。
## 示例与配置
已验证示例为 `Products/example/smart_outlet`Board 为 `mk3080`
```bash
./build.sh example smart_outlet mk3080 MAINLAND ONLINE 0
```
参数依次表示产品类型、应用、Board、云区域、云环境和 Debug 开关。仓库还包含 `linkkit_gateway``living_platform``certification` 等示例,但本次没有对这些目标进行完整构建验证。
## 使用限制
- 本次验证没有连接真实 RTL8710BX/MK3080 硬件。
- 未验证烧录、启动、Wi-Fi 配网、云端连接、OTA、外设和量产流程。
- 仓库包含 Python 2、旧版 TLS/网络组件和预编译库;用于新产品前应单独进行安全与许可证审查。
- 构建成功不等于所有 Board、示例和运行场景都可用。
## 问题排查与贡献
- 出现乱码或 `UnicodeDecodeError` 时,请确认使用了本仓库兼容后的 `gen_auto_code.py`
- `map_parse_gcc.py` 使用 Python 2 语法;请保持 `/usr/bin` 位于 aos-cube 虚拟环境之前。
- 出现 `stdio.h``unistd.h``nano.specs` 缺失时,请安装 `libnewlib-arm-none-eabi`
- 提交改动前请说明目标 Board、完整构建命令、验证结果和未验证范围并通过独立分支和 Pull Request 合并。
机器可读的审查证据见 [`audit/technical-evidence.json`](audit/technical-evidence.json)。
## License
仓库根目录使用 [Apache License 2.0](LICENSE)。仓库中的第三方组件、预编译库和厂商 SDK 可能适用各自的许可证,分发前应同时核对对应目录中的声明。