SDK 软件启动过程分为两个阶段,第一阶段如 图 1-2. Wi-Fi SDK 启动 第一阶段 所示,从 Main
函数板级初始化到 RTOS 开始调度 Start Task 为止。
① platform_init() 进行板级初始化,在此之后,开发者可以使用串口调试;
② sys_os_init() 进行 RTOS 初始化,在此之后,开发者可以创建 RTOS task;
③ sys_task_create() 创建 Start Task,为启动第二阶段做准备;
④ sys_os_start() RTOS 启动调度,Start Task 开始工作,进入 SDK 启动的第二阶段。
SDK 启动的第二阶段如 图 1-3. Wi-Fi SDK 启动第二阶段 所示,全部在 Start Task 内完成。
① wifi_management_init() 对 wifi 和网络相关组件初始化;
② tcpip_init() 初始化 Lwip TCP / IP 协议栈;
③ wifi_netlink_init() 初始化 netlink 组件;
④ wifi_netlink_dev_open()、⑤ wifi_netif_open 和⑥ netif_add() 打开 wifi 设备,初始化
wifi 驱动,并向 lwip 添加网络接口;
⑦ wifi_management_start() 启动连接管理服务;
⑧ 最后 SDK 启动完成,开发者可以启动用户程序。SDK 中这里启动 console 程序。
|