目录
前言
本文以正点原子W601开发板为例,讲解如何移植RT-Thread
一、实验平台简介
1.1 W601简介
W601就是国内联盛德微电子推出的一款集 WiFi 与 MCU 为一体的 WIFI 芯片方案,以代替传统的 WIFI 模组+外置 MCU 方案。它集成了 Cortex-M3 内核,是一款支持多功能接口的 SoC 芯片。可作为主控芯片应用于智能家电、智能家居、智能玩具、医疗监护、工业控制等物联网领域
学习 W601 有几份资料经常用到:
《W601 芯片产品规格书》
《WM_W601_寄存器手册》
《W601 芯片设计指导书》
其中,最常用的是《WM_W601_寄存器手册》,该文档是官方针对 W601 芯片提供的一份参考资料,里面有绝大部分寄存器的详细描述,内容详实,方便大家编写代码,不过没有实例,也没有对 Cortex-M3 构架进行多少介绍,读者只能根据自己对书本的理解来编写相关代码。当然官方也提供了相关外设例程,但也都是基于操作系统的。而《W601 芯片产品规格书》和《W601 芯片设计指导书》可以让我们更好的了解 W601 的电气参数和硬件电路的设计。
1.2 RT-Thread简介
RT-Thread,全称是 Real Time-Thread,顾名思义,是一款完全由国内团队开发维护的嵌入式实时操作系统(RTOS),基本属性之一是支持多任务。可以使用Env工具对源码功能进行配置或裁剪,生成 MDK/IAR/GCC 工程,需要配合 MDK/IAR/GCC 使用。也可以使用自家RT-Thread Studio下载源码包并创建 rt-thread 工程,独立完成开发、编译、下载、调试等功能,并能进行功能裁剪。
RT-Thread内核分为三个版本,有标准版本、Nano版本以及Smart版本。RT-Thread Nano 是一个极简版的硬实时内核,类似于FreeRTOS。RT-Thread Smart 是基于 RT-Thread 操作系统上的混合操作系统,它把应用从内核中独立出来,形成独立的用户态应用程序,并具备独立的地址空间(32 位系统上是 4G 的独立地址空间),类似于linux操作系统。Nano版与其他RTOS区别不大,没有设备驱动和scons构建概念;而Smart版太复杂学习难度不低于Linux,所以不建议深入了解。
近年来,物联网(Internet Of Things,IoT)概念广为普及,物联网市场发展迅猛,嵌入式设备的联网已是大势所趋。终端联网使得软件复杂性大幅增加,传统的 RTOS 内核已经越来越难满足市场的需求,在这种情况下,物联网操作系统(IoT OS)的概念应运而生。RT-Thread标准版与其他很多 RTOS 如 FreeRTOS、uC/OS 的主要区别之一是,它不仅仅是一个实时内核,还具备丰富的中间层组件,相当于RTOS+LWIP,如下图所示。
本篇文章以rt-thread-master为例,为大家讲解移植,具体内核与设备驱动学习可以见官网详细说明:
https://www.rt-thread.org/document/
1.3 ENV简介
env 是 RT-Thread 推出的开发辅助工具,针对基于 RT-Thread 操作系统的项目工程,提供编译构建环境、图形化系统配置及软件包管理三大功能。其内置的 menuconfig 提供了简单易用的配置剪裁工具,可对内核、组件和软件包进行自由裁剪,使系统以搭积木的方式进行构建。有以下特性:
- menuconfig 图形化配置界面,交互性好,操作逻辑强;
- 丰富的文字帮助说明,配置无需查阅文档;
- 使用灵活,自动处理依赖,功能开关彻底;
- 自动生成 rtconfig.h,无需手动修改;
- 使用 scons 工具生成工程,提供编译环境,操作简单;
- 提供多种软件包,模块化软件包耦合关联少,可维护性好;
- 软件包可在线下载,软件包持续集成,包可靠性高;
二、开发环境搭建
2.1 MDK安装
MDK安装与使用见下链接,注意串口驱动CH340-以及ST-Link驱动的安装: