最近在学习RT-Thread,原子的某例程的的主函数如下(这是在keil5下的截图): ? 这是主函数中的全部代码,主要是创建一个led线程并启动。...这就涉及到RT-Thread的启动过程。 我们可以借助jlink仿真器进行硬件单步调试就可以知道程序的执行流程了。 首先,进入调试界面,并点击复位按钮光标就可以跳到程序开始运行的地方。如: ?...在《RT-Thread内核实现与应用开发实战指南》这本书中有解释到: RTThread 使用编译器(这里仅讲解 KEIL, IAR 或者 GCC 稍微有点区别,但是原理是一样的)自带的$Sub$$和$...简单来说,$Sub$$和$Super$$具有补丁功能,可以给一些函数打上补丁,如RT-Thread的内核文件component.c中就给我们的用户主函数main打上了”补丁“。...以上就是关于RT-Thread启动过程的一点总结,如有错误欢迎指出!谢谢
这里我选择国产实时操作系统RT-Thread进行学习,因为现在很火呀。...之前已经有简单地过了一遍RT-Thread,奈何学过地知识一旦不用,就会很容易地忘掉,所以应当多做一些学习笔记~ RT-Thread简介 RT-Thread,全称是 Real Time-Thread,顾名思义...RT-Thread提供了一些网络组件及软件包,我们可以运用这些软件包很方便地与云端进行通讯。因此,RT-Thread是一个物联网操作系统(IoT OS)。...RT-Thread 内核基础 RT-Thread内核架构如下: ? 其中,内核库kservice.c是为了保证内核能够独立运行的一套小型的类似 C 库的函数实现子集。...时钟管理 RT-Thread 的时钟管理以时钟节拍为基础,时钟节拍是 RT-Thread 操作系统中最小的时钟单位。
下面我们来从原理层面和实现层面上讲一下rt-thread裁剪相关的知识。...02 rt-thread具有高度的可裁剪性 RT-Thread 主要采用 C 语言编写,浅显易懂,方便移植。...得益于 RT-Thread 的高度可裁剪性,通过对完整版的裁剪,可以十分便捷的小资源 平台上使用上 RT-Thread。可以通过 env 工具十分方便地进行裁剪,env 工具使用方法如下图所示: ?...对于RT-Thread中,比较关心的是ROM资源以及RAM资源,所以在设计之初,首先评估资源是否合理去跑一个rtos。...06 业务逻辑裁剪 在使用rt-thread操作系统时,往往都是利用rt-thread实现自己的业务逻辑,所以我们在编写自己的代码的时候,也需要充分的理解rt-thread的设计思想。
从RT-Thread的github上clone下源码(git@github.com:RT-Thread/rt-thread.git) 2....从源码路径:rt-thread\bsp\stm32\libraries\templates中,复制一份stm32f10x的模板到源码路径:rt-thread\bsp\stm32,并修改其名字(我的修改为...8.打开工程路径:\rt-thread\bsp\stm32\Rice_RT_Thread_stmf103c8t6\board的SConscript,修改启动芯片和目标芯片,因为目录下\rt-thread...16.以上的移植过程都是RT-Thread的源码上做的,太多文件夹了,如果你先将工程分离出来,输入scons –dist。等待。。。。。。...生成完之后,可以在工程路径下:\rt-thread\bsp\stm32\Rice_RT_Thread_stmf103c8t6\dist,将工程拷贝到任意位置。
文章目录 一、初识RT-Thread 1.简介 2.前景 3.软件生态 二、实验准备 三、实验需求 四、操作流程 1.新建RT-Thread工程 2.RT-Thread Studio界面介绍 3.代码编写...4.烧录 5.串口监视 五、代码演示 六、原理讲解 一、初识RT-Thread 做世界级的 OS,让万物互联,信息畅通无阻。...1.简介 RT-Thread 是一个集实时操作系统(RTOS)内核、中间件组件和开发者社区于一体的技术平台,由熊谱翔先生带领并集合开源社区力量开发而成,RT-Thread 也是一个组件完整丰富、高度可伸缩...2.前景 RT-Thread 具备一个 IoT OS 平台所需的所有关键组件,例如GUI、网络协议栈、安全传输、低功耗组件等等。...二、实验准备 编程工具:RT-Thread studio 开发板:潘多拉STM32L475 三、实验需求 1.使用按键控制蜂鸣器和电机,当按下KEY0 后电机左转,当按下KEY1 后电机 右转,当按下
线程管理特点 RT-Thread 线程管理的主要功能是对线程进行管理和调度,系统中总共存在两类线程,分别是系统线程和用户线程,系统线程是由 RT-Thread 内核创建的线程,用户线程是由应用程序创建的线程...---- 线程属性 线程栈 RT-Thread 线程具有独立的栈,当进行线程切换时,会将当前线程的上下文存在栈中,当线程要恢复运行时,再从栈中读取上下文信息,进行恢复。...此状态在 RT-Thread 中的宏定义为 RT_THREAD_READY 这个状态线程是参与调度的,只不过没有占用CPU。 运行状态 线程当前正在运行。...此状态在 RT-Thread 中的宏定义为 RT_THREAD_SUSPEND 关闭状态 当线程运行结束时将处于关闭状态。关闭状态的线程不参与线程的调度。...此状态在 RT-Thread 中的宏定义为 RT_THREAD_CLOSE 线程优先级 RT-Thread 最大支持 256 个线程优先级 (0~255),数值越小的优先级越高,0
rt-thread的内存管理分析 1.概述 2.静态内存与动态内存 3.小内存管理 4.slab内存管理 4.1 rt-thread上slab基本介绍 4.2 rt-thread上slab内存的管理 5...本文主要从RT-Thread的内存管理策略的角度出发,梳理一下目前RT-Thread系统中的内存管理,同时从实际应用的角度出发,选择合适的方案进行内存管理。...对于RT-Thread的内存管理方式,主要从小内存管理、slab、memheap以及内存池这四种内存管理策略上去分析对比,从而选择最佳的内存管理策略。...3.小内存管理 rt-thread的小内存管理算法是一种比较简单的内存分配管理算法。应用的场景在内存在1MB以下使用比较合适。...4.slab内存管理 4.1 rt-thread上slab基本介绍 RT-Thread 的 slab 分配器是在 DragonFly BSD 创始人 Matthew Dillon 实现的 slab 分配器基础上
一、介绍 FinSH 是 RT-Thread 的命令行组件(shell),有了 shell,就像在开发者和计算机之间架起了一座沟通的桥梁,开发者能很方便的获取系统的运行情况,并通过命令控制系统的运行。...二、FinSH 内置命令 2.1、tap键 按下 Tab 键后打印出来的当前支持的所有显示 RT-Thread 内核状态信息的命令。...导出无参数命令时,函数的入参为 void,示例如下: void hello(void) { rt_kprintf("hello RT-Thread!...\n"); } MSH_CMD_EXPORT(hello , say hello to RT-Thread); 导出有参数的命令时,函数的入参为 int argc 和 char**argv 。
前面我们学习了RTT的UART设备的使用,不得不说真的超级给力呀,不到100行秒杀任何MCU最原始的串口编程模式,不得不感叹RTT发展如此强大,文章链接: RT-Thread UART设备驱动框架初体验...RT-Thread PIN设备!学习一个新东西,我个人主张带着需求去学习,而不是漫无目的的去学,有了需求驱动,并且是一个努力付出就可以拥有的成果,那么这还不容易嘛!...我们将基于RT-Thread Studio来构建。 2、开始实践 2.1、RT-Thread Studio工程创建与基础配置 (1)创建RT-Thread项目 ? (2)配置项目 ?...RT-Thread选择v4.0.2,这个版本包含基本的组件,而选择nano的话则不包含。 厂商目前只支持ST,相信后面会支持更多。...-2.0 * * Change Logs: * Date Author Notes * 2019-09-09 RT-Thread first version
上一节我们学习了RTT的PIN设备的使用,从PIN设备的例程再一次体会到RTT编程的灵活和简单,最重要的是让开发者专注于应用开发,文章链接: RT-Thread PIN设备学习笔记 今天我们来学习RT-Thread...本节,我们将会学习到RT-Thread ADC设备的基本使用。 接下来,我们将基于RT-Thread Studio来构建。...; 参数 描述 dev ADC 设备句柄 channel ADC 通道 返回 —— 读取的数值 根据API,我们很容易写出以下程序: /* * Copyright (c) 2006-2019, RT-Thread...SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes * 2019-09-09 RT-Thread...* * STEP 1, open adc driver framework support in the RT-Thread Settings file * * STEP 2, define
trace32 for rt-thread support 1.概述 2.trace32的基本使用 3.trace32系统插件原理 4.离线trace32得到rt-thread状态信息 4.1 trace32...而在rt-thread中,有个核心的全局静态变量,对象容器(rt_object_container)。...task.config D:\work\rt-thread\bsp\raspberry-pi\raspi2\rtthread.t32 menu.reprogram D:\work\rt-thread\bsp...Data.LOAD.Binary D:\work\rt-thread\bsp\raspberry-pi\raspi2\rtt_dump 0x8000 Data.LOAD.Elf D:\work\rt-thread...5.总结 rt-thread在trace32上的扩展插件使用,可以非常方便的分析系统的状态。
统一管理网卡调试命令(ping、ifconfig、netstat、dns 等命令); 网卡概念: 网卡概念介绍之前先了解协议栈相关概念,协议栈是指网络中各层协议的总和,每种协议栈反映了不同的网络数据交互方式,RT-Thread...SAL 组件提供对不同协议栈或网络实现接口的抽象和统一,组件在 socket 创建时通过判断传入的协议簇(domain)类型来判断使用的协议栈或网络功能,完成 RT-Thread 系统中多协议的接入与使用...3.1 AT 组件简介 AT 组件是基于 RT-Thread 系统的 AT Server 和 AT Client 的实现,组件完成 AT 命令的发送、命令格式及参数判断、命令的响应、响应数据的接收、响应数据的解析...4.2.1 添加lwip协议栈软件包 在 RT-Thread Setting 文件中借助图形化配置工具打开软件 lwip 的组件,保存更新。 ?...4.2.3 网络设备层和LAN8720驱动解析 4.2.3.1 网络设备层解析 RT-Thread 的 lwIP 移植在原版的基础上,添加了网络设备层以替换原来的驱动层。
本文介绍了如何在 RT-Thread Studio 上使用 RT-Thread Nano,并基于BearPI-IOT STM32L431RCT6的基础工程进行讲解如何使用PIN设备接口及相关软件包使用。...RT-Thread Nano:仅仅只是一个 RTOS 内核。没有任何组件。 Nano 是无法直接使用 RT-Thread 丰富软件包功能。...准备工作 使用 RT-Thread Studio 建立一个 STM32L431RCT6 的 RT-Thread Nano 基础工程。...基础工程创建可参考:在 RT-Thread Studio 上使用 RT-Thread Nano PIN 设备接口 在 RT-Thread 标准版中,PIN设备设备提供了一套设备管理接口来访问 GPIO,...通过这样的方式,学习完 RT-THREAD Nano 在转移到 RT-THREAD 标准版的学习,更加简单方便。
简要 接下来做一个专辑《rt-thread驱动框架分析》,我会按照自己的理解来描述每一个驱动。有不对的欢迎随时来怼我。 rt-thread的版本分为两大类,一个是完整版本,一个是nano版本。...rt-thread提供了很多驱动框架,比如常见的外设驱动:I2C, SPI等。还有网络相关的WLAN驱动等。 驱动框架分析,主要以STM32来分析。...驱动分析 API简要说明 rt-thread的pin驱动为上层应用提供两套不同的API,一套是对接设备驱动框架。一套是封装好的API,用户层可以直接使用。...device */ rt_device_register(&_hw_pin.parent, name, RT_DEVICE_FLAG_RDWR); return 0; } 前面我们谈到RT-Thread...RT-Thread提供的pin设备管理接口来访问GPIO,接口如下: API描述rt_pin_mode()设置引脚模式rt_pin_write()设置引脚电平rt_pin_read()读取引脚电平rt_pin_attach_irq
简介 rt-smart相关文章 《rt-smart的第一个应用程序,imx6ull用户态点灯》 《rt-smart用户态通过IPC通信玩转传感器数据》 rt-thread驱动相关文章 《rt-thread...驱动框架分析》-pin驱动 《rt-thread驱动框架分析》-i2c驱动 有了LCD之后,那必然要有触摸,没触摸的屏幕感觉少了灵魂。...Touch IC驱动 对于Touch,RT-Thread有专门的设备驱动框架,官网文档有对相关API使用的说明,可以查看下面链接。这篇文章主要描述底层的touch驱动对接。应用相关的直接看文档中心。
RT-Thread中的对象有哪些? RT-Thread包括了很多不同类型的对象,如线程,信号量,互斥量等。...RT-Thread内核采用面向对象的设计思想进行设计。其内核对象分为两类:静态内核对象和动态内核对象。...RT-Thread如何管理内核对象? RT-Thread中有那么多种内核对象,它是怎么管理这些内核对象呢?其使用对象容器来管理这些对象。...RT-Thread是一个可裁剪的系统,可以通过相应宏打开/关闭对象模块,所以这个值是根据最终对象类型种类确定的。 ?...参考资料: 1、《RT-Thread编程指南》 2、[野火]《RT-Thread 内核实现与应用开发实战—基于STM32》
摘要 本篇笔记主要介绍,如何在RT-Thread的集成开发环境Studio下快速搭建工程。 2. 准备工作 1), 了解RTT Studio 2), 安装RTT-Studio 3....RT-Thread Studio简介 RT-Thread是RTT官方推出的一站式的 RT-Thread 开发工具,通过简单易用的图形化配置系统以及丰富的软件包和组件资源,让物联网开发变得简单和高效。...安装RT-Thread Studio 去官网下载 ? 下载后就可以安装了 ? 需要注意,初次安装需要注册登录一下,以后就可以直接用,另外需要安装Git软件 ? 安装完后,就可以使用了 ? 5.
昨天去完开发者大会以后我就飘了,于是今晚花了一点时间,迅速的将原来做的开源项目,公众号文章链接如下: 开源作品:基于TencentOS tiny英国达特甲醛探测仪产品级开发(二) 换成了RT-Thread...Nano,如下,于是这就又成了一个新的基于RT-Thread的开源项目,移植过程简直速度,后续将会写一篇文章来告诉大家是如何来做的: 项目图片展示效果:(Powe by RT-Thread Nano)
RT-Thread 中的多线程 博主介绍 RT-Thread 线程管理和调度 系统线程 空闲线程 主线程 线程管理 RT-Thread 自动初始化机制 在新线程控制LED RT-Thread 线程管理和调度...RT-Thread 线程管理的主要功能是对线程进行管理和调度,系统中总共存在两类线程,分别是系统线程和用户线程,系统线程是由 RT-Thread 内核创建的线程,用户线程是由应用程序创建的线程,这两类线程都会从内核对象容器中分配线程对象...RT-Thread的线程调度器是抢占式的,主要的工作就是从就绪线程列表中查找最高优先级线程,保证最高优先级的线程能够被运行,最高优先级的任务一旦就绪,总能得到CPU的使用权。...系统线程 系统线程是指由系统创建的线程,用户线程是由用户程序调用线程管理接口创建的线程,在 RT-Thread 内核中的系统线程有空闲线程和主线程。...另外,空闲线程在 RT-Thread 也有着它的特殊用途: 若某线程运行完毕,系统将自动删除线程:自动执行 rt_thread_exit() 函数,先将该线程从系统就绪队列中删除,再将该线程的状态更改为关闭状态
在RT-Thread 中,与上述子任务对应的程序实体就是线程,线程是实现任务的载体。...在RT-Thread 中,线程包含五种状态,操作系统会自动根据它运行的情况来动态调整它的状态。...此状态在RT-Thread 中的宏定义为RT_THREAD_READY 运行态 线程当前正在运行。...此状态在RT-Thread 中的宏定义为RT_THREAD_CLOSE (3) 线程优先级 RT-Thread 线程的优先级是表示线程被调度的优先程度。...RT-Thread 最大支持256 个线程优先级(0~255),数值越小的优先级越高,0 为最高优先级。
领取专属 10元无门槛券
手把手带您无忧上云