RT-Thread内核移植

目录

  • 前言
  • 一、实验平台简介
    • 1.1 W601简介
    • 1.2 RT-Thread简介
    • 1.3 开发环境
  • 二、W601的SDK移植
  • 三、RT-Thread内核移植
  • 四、下载验证
    • 4.1 串口下载程序
    • 4.2 ST-Link下载


前言

  本文以正点原子W601开发板为基础,讲解如何移植RT-Thread,本文所用资料见附件资源


一、实验平台简介

1.1 W601简介

  W601就是国内联盛德微电子推出的一款集 WiFi 与 MCU 为一体的 WIFI 芯片方案,以代替传统的 WIFI 模组+外置 MCU 方案。它集成了 Cortex-M3 内核,是一款支持多功能接口的 SoC 芯片。可作为主控芯片应用于智能家电、智能家居、智能玩具、医疗监护、工业控制等物联网领域
  W601 主要有如下优势:
①具有 Cortex M3 内核,拥有强劲的新能,更高的代码密度、位带操作、可嵌套中断、低成本低功耗,高达 80MHz 的主频,非常适合物联网场景的使用。
②该芯片最大的优势就是集成了 WIFI 功能,单芯片方案可代替了传统的 WIFI 模组+外置MCU 方案,并且采用 QFN68 封装,7mm*7mm,可以大大缩小产品体积。
③具有丰富的外设,拥有高达 288KB 的片内 SRAM 和高达 1Mbyte 的片内 FLASH,并且支持 SDIO、SPI、UART、GPIO、I2C、PWM、I2S、7861、LCD、ADC 等外设。
  学习 W601 有几份资料经常用到:

《W601 芯片产品规格书》
《WM_W601_寄存器手册》
《W601 芯片设计指导书》

  其中,最常用的是《WM_W601_寄存器手册》,该文档是官方针对 W601 芯片提供的一份参考资料,里面有绝大部分寄存器的详细描述,内容详实,方便大家编写代码,不过没有实例,也没有对 Cortex-M3 构架进行多少介绍,读者只能根据自己对书本的理解来编写相关代码。当然官方也提供了相关外设例程,但也都是基于操作系统的。而《W601 芯片产品规格书》和《W601 芯片设计指导书》可以让我们更好的了解 W601 的电气参数和硬件电路的设计。

1.2 RT-Thread简介

  RT-Thread 是一款完全由国内团队开发维护的嵌入式实时操作系统(RTOS),具有完全的自主知识产权。RT-Thread,全称是 Real Time-Thread,顾名思义,它是一个嵌入式实时多线程操作系统,基本属性之一是支持多任务。可以使用Env 工具对源码功能进行配置或裁剪,生成 MDK/IAR/GCC 工程,需要配合 MDK/IAR/GCC 使用。也可以使用自家RT-Thread Studio下载源码包并创建 rt-thread 工程,独立完成开发、编译、下载、调试等功能,并能进行功能裁剪。
  而对于资源丰富的物联网设备,RT-Thread 又能使用在线的软件包管理工具,配合系统配置工具实现直观快速的模块化裁剪,无缝地导入丰富的软件功能包,实现类似 Android 的图形界面及触摸滑动效果、智能语音交互效果等复杂功能。相较于 Linux 操作系统,RT-Thread 体积小,成本低,功耗低、启动快速,除此以外 RT-Thread 还具有实时性高、占用资源小等特点,非常适用于各种资源受限(如成本、功耗限制等)的场合。虽然 32 位 MCU 是它的主要运行平台,实际上很多带有 MMU、基于 ARM9、ARM11 甚至 Cortex-A 系列级别 CPU 的应用处理器在特定应用场合也适合使用 RT-Thread。
  RT-Thread内核分为三个版本,有标准版本、Nano版本以及Smart版本。RT-Thread Nano 是一个极简版的硬实时内核,它是由 C 语言开发,采用面向对象的编程思维,具有良好的代码风格,是一款可裁剪的、抢占式实时多任务的 RTOS。其内存资源占用极小,功能包括任务处理、软件定时器、信号量、邮箱和实时调度等相对完整的实时操作系统特性,类似于FreeRTOS。RT-Thread Smart 是基于 RT-Thread 操作系统上的混合操作系统,简称为 rt-smart,它把应用从内核中独立出来,形成独立的用户态应用程序,并具备独立的地址空间(32 位系统上是 4G 的独立地址空间),类似于linux操作系统。
  近年来,物联网(Internet Of Things,IoT)概念广为普及,物联网市场发展迅猛,嵌入式设备的联网已是大势所趋。终端联网使得软件复杂性大幅增加,传统的 RTOS 内核已经越来越难满足市场的需求,在这种情况下,物联网操作系统(IoT OS)的概念应运而生。物联网操作系统是指以操作系统内核(可以是 RTOS、Linux 等)为基础,包括如文件系统、图形库等较为完整的中间件组件,具备低功耗、安全、通信协议支持和云端连接能力的软件平台,RT-Thread 就是一个 IoT OS。RT-Thread标准版与其他很多 RTOS 如 FreeRTOS、uC/OS 的主要区别之一是,它不仅仅是一个实时内核,还具备丰富的中间层组件,如下图所示。
