2.4 KiB
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 上执行:
arm-none-eabi-nm out/smart_outlet@mk3080/smart_outlet@mk3080.elf \
| grep -E ' (application_start|aos_kernel_init|linkkit_main)$'
确认三个符号均为全局 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),因此入口说明不只是文件名推断,而是已链接到最终固件的证据。