首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

RT论坛_Thread

文章目录 将 FinSH源码添加到工程 开启 FinSH 定义终端读取函数 体验 FinSH 遇到的问题 本文不介绍 RT-Thread 的串口配置,如有需要,可以参考:重映射串口到 rt_kprintf...函数 将 FinSH源码添加到工程 FinSH源码在 RT-Thread 源码目录的 components\finsh\ 目录下, 将其导入到工程中,具体操作这里不做介绍,记得要把头文件包含进来...{ USART_ClearITPendingBit(DEBUG_USARTx, USART_FLAG_ORE); } rt_thread_mdelay...遇到的问题 1.段错误 导致这种错误的原因有很多种,比如 RT_MAIN_THREAD_STACK_SIZE 太小,而我是因为 RT_THREAD_PRIORITY_MAX 设置得太小(只设置为 8)...,小于 FINSH_THREAD_PRIORITY 的默认值 21,所以解决办法就是将 FINSH 的线程优先级(数值)改小或者将系统优先级最大值(数值范围)改大。

2.3K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    RT-thread finsh移植到linux平台

    以下内容摘自RT-Thread FinSH FinSH 是 RT-Thread 的命令行组件,提供一套供用户在命令行与程序交互的操作接口,主要用于调试或查看系统信息。...FinSH移植 FinSH作为RT-Thread的组件, 是以一个独立的线程形式存在, 要将其移植到linux平台,需要对底层相关调用,诸如线程,信号, 标准输入输出等方面进行移植,移植相关的基本介绍可阅读官方提供的...源码下载: RT-Thread源码下载 移植要点 1. os相关 线程创建 RT-Thread中线程创建使用rt_thread_init函数, 在linux平台要使用pthread_create创建线程...rt_thread_startup(&finsh_thread); 信号 RT-Thread中信号接口rt_sem_init等修改为linux平台接口sem_init。...输入输出 输入输出相关的主要是针对命令行输入, 在RT-Thread中是通过串口等方式进行输入输出,而在linux平台,需要修改为终端输入输出,可以使用宏RT_USING_POSIX开启POSIX接口,

    3.2K10

    【玩转 RT-ThreadRT-Thread Studio —— 按键控制电机正反转、蜂鸣器

    文章目录 一、初识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、网络协议栈、安全传输、低功耗组件等等。...四、操作流程 1.新建RT-Thread工程 2.RT-Thread Studio界面介绍 3.代码编写 4.烧录 5.串口监视 五、代码演示 1.头文件 #include <rtthread.h

    1.1K20

    rt-thread系统裁剪指南

    下面我们来从原理层面和实现层面上讲一下rt-thread裁剪相关的知识。...对于Linux来说,系统裁剪就是将不必要的组件或者外设和Linux中的工具去掉,减少系统功能,在uboot中也需要裁剪,合理设计必须初始化的外设,合理算出Linux kernel大小,然后进行跳转。...02 rt-thread具有高度的可裁剪性 RT-Thread 主要采用 C 语言编写,浅显易懂,方便移植。...得益于 RT-Thread 的高度可裁剪性,通过对完整版的裁剪,可以十分便捷的小资源 平台上使用上 RT-Thread。可以通过 env 工具十分方便地进行裁剪,env 工具使用方法如下图所示: ?...06 业务逻辑裁剪 在使用rt-thread操作系统时,往往都是利用rt-thread实现自己的业务逻辑,所以我们在编写自己的代码的时候,也需要充分的理解rt-thread的设计思想。

    1.5K20

    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 操作系统中最小的时钟单位。

    92331

    RT-Thread PIN设备学习笔记

    前面我们学习了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

    1.8K30

    RT-Thread ADC设备学习笔记

    上一节我们学习了RTT的PIN设备的使用,从PIN设备的例程再一次体会到RTT编程的灵活和简单,最重要的是让开发者专注于应用开发,文章链接: RT-Thread PIN设备学习笔记 今天我们来学习RT-Thread...本节,我们将会学习到RT-Thread ADC设备的基本使用。 接下来,我们将基于RT-Thread Studio来构建。...channel ADC 通道 返回 —— 读取的数值 根据API,我们很容易写出以下程序: /* * Copyright (c) 2006-2019, RT-Thread Development...("%s \r\n", procol_buf); } rt_thread_mdelay(100); } rt_free(procol_buf);...所以,在串口终端我们这么来操作就行了: adc_cmd on 打开ADC数据,灯闪烁 adc_cmd off 关闭ADC数据,灯熄灭 关于Finsh解析器,后续我们再出一个专题进行讲解,这个东西就跟Linux

    1.6K10

    RT-thread —- FinSH 控制台

    一、介绍 FinSH 是 RT-Thread 的命令行组件(shell),有了 shell,就像在开发者和计算机之间架起了一座沟通的桥梁,开发者能很方便的获取系统的运行情况,并通过命令控制系统的运行。...二、FinSH 内置命令 2.1、tap键 按下 Tab 键后打印出来的当前支持的所有显示 RT-Thread 内核状态信息的命令。...2.2、显示线程状态 使用 ps 或者 list_thread 命令来列出系统中的所有线程信息,包括线程优先级、状态、栈的最大使用量等。...导出无参数命令时,函数的入参为 void,示例如下: void hello(void) { rt_kprintf("hello RT-Thread!...\n"); } MSH_CMD_EXPORT(hello , say hello to RT-Thread); 导出有参数的命令时,函数的入参为 int argc 和 char**argv 。

    94010

    RT-Thread Nano如何适配pin设备API,并在RT-Thread Nano使用软件包

    本文介绍了如何在 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 标准版的学习,更加简单方便。

    63410

    RT-Thread进阶之网络框架

    4.2.1 添加lwip协议栈软件包 在 RT-Thread Setting 文件中借助图形化配置工具打开软件 lwip 的组件,保存更新。 ?...4.2.3 网络设备层和LAN8720驱动解析 4.2.3.1 网络设备层解析 RT-Thread 的 lwIP 移植在原版的基础上,添加了网络设备层以替换原来的驱动层。...etx 线程接收到邮件后,通过调用驱动中的 rt_stm32_eth_tx() 函数发送数据,发送完成之后再发送一次 tx_ack 信号量唤醒 LwIP 网络设备介绍: RT-Thread 网络设备继承了标准设备...网络设备层的“erx” 接收线程会阻塞在获取 eth_rx_thread_mb 邮箱上,当它接收到邮件时,会调用 rt_stm32_eth_rx 去接收数据。...网络设备层的“etx” 发送线程会阻塞在获取 eth_tx_thread_mb 邮箱上, 当它接收到邮件时,会调用 rt_stm32_eth_tx 来发送数据。

    1.7K40

    (二)RT-Thread入门——线程管理

    rt_err_t rt_thread_delete(rt_thread_t thread)// 参数是结构体指针,返回值是一个错误码 参数 描述 thread 要删除的线程句柄 返回 错误码 RT_EOK...线程脱离函数如下: rt_err_t rt_thread_detach (rt_thread_t thread); 参数 描述 thread 线程句柄,它应该是由 rt_thread_init 进行初始化的线程句柄...,可以调用如下函数接口: rt_err_t rt_thread_control(rt_thread_t thread, rt_uint8_t cmd, void* arg); 函数参数 描述 thread...挂起线程         线程挂起使用下面的函数接口: rt_err_t rt_thread_suspend (rt_thread_t thread); 参数 描述 thread 线程句柄 返回...rt_err_t rt_thread_resume (rt_thread_t thread); 参数 描述 thread 线程句柄 返回 —— RT_EOK 线程恢复成功 -RT_ERROR 线程恢复失败

    62820

    rt-thread的内存管理分析

    rt-thread的内存管理分析 1.概述 2.静态内存与动态内存 3.小内存管理 4.slab内存管理 4.1 rt-thread上slab基本介绍 4.2 rt-thread上slab内存的管理 5...本文主要从RT-Thread的内存管理策略的角度出发,梳理一下目前RT-Thread系统中的内存管理,同时从实际应用的角度出发,选择合适的方案进行内存管理。...3.小内存管理 rt-thread的小内存管理算法是一种比较简单的内存分配管理算法。应用的场景在内存在1MB以下使用比较合适。...RT_USING_MEMTRACE #ifdef ARCH_CPU_64BIT rt_uint8_t thread[8]; #else rt_uint8_t thread[4];...4.slab内存管理 4.1 rt-thread上slab基本介绍 RT-Thread 的 slab 分配器是在 DragonFly BSD 创始人 Matthew Dillon 实现的 slab 分配器基础上

    1.5K40

    RT-Thread 中的多线程

    RT-Thread 中的多线程 博主介绍 RT-Thread 线程管理和调度 系统线程 空闲线程 主线程 线程管理 RT-Thread 自动初始化机制 在新线程控制LED RT-Thread 线程管理和调度...线程通过调用函数rt_thread_create/init()进入到初始状态(RT_THREAD_INIT);初始状态的线程通过调用函数 rt_thread_startup() 进入到就绪状态(RT_THREAD_READY...挂起状态的线程,如果调用rt_thread_delete/detach() 函数,将更改为关闭状态(RT_THREAD_CLOSE);而运行状态的线程,如果运行结束,就会在线程的最后部分执行 rt_thread_exit...(void) { rt_thread_t tid; #ifdef RT_USING_HEAP tid = rt_thread_create("main", main_thread_entry, RT_NULL..., RT_MAIN_THREAD_STACK_SIZE, RT_MAIN_THREAD_PRIORITY, 20); RT_ASSERT(tid !

    61720
    领券