在这里插入图片描述

  从版本简介中可以看出,Nano版本是标准版本 的极简内核版本,Smart版本是在标准版本上增加了用户态创造而来,所以学习标准版本是学习 RT-Thread 的基础。本篇文章以学习 RT-Thread标准版本为例,为大家讲解移植,具体内核与设备驱动学习可以见官网详细说明:
https://www.rt-thread.org/document/

1.3 开发环境

  1. MDK安装见下链接:
    https://blog.csdn.net/weixin_44567668/article/details/134191384
    需要下载安装MDK、串口驱动以及ST-Link驱动
  2. 串口下载程序(见附件资源)
  3. W601官方SDK(见附件资源)
  4. RT-Thread内核源码(见附件资源)
    https://download.csdn.net/download/weixin_44567668/88503413

二、W601的SDK移植

三、RT-Thread内核移植

四、下载验证

4.1 串口下载程序

  首先需要安装串口驱动,安装见前面开发环境搭建。然后在附件资源里找到星通智联串口调试下载助手,双击运行ThingsTurn_Serial_Tool.exe
  选择 ALIENTEK W601 开发板在电脑上的 COM 口,在电脑的“控制面板->设备管理器->端口(COM 和 LPT)”中查看,如果电脑的 COM 口太多,请插拔开发板的 USB 线观察具体的 COM 口编号。串口参数按如图所示参数进行设。打开串口后,还需要选择 FLS 文件路径(这里的文件选择上面新建工程并且编译后的 BIN 文件夹路径就可以了,如果没有 FLS,请先编译工程),然后点击下载,就可以将程序下载到 W601 芯片。
在这里插入图片描述

4.2 ST-Link下载

  首先需要安装ST-Link驱动,安装见前面开发环境搭建。打开 Options for Target 选项卡,在 Debug 栏选择仿真工具为 ST-Link Debugger,这里我们还勾选了 Run to main(),如图所示:
在这里插入图片描述
  然后我们点击 Settings,设置ST-Link的一些参数,如图所示:

  单击 OK,完成此部分设置,接下来我们还需要在 Utilities 选项卡里面设置下载时的目标编程器,我们直接勾选 Use Debug Driver,即和调试一样,选择高速 DAP 来给目标器件的 FLASH 编程,如图所示:
在这里插入图片描述
  然后这里需要拷贝官方提供的下载算法 W60X_QFlash.FLM(路径为附件资源\W601的RT-Thread开发环境\WM_SDK\Doc\W60X_QFLASH_Driver_for_SWD\W60X_QFlash)文件到MDK安装目录下(路径为.\Keil_v5\ARM\Flash),如图所示:
