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

2.4 KiB
Raw Blame History

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.csmart_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),因此入口说明不只是文件名推断,而是已链接到最终固件的证据。