Wio Terminal 运行 RT-Thread 系统
Wio Terminal 是 Seeed Studio 设计的一款开发套件。它基于 SAMD51 的微控制器,运行速度为 120MHz(最高可达 200MHz),拥有 4MB 外部闪存和 192KB RAM,具有 Realtek RTL8720DN 支持的无线连接,同时支持蓝牙和 Wi-Fi 功能,是物联网项目的一个不错选择。并且它使用 Arduino IDE 就可以进行开发,新手也可以非常容易上手。
但是,基于 Arduino 的开发也有一些缺点,比如无法调试、无法使用多线程编程、不利于理解底层代码深入学习嵌入式开发、难以进行系统优化等等。于是,我在想能不能在 Wio Terminal 上运行 RT-Thread 操作系统?使用 RT-Thread 强大的软件生态进行开发呢?
说干就干!经过两个周末的折腾,我终于实现了将 RT-Thread 移植到 Wio Terminal 上。那么,本文就来介绍我是如何实现这个目标的。
背景知识
开始之前,我们先来了解一些相关概念,以便顺利完成本次实验。
SAM 系列芯片
Microchip ATSAM 系列芯片在各种工业、消费类和汽车领域有广泛应用。Arduino 开发板常用的芯片就是 Atmel 公司生产的 AVR 和 SAM 系列微控制器。而我们这里用到的 Wio Terminal,它的主控制器是 ATSAMD51P19A-U。
我们先来看看这个 SAM 芯片家族,下面是数据手册提供的说明。其中,ATSAMD51P19 就表示核心是 Cortex-M4F(不含 CAN 和 Ethernet 外设)、Flash 容量 512 KB,管脚共 120/128 个(具体和封装有关)。
Atmel START
Atmel START 是一款可对 SAM 和 AVR 微控制器项目进行直观的图形配置的在线工具,作用类似于 ST 的 STM32CubeMX 工具。由于 Atmel START 以 SaaS 形式提供服务,所以我觉得更加方便。
Atmel START 基于最新一代的高级软件框架 ASF4。使用 Atmel START,你可以选择和配置软件组件、驱动程序和中间件,以及专门根据你的应用程序需求定制的完整示例项目。
通过图形引脚复用和时钟配置,你可以轻松地将软件和驱动程序与你使用的硬件布局相匹配。配置阶段还会检查软件组件之间的依赖关系、冲突和硬件约束。如果发生冲突,Atmel START 会自动建议适合你特定设置的解决方案。
ASF4
ASF4 全称 Advanced Software Framework Version 4,它是 Microchip 提供的一套外设驱动程序、中间件和软件应用程序等软件组件的集合。该框架支持 Microchip 的 SAM 系列微控制器。
Microchip Studio
Atmel Studio 是 Atmel(现在是 Microchip)公司推出的一款集成开发环境(IDE),专门用于嵌入式系统的开发。提供了丰富的工具和功能,以支持 Atmel 微控制器的编程、调试和部署。Atmel Studio 支持多种编译器,包括 GCC 和 IAR 编译器,可用于生成最优化的代码。支持多种编程语言,包括 C、C++ 和汇编语言。开发者可以根据自己的需求选择最合适的编程语言来编写他们的应用程序。
由于 Atmel 被 Microchip 收购了,所以 Atmel Studio 也更名为 Microchip Studio。它整合了 Atmel Studio 的功能,并扩展支持了更多 Microchip 微控制器系列,包括 PIC 系列等。
我们这里使用最新的 Microchip Studio 7.0,你可以在这里下载。
Atmel ICE Programmer
Atmel-ICE 是 Microchip 新推出的功能强大的调试编程工具,适用于 Atmel ARM Cortex-M 的 SAM 和 AVR 系列芯片。
Atmel-ICE 支持的软件:
- 支持 MIcrochip Studio 6.2 以上版本
- 支持 ICC8AVR 以上版本
- 支持烧录 ICCAVR、CVAVR、IAR 等生成的 HEX 文件
本次实验将使用 MIcrochip Studio + Atmel-ICE 来完成 RT-Thread 固件烧录。
搭建工程
下载源代码
我已经完成 RT-Thread 的移植了,你可以从我的 GitHub 分支拉取移植好的 rt-thread 工程,这样就能快速启动你的 Wio Terminal。
git clone -b microchip https://github.com/luhuadong/rt-thread.git