在这里插入图片描述

  然后点击 Utilities->Settings,在 Download Function 勾选“Reset and Run”功能,在“RAM for Algorithm”处,需要将 Size 改为“0x00002000”,而后点击 Add 选项,选择刚刚拷贝的下载算法“Winner Micro 1M Flash V1.0”,然后点击 Add,添加后最后点击 OK 退出就可以了。
在这里插入图片描述
  在设置完之后,点击确定,然后再点击 OK,回到 IDE 界面,编译一下工程。然后点击下载按钮,就可以下载代码到 W601 上面了,如图所示:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/116842.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于ssm车位租赁系统+vue(2023年☆全网唯一)【附开发文档|表结构|万字文档(LW)和搭建文档】

主要功能 前台登录: 注册用户:用户账号、密码、姓名、手机号、身份证号、性别、邮箱 用户: ①首页、车位展示、公告展示、查看更多 ②车位类型、车位介绍、车位收藏、留言、我要租赁、公告、留言板 ③个人中心、车位收藏、车位租赁订单、已到…

C++ AVL树 c语言版本

引入平衡树 假设我们有两个节点:当我们插入第三个节点,就失衡了:此刻我们就要把它平衡一下。 为什么要变平衡 为什么说它失衡了呢,又为什么要把它变平衡? 如图a,假设我们要查找30这个节点就要查3次才能…

Docker网络模式_Docker常用命令_以及Docker如何给运行的镜像内容连接互联网_Docker网络模式原理---Docker工作笔记004

然后我们来看一下docker的网络模式: 这个docker我们先看一下电脑上的网络,有两个,1个是lo是测试用的一个是enp0s3这个是我们以太网地址,然后我们去: 安装docker 安装后我们再去ip address可以看到多出来一个网络是docker0 这里ip地址是172.17.0.1这个是私有地址外部无法访问 这…

pytorch dropout 置零 + 补偿性放缩

一句话概括:(训练过程中)Dropout 操作 随机置零 非置零元素进行后补偿性放缩。以保证dropout前后数据scale不变。 详细解释(来自chatgpt): 在 PyTorch 中,dropout 的操作不仅仅是将某些元素置零。为了确保期望输出在训练和测试…

MES与ERP系统集成的一些探讨

什么是MES软件? 制造执行系统 (MES) 是一种用于控制车间复杂制造操作和数据的软件。MES软件有助于提高生产过程的质量,使制造商能够轻松响应需求和客户偏好的变化。 MES软件有什么作用? 制造执行系统允许企业跟踪、…

SpringCloud-Alibaba之OSS对象存储服务

阿里云的 OSS 服务进行云端的文件存储 用户认证需要上传图片、首页轮播需要上传图片&#xff0c;OSS分布式文件服务系统可以提供服务。 一、依赖 <dependency><groupId>com.alibaba.cloud</groupId><artifactId>aliyun-oss-spring-boot-starter</…

Java实现驼峰命名的字符串转化

目录 一、场景描述 二、代码示例 1、下划线大写方式命名的字符串转换为驼峰式 2、驼峰式命名的字符串转换为下划线大写的方式 3、完整代码 一、场景描述 在开发场景中&#xff0c;我们会遇到一些涉及字符串的转化。例如&#xff1a;数据库字段的名称叫TYPE_NAME&#xff0c…

Android MVI架构的深入解析与对比

什么是MVI&#xff1f; M&#xff1a;model&#xff0c;此处的model并不是传统的数据模块&#xff0c;它是指用来存储视图状态UI State的一个模块 。比如请求数据时的loading、请求失败的提示页面等UI层面的变化状态。 V&#xff1a;view&#xff0c;视图模块 I&#xff1a;…

Android---彻底掌握 Handler

Handler 现在几乎是 Android 面试的必问知识点&#xff0c;大多数 Adnroid 工程师都在项目中使用过 Handler。主要场景是子线程完成耗时操作的过程中&#xff0c;通过 Handler 向主线程发送消息 Message&#xff0c;用来刷新 UI 界面。 下面我们来了解 Handler 的发送消息和处…

网络性能瓶颈分析,让我来说给你听!

