# RTL8710BX SDK 代码入口说明 本文说明已验证目标 `smart_outlet@mk3080` 的启动入口、应用入口和云业务入口。行号基于原始提交 `27b3e2883d5801551c6919bf405583919d2f3f08` 加编码兼容修复后的源码。 ## 1. 平台入口 文件:`Living_SDK/platform/mcu/rtl8710bn/aos/aos.c` - `main`:第 157 行,Realtek 启动代码进入 AliOS 的平台主入口。 - `main` 在第 173 行创建 `sys_init_func` 初始化任务。 - `main` 在第 177 行调用 `aos_start` 启动内核调度。 - `sys_init_func` 在第 146 行调用 `aos_kernel_init`。 上游 Realtek 启动文件 `Living_SDK/platform/mcu/rtl8710bn/sdk/component/soc/realtek/8711b/cmsis/device/app_start.c` 最终调用 `main`。 ## 2. AliOS 内核入口 文件:`Living_SDK/kernel/init/aos_init.c` - `aos_kernel_init`:第 267 行。 - 该函数初始化 VFS、CLI、KV、网络与框架服务。 - 第 334 行调用产品提供的 `application_start`。 ## 3. 产品应用入口 文件:`Products/example/smart_outlet/app_entry.c` - `application_start`:第 665 行。 - 初始化日志级别、设备元数据、网络管理、厂商适配、诊断、OTA、事件过滤器和业务任务。 - Wi-Fi 事件处理函数 `wifi_service_event` 在获得 IP 后,于第 121 行创建 `linkkit` 任务。 - `application_start` 最终在第 729 行进入 `aos_loop_run` 事件循环。 ## 4. LinkKit 业务入口 文件:`Products/example/smart_outlet/smart_outlet_main.c` - `linkkit_main`:第 623 行。 - 负责设备元数据、LinkKit 初始化、云端连接及属性/事件业务循环。 产品构建清单 `Products/example/smart_outlet/smart_outlet.mk` 明确包含 `app_entry.c`、`smart_outlet_main.c`、厂商适配、状态管理、属性上报和消息处理源码,并依赖 LinkKit、HAL、NetMgr、cJSON 与 OTA 组件。 ## 5. 最终产物验证 在验证提交 `bba690e6a8c6e6c4c6ccd9bd14b320a68957b006` 的最终 ELF 上执行: ```bash arm-none-eabi-nm out/smart_outlet@mk3080/smart_outlet@mk3080.elf \ | grep -E ' (application_start|aos_kernel_init|linkkit_main)$' ``` 确认三个符号均为全局 Text 符号: ```text 08020c1c T aos_kernel_init 0801c668 T application_start 0801de04 T linkkit_main ``` MAP 文件同时显示它们分别来自 `kernel_init.a(aos_init.o)`、`smart_outlet.a(app_entry.o)` 和 `smart_outlet.a(smart_outlet_main.o)`,因此入口说明不只是文件名推断,而是已链接到最终固件的证据。