E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
Rt-Thread
skawu
RT-Thread
学习笔记(二)---线程创建及任务间通信之中断锁
源代码github网址:https://github.com/skawu/RT-Thread-STM32F103ZET6,在分支idcard中。直接贴代码:创建一个文件,内容如下:#include#include"thread_test.h"#include#include/*一、动态线程初始化两个动态线程,它们拥有相同的入口函数,相同的优先级但是它们的入口参数不同二、任务间同步与通信关闭中断进行
EmbededCoder
·
2020-07-28 13:35
RTT
RT-Thread
: 添加SPI Flash设备和文件系统
文章目录添加spi核心代码stm32f10x_spi_bus.c启动文件系统关键字:rtthreadspiflash,文件系统RTT版本:4.0.1随着RTT版本不断的更新,RTT已经支持越来越多的组件了,spi当然也不例外。spi子系统的核心部分已经实现好了,我们只需要添加和硬件相关的部分即可。如果不熟悉可以在其他bsp下查找相关的驱动,模仿即可。添加spi核心代码由于我用的是GD25Q16,所
GetOuttaMyGalaxy
·
2020-07-28 13:25
RT-Thread
使用STM32编写一个简单的RTOS:2.对象管理
文章目录内核对象管理架构代码分析参考资料:RTT官网文档关键字:分析
RT-Thread
源码、stm32、RTOS、对象管理器。
GetOuttaMyGalaxy
·
2020-07-28 13:25
RT-Thread
使用STM32编写一个简单的RTOS:1.调度(二、调度器)
文章目录调度器调度器的策略调度算法代码分析总结调度器流程实验平台:stm32f10x(cortex-m3)开发板,RTT3.0资料来源:RTT官网文档及cortex-M3权威指南关键字:分析
RT-Thread
GetOuttaMyGalaxy
·
2020-07-28 13:25
RT-Thread
RT-Thread
直接使用spi flash设备
文章目录如果我们不想使用文件系统,要直接读写spiflash,直接调用read和write就行了,但是read和write是读写一个扇区的,不能随机地址读写,如果要随机读写一个地址,需要对其进行封装一下。这里直接上代码了,代码也比较简单,就不注释了。#include"spi_flash.h"#include#defineSPI_FLASH_SECTOR_MAX_SIZE4096staticstru
GetOuttaMyGalaxy
·
2020-07-28 13:25
RT-Thread
RT_Thread_VS2017仿真
RT_Thread_VS2017仿真RT_Thread_VS2017仿真说明具体步骤1下载rtthread的官方源代码3搭建scons编译环境3编译生成vs项目4修改5运行1.说明VS版本:VS2017社区版
RT-Thread
天邪丶无双
·
2020-07-28 13:43
RT-Thread
内核源码分析-优先级反转代码实现
目录优先级反转概念如何解决优先级反转优先级继承代码实现分析优先级反转概念优先级反转是指一个低优先级的任务持有一个被高优先级任务所需要的共享资源。高优先任务由于因资源缺乏而处于受阻状态,一直等到低优先级任务释放资源为止。而低优先级获得的CPU时间少,如果此时有优先级处于两者之间的任务,并且不需要那个共享资源,则该中优先级的任务反而超过这两个任务而获得CPU时间。如果高优先级等待资源时不是阻塞等待,而
挥剑踏苍穹
·
2020-07-28 13:38
嵌入式开发
优先级反转
优先级继承代码实现
RT-Thread
内核源码分析-消息队列实现原理
目录概念消息队列消息队列初始化消息队列-发送消息消息队列-读取消息总结概念消息队列本质上是存放消息的链接表,存放在内核中,内核通过维护这个链表来维护消息队列。消息队列的初始化就相当于创建一个空闲的链表,能够存放一定数量的消息;向消息队列发送消息,就是向这个链表中插入一个新节点;从消息队列中都数据,实际就是从链表中删除一个节点。消息队列消息队列结构体如下:structrt_messagequeue{
挥剑踏苍穹
·
2020-07-28 13:05
嵌入式开发
RT-Thread
内核源码分析-信号量实现原理
目录概念信号量基本操作信号量初始化获取信号量释放信号量总结概念信号量机概念是由荷兰科学家Dijkstr(就是解决了最短路径问题的那哥们)引入,它是用来协调不同进程间的数据对象的,信号量本质上而言是一个计数器,记录了某个资源的存取情况,用来为多个进程共享的数据结构提供受控访问。在不同的操作系统平台,都有信号量的实现,虽然各个平台在实现上和概念上有些区别,却始终离不开如下几个功能:1.信号量初始化创建
挥剑踏苍穹
·
2020-07-28 13:05
嵌入式开发
RT-Thread
Nano 简介
RT-ThreadNano是一个精炼的硬实时内核,内存资源占用极小,功能包括任务处理、软件定时器、信号量、邮箱和实时调度等相对完整的实时操作系统特性。MDK5以后采用pack形式管理芯片及各种相关组件,RT-ThreadNano也是通过MDKpack方式发布,RT-ThreadNanopack包括devicedrivers、kernel和shell(msh)三部分功能,用户可以从MDK的Run-t
道亦无名
·
2020-07-28 13:33
嵌入式家园
嵌入式
RTOS 在 stm32f407 探索者上的移植(三)
rt-thread
v4.0.1 移植
下载从https://www.rt-thread.org/中下载rt-threadv4.0.1已经做了stm32f407正点原子探索者开发板的移植配置cdrt-thread/bsp/stm32/stm32f407-atk-explorer修改rtconfig.py20行EXEC_PATH=r'/usr/bin'scons--target=makefile生成Makefileconfig.mksrc
__pop_
·
2020-07-28 13:26
RTOS
RT-Thread
内核实现(1)
1.编写main函数一个工程如果没有main函数是编译不成功的,会出错。因为系统在开始执行的时候先执行启动文件里面的复位程序,复位程序里面会调用C库函数__main,__main的作用是初始化好系统变量,如全局变量,只读的,可读可写的等等。__main最后会调用__rtentry,再由__rtentry调用main函数,从而由汇编跳入到C的世界。这里面的main函数就是我们自己写的。2.软件仿真设
1234567啦啦啦
·
2020-07-28 13:30
嵌入式
RT-Thread
内核--双向链表
#definert_inline static__inline1、双向链表的结构体定义/** *DoubleListstructure */structrt_list_node{ structrt_list_node*next; /**next=l->prev=l; /*链表的下一个节点和上一个节点均指向自己*/}3、在一个链表后面插入一个
tyustli
·
2020-07-28 12:43
RTOS
RT-Thread
内核-宏 RT_LIST_OBJECT_INIT
1、定义#defineRT_LIST_OBJECT_INIT(object){&(object),&(object)}2、作用RT_LIST_OBJECT_INIT用于初始化一个双向链表,使双向链表的前一个节点和后一个节点的指针均指向自己。3、示例程序#include/***@briefinitializealistobject*/#defineRT_LIST_OBJECT_INIT(object
tyustli
·
2020-07-28 12:42
RTOS
RT-Thread
——线程管理
2.线程的调度
RT-Thread
提供的线程调度器是基于优先级的全抢占式调度,但中断函数和临界段程序是不可抢占的。系统总共支持256个优先级,即0~255,数值越小,
tuxinbang1989
·
2020-07-28 12:02
RT-Thread操作系统
RT-Thread
消息队列(message queue)的使用
1.消息队列的概念和特性消息队列,顾名思义,就是多条消息排成的队列,是线程间或线程与中断间传送信息的数据结构,且长度不固定。特性:①消息队列遵循先进先出原则(FIFO),即线程先得到的消息是先进入消息队列的消息;而且,等待消息的线程优先级最高的首先获得消息。②一个线程可以从任意一个消息队列接收和发送信息;多个线程也可以从一个消息队列接收和发送信息。③能发送紧急消息,紧急消息是往队列头发送消息。2.
tuxinbang1989
·
2020-07-28 12:02
RT-Thread操作系统
RT-Thread
使用注意事项(一)
1.硬件的初始化硬件的初始化和RTT系统初始化已经在main函数之前完成,即在component.c文件中的rtthread_startup()函数中完成了。所以在main函数中,只需要创建线程和启动线程即可。2.不同源文件相同变量的引用被外部文件引用的变量要放在头文件中声明,例如main.c要引用board.h中的变量temp,分两步:①在board.h中用extern修饰并定义;externi
tuxinbang1989
·
2020-07-28 12:31
RT-Thread操作系统
RT-Thread
视频教程、工具、源码、文档
最近一直在学习RTT,主要的资料来源就是官网的文档及一些直播等,但是本人不喜欢墨迹,看教程不开两倍速往上不得劲,所以为了以后方便查看就把直播和教程都录下来了,把官方提供的工具和源码也都整理过来了,还有官网的在线文档也整理成了PDF(别问我干嘛这么做,前几天在公司实习实在没事的干),我所找到的资料基本都在这了,想学习RTT的小伙伴可以下载学习,入门加提高还是不错的,而且RTT现在出的教程不多,所以先
唯恋殊雨
·
2020-07-28 12:17
RT-Thread
之线程的诞生与消亡史
1、引言本文基于Cotex-M内核处理器分析讨论
RT-Thread
中线程从创建到消亡的整个详细过程。
suny1234
·
2020-07-28 12:38
rt-thread
从零创建工程文件笔记
1官网下载
rt-thread
源码v4.0.1版本(最新)2桌面上新建文件夹zwin-mb-test-01(随便命名不要有中文)里面再新建bsp文件夹3复制源码路径
rt-thread
/下所有的文件除了bsp
sqeasww
·
2020-07-28 11:45
笔记
RT-Thread
内核移植
记录代码移植过程,成功一步记录一步第一步:建立裸机程序使用STM32CubeMx建立一个裸机程序生成MDK5工程第二步:参考0-bare-metal完成board.c、board.h文件在Drivers组下添加board.c、board.h文件添加board.c文件实现board.c里面关于关于时钟配置、串口初始化、GPIO初始化等函数voidbsp_uart_init(void){MX_USAR
spu20134823091
·
2020-07-28 11:44
RT-Thread
RT-THREAD
自动初始化详解
RT-THREAD
自动初始化详解标签:
RT-Thread
自动初始化原理详解目录一、前言1.1、一般情况的初始化调用1.2、使用自动初始化后二、引入三、自动初始化原理3.1、6个自动初始化宏的定义3.2、
spp1462
·
2020-07-28 11:12
stm32
Rtthread
3.RT-Thread线程的创建与删除,动态线程、静态进程
在实际应用中,经常添加多个.c文件和.h文件,
RT-Thread
借助自动构建系统--Scon,它会自动添加你的.c和.h文件到你的工程中,Scon工具根据package-kernel目录下的SConscripts
雨田2017
·
2020-07-28 11:57
RT-Thread学习笔记
【
RT-Thread
作品秀】使用RTThread和TouchGFX实现DIY数字仪表
通过本项目涉及到的技术有:
RT-Thread
系统、TouchGFX、MQTT、HTTP、JSON、微信小程序、面向对象编程思想等。每个关键词里都有很多值得深究的技术细节。
Aladdin Wang
·
2020-07-28 11:24
AIOT系列开源项目教程
RT-Thread
进阶笔记之内核架构
文章目录1、
RT-Thread
软件架构2、
RT-Thread
内核结构3、预备知识3.1链表3.2节点3.2.2节点初始化3.2.3在双向链表表头后面插入一个节点3.2.4在双向链表表头前面插入一个节点3.2.5
Aladdin Wang
·
2020-07-28 11:23
RT-Thread
RT-Thread
代码启动过程与线程切换的实现
文章目录1、
RT-Thread
代码启动过程1.1启动流程图1.2以MDK为例1.3总结2、
RT-Thread
线程切换过程2.1实现就绪列表2.1.1.实现就绪列表2.1.2将线程插入就绪列表2.2实现调度器
Aladdin Wang
·
2020-07-28 11:23
RT-Thread
RT-Thread
进阶笔记之网络框架
文章目录1、网卡组件(netdev)1.1netdev数据结构1.2网卡列表和默认网卡1.3网卡注册1.2注销网卡1.3获取网卡对象1.4设置网卡信息1.5获取网卡信息1.6默认网卡自动切换1.7FinSH命令2、套接字组件(SAL)2.1SAL简介2.2SAL原理2.3数据结构2.4SALSocketAPI介绍2.5BSDSocketAPI介绍3、AT组件3.1AT组件简介3.2ATClient
Aladdin Wang
·
2020-07-28 11:23
RT-Thread
RT-Thread
进阶笔记之虚拟文件系统
文章目录1.引入1.1文件系统引入1.2虚拟文件系统引入2DFS简介3DFS框架4DFS数据结构5虚拟文件系统使用步骤5.1初始化DFS组件5.2注册具体类型的文件系统5.3挂载文件系统5.4卸载文件系统6文件系统实例演示6.1devfs文件系统6.1.1简介6.1.2注册devfs文件系统6.1.2挂载devfs文件系统6.1.3测试devfs文件系统6.2RomFS文件系统6.2.1简介6.2
Aladdin Wang
·
2020-07-28 11:23
RT-Thread
【DIY数字仪表】使用TouchGFX的MVP架构来实现GUI和硬件的双向交互(2)
目录:0.STM32F429使用STM32CUBMX5.6移植touchGFX4.131.使用MVP架构来实现GUI和硬件的双向交互2.STM32F429移植TouchGFX到
RT-Thread
系统实战
Aladdin Wang
·
2020-07-28 11:52
AIOT系列开源项目教程
touchgfx
STM32F429
MVP
rtthread
RT-Thread
进阶笔记之FinSH组件
FinSH组件原理介绍2.1finshshell的结构2.2FinSH线程2.3FinSH的输入2.4FinSH的输出2.4.1创建并注册串口设备:2.4.2打开串口设备:1、FinSH组件介绍FinSH是
RT-Thread
Aladdin Wang
·
2020-07-28 11:52
RT-Thread
RT-Thread
程序内存分布
RT-Thread
程序内存分布一般MCU包含的存储空间有:片内Flash与片内RAM,RAM相当于内存,Flash相当于硬盘。编译器会将一个程序分类为好几个部分,分别存储在MCU不同的存储区。
bibiclb
·
2020-07-28 11:12
#
rtt
rt-thread
如何使用线程,把自己的函数运行到系统线程里
2017年3月5日做的ppt,当时是参加了学校的机器人实验室,奈何那时本人c没有精通,遇到void*指针、extern引用都看不懂,加上这些东西完全自学、rtt的资料在网上能查到的也不多……最后放弃了。偶然翻出来那时的“研究成果”,也算是勾陈一下吧。startup.c是系统的代码那个绿色的demo_thread_creat()就是自己写的函数test.c是自己新建的代码总结:1.main()调用线
超自然祈祷
·
2020-07-28 11:12
linux
shell
操作系统
RT-Thread
创始人熊谱翔: 我和Linux、嵌入式实时操作系统
RT-Thread
本文转载至:http://www.rt-thread.org/dynamic/78.html接触Linux说起Linux应该从我在校园时期说起。我是在山城——重庆邮电学院念的书,1998年时宿舍伙伴一起凑的钱买的电脑,因为对各种软件感兴趣,所以也装了各种操作系统,DOS,Windows,Linux,FreeBSD等都装过,当时觉得能够在Dos/Windows之外接触到一种全新的操作系统非常兴奋,特
HaveFunInLinux
·
2020-07-28 10:10
内核
RT-Thread
源码详解(一)-----PIN设备
在开篇还是要感谢
RT-Thread
开发团队,感谢他们开发出这么优秀的物联网操作系统,当听到国产的操作系统,总是有一种自豪感。
lucas_sane
·
2020-07-28 10:21
RT-Thread
RT-thread
笔记(一)
#include#include#defineTHREAD_PRIORITY20#defineTHREAD_STACK_SIZE512#defineTHREAD_TIMESLICE5/*同时访问的全局变量*/staticrt_uint32_tcnt=0;voidthread_entry(void*parameter){rt_uint32_tno;rt_uint32_tlevel;no=(rt_ui
zomejy
·
2020-07-28 09:52
RT-thread
线程
调度
RT-Thread
—线程挂起与恢复
文章目录为什么要线程管理线程的五种状态线程挂起函数rt_thread_suspend()线程恢复函数rt_thread_resume()为什么要线程管理在RTT中,线程是竞争系统运行资源的最小运行单位,而且RTT是一个支持多线程的操作系统,所以就会有各种线程要占用CPU的资源。由于线程都是独立的,每个线程都有单独的堆栈空间、运行状态…所以,在线程进行切换的时候就很有必要保存每个线程的相关信息,即线
蜡笔小新没有博客
·
2020-07-28 09:51
RT-Thread
RT-Thread
—创建线程的俩种方式
文章目录概述静态创建定义线程栈定义线程函数定义线程控制块初始化线程启动线程函数动态创建概述创建线程三要素:1.线程栈2.线程控制块3.线程主体函数在RTT中线程的创建方式有俩种:静态创建动态创建从字面意思上还是比较好理解俩种方法的,静态创建就是提前申请好一点的空间,动态创建就是根据所需空间大小自动分配空间。静态创建所谓静态创建,就是在SRAM中提前给线程划分一部分内存空间,与线程有关的所有内存都在
蜡笔小新没有博客
·
2020-07-28 09:21
RT-Thread
Notes on learning
RT-Thread
——线程状态及状态转换
在
RT-Thread
中,线程包含五种状态,操作系统会自动根据它运行的情况来动态调整它的状态。
HBX_1024
·
2020-07-28 09:15
RT-Thread
新建
RT-Thread
工程—软件仿真
目的:新建一个具有软件仿真的
RT-Thread
工程建立工程文件夹建立工程文件夹用来存放工程文件。在此文件下按下图进行其他文件夹的创建。
HBX_1024
·
2020-07-28 09:43
RT-Thread
STM32
KEIL
RT-Thread
学习笔记:四、添加PIN报错rt_pin_mode问题
文章目录1.发现问题2.解决方法1.发现问题初始化没有控制LED程序,自己加了就报错rt_pin_mode(LED0_PIN,PIN_MODE_OUTPUT);就这这个函数一旦添加,就报错添加了pin.h,另外在软件中添加了路径,还是不行2.解决方法左侧是我使用的芯片,右侧是支持BSP例程的,区别就在这个头文件里具体是添加这两个头文件rtdevice.h的作用就是包含pin.h验证直接使用pin.
郭建文R
·
2020-07-28 09:10
RT-Thread
RT-Thread
学习笔记:二、通俗易懂学会线程时间片轮转调度
时间片轮转调度是多个相同优先级线程进行线程调度的主要方式。所谓时间片轮转,就是每个线程仅在属于自己的时间片内处于运行态,时间片超出时,系统调度器依次运行接下来的任务,类似于音乐播放器的列表顺序播放模式。创建两个动态任务,注意句柄和入口函数的使用!/*优先级、线程栈、时间片*/#defineTHREAD_STACK_SIZE1024#defineTHREAD_PRIORITY20#defineTHR
郭建文R
·
2020-07-28 09:10
STM32笔记
rt-thread
nano移植msh/finsh
1、首先准备一个正常的工程2、在keil中,将rtthread的nano包加进工程中3、准备串口驱动添加图中的文件进工程,记得添加相关路径。先搞好rt_hw_console_output、rt_hw_console_getchar这两个函数,具体代码如下:voidrt_hw_console_output(constchar*str){rt_size_ti=0,size=0;chara='\r';_
Sola_Ex
·
2020-07-28 09:22
STM32
RT-Thread
中rt_kprintf()函数所指向的串口号修改
如果我们使用
RT-Thread
开源的Bsp模板程序,里面所用的rt_kprintf()函数所指向的串口号大部分默认是指向uart1,也可能是指向其他串口号,若要修改为自己板子所对应的串口号,那么我们就需要手动去修改
Ming天过后
·
2020-07-28 09:46
RT-Thread
Rt-Thread
学习笔记-----线程创建(三)
经过之前的RtThread的移植,我们接下来进行简单地线程创建。从点灯开始吧。RtThread的API参考书册一、新建LED底层野火的bsp_led驱动。由于板子是原子的(我不是花心,我是成年人,小孩子才做选择,我都要)所以更改相应配置(LED1/PE5、LED2/PB5)二、创建单线程——SRAM静态内存/*********************************************
ZML_1009
·
2020-07-28 08:21
RTOS
设备与驱动之串口驱动
应用程序通过
RT-Thread
提供的I/O设备管理接口来访问串口硬件,相关接口如下所示:函数描述rt_device_find()查找设备rt_device_open()打开设备rt_device_read
且偷浮生半日闲
·
2020-07-28 08:26
rtt篇
RT_Thread最强学习笔记之创建线程(任务)
前言:今天学习了
RT-Thread
如何创建线程,由于我就接触过两款RTOS,一个是freeRTOS,一个是
RT-Thread
,所以我对比者来看,两款RTOS建立线程的过程差的不是很多,基本时如出一辙。
l明天你好
·
2020-07-28 08:57
RT-Thread
RT-Thread
入门(二) 线程的创建和管理
RT-Thread
新建进程动/静态进程及线程的管理上一节我们已经建立了一个空白的
RT-Thread
工程,但这个工程只有一个进程main,今天我们在上次的基础上继续学习,通过创建多个进程感受
RT-Thread
小小小白123
·
2020-07-28 08:52
RT-Thread
stm32
RT-Thread
入门(三) 定时器
RT-Thread
入门之定时器上一篇文章我们学习了
RT-Thread
建立线程相关函数,这次我们将学习系统中一个很重要的功能:定时器。
小小小白123
·
2020-07-28 08:21
RT-Thread
stm32
RT-Thread
在正点原子apollo上使用IIC读取AP3216
1.AP3216在STM32IGT6的PH4、PH5上,地址为0x1E,AP3216为标准IIC器件。2.写操作,根据读写时序,传输的structrt_i2c_msg的addr设置为0x1E,flags设置为RT_I2C_WR,数据长度len为2,buf指向长度为2的数组,第一个数据为AP3216寄存器地址,第二个为要写入寄存器的值,然后使用rt_i2c_transfer()函数就可以了。3.读操
nuaa_qianjin
·
2020-07-28 08:53
RT-Thread
学习记录4 线程的时间片轮询调度
RT-Thread
最大支持256个优先级,数值越小的优先级越高,0为最高优先级,最低优先级预留给空闲线程;用户可以通过rt_config.h中的RT_THREAD_PRIORITY_MAX宏来修改最大支持的优先级
Surferqing_
·
2020-07-28 07:25
rt_thread
上一页
23
24
25
26
27
28
29
30
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他