在性能测试中&#xff0c;谈到网络问题&#xff0c;其实&#xff0c;在没有特别说明的情况下&#xff0c;我们一般讲的都是 HTTP 协议下的网络瓶颈问题&#xff0c;那&#xff0c;对于这个问题&#xff0c;我们如何来分析呢&#xff1f;计算机中的网络&#xff0c;跟我们现实生…

npm的使用

package.json 快速生成package.json npm init -y “version”: “~1.1.0” 格式为&#xff1a;「主版本号. 次版本号. 修订号」。 修改主版本号是做了大的功能性的改动 修改次版本号是新增了新功能 修改修订号就是修复了一些bug dependencies "dependencies": {&…

陕西某小型水库雨水情测报及大坝安全监测项目案例

项目背景 根据《陕西省小型病险水库除险加固项目管理办法》、《陕西省小型水库雨水情测报和大坝安全监测设施建设与运行管理办法》的要求&#xff0c;为保障水库安全运行&#xff0c;对全省小型病险水库除险加固&#xff0c;建设完善雨水情测报、监测预警、防汛道路、通讯设备、…

Spring源码编译步骤

Spring源码学习 一、Gradle 为什么下载gradle呢&#xff1f;我们平时不都是用maven吗&#xff1f;原因只有一个&#xff0c;spring源码是用gradle构建的&#xff0c;所以&#xff0c;你想看spring源码必须安装和学会使用gradle&#xff0c;那么&#xff0c;让我们开始gradle之…

windows 用vs创建cmake工程并编译opencv应用项目生成exe流程简述

目录 前言一、安装opencv&#xff08;1&#xff09;下载&#xff08;2&#xff09;双击安装&#xff08;3&#xff09;环境变量和system文件夹设置 二、打开vs创建项目三、编辑cpp&#xff0c;.h&#xff0c;cmakelist.txt文件&#xff08;1&#xff09;h文件&#xff08;2&…

ElementuiPlus的table组件实现行拖动与列拖动

借助了插件sortablejs。这种方法只适合做非树状table。如果想实现树状table&#xff0c;并且可拖动。可以试一下aggridVue3这个插件 <template><div class"draggable" style"padding: 20px"><el-table row-key"id" :data"t…

云安全—docker Deamon攻击面

0x00 前言 本篇文章主要是讲docker Deamon的原理以及docker Deamon攻击面相关的内容&#xff0c;属于抛砖引玉系列&#xff0c;如有不妥之处还请斧正。 0x01 docker Deamon 还是先来看一下docker Deamon的一些相关知识&#xff0c;依旧是采用问答的方式来进行。为了文章的整…

设计模式_访问者模式

访问者模式 介绍 设计模式定义案例问题堆积在哪里访问模式访问模式是行为型设计模式 从对象中分类出算法 这些算法封装为对象&#xff0c; 这样这些算法类很容易扩展&#xff0c;添加新的算法类就可以了不同的VIP用户 在不同的节日 领取不同的礼物if else太多 解决办法小技巧…

专访HuggingFace CTO:开源崛起、创业故事和AI民主化丨智源独家

导读 HuggingFace CTO Julien Chaumond认为&#xff0c;在大模型时代&#xff0c;AI民主化至关重要。随着大语言模型和复杂人工智能系统的崛起&#xff0c;持续提升AI技术的可及性有助于确保这些技术的获取和控制不集中在少数强大实体手中。技术民主化促进了机会均等&#xff0…

下载安装PyCharm的步骤

1、首先进入Pycharm官网&#xff0c;并进行下载&#xff0c;日常使用社区版也是OK的 官网&#xff1a;https://www.jetbrains.com/pycharm/download/?sectionwindows 2、可以自定义路径进行安装&#xff0c;注意路径要全英哈 3、大家可以根据自己的需要来进行勾选 4、安装完成…

(免费领源码)小程序+spring boot+masql校园志愿者管理系统99213-计算机毕业设计项目选题推荐

摘 要 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;校园志愿者管理系统被用户普遍使用&#xff0c;为方便用户…