首页
编程日记
ChatGpt专题
LINUX学习
Java学习
前端教程
单片机
spring boot
开发板评测
udp
排序算法
Linux驱动开发
ajax
自动控制
Nacos
DOM型XSS
wasm
产品设计误区
软考高级系统架构设计师系列
cloudera
运算符重载
SpringSecurity
three.js
linux安装qt
原型模式
IO-Link
数据驱动
实时操作系统
2024/4/12 16:23:03
RT-Thread学习笔记 --(8)RT-Thread时钟管理学习总结
RT-Thread时钟管理学习总结 时间,不管在任何生活场合,都是一个非常重要概念。试想一下,假如没有了时间,这个世界几乎所有的事物都会乱套,但同时很多科学家也会提出疑问,在客观世界里面,时间是真…
阅读更多...
uCOSii的任务延时和软件定时器
uCOSii的任务延时和软件定时器 1、心跳节拍 操作系统的心跳节拍称为一个Tick。uCOSii中有一个专用的心跳节拍函数:OSTimeTick(),每调用一次,系统时间计数器OSTime计数器就会加1次。为了能调用这个心跳节拍函数,我们使用CPU的滴答…
阅读更多...
STM32F103 移植FreeRTOS (附FreeRTOS源码和移植工程)
文章目录前言1. 移植FreeRTOS2. 测试FreeRTOS3. 移植工程前言 该篇环境为:STM32F103ZET6、Keil 库函数版本 F4、F7、H7移植同理。 FreeRTOS源码: 链接:https://pan.baidu.com/s/10l8TmseEJKkFdwFY3qZc1Q?pwd8uqw 提取码:8uqw…
阅读更多...
【uC/OS-III篇】uC/OS-III 创建第一个任务(For STM32)
uC/OS-III 创建第一个任务(For STM32) 日期:2024-3-30 23:55,结尾总结了今天学习的一些小收获 本博客对应的项目源码工程 源码项目工程 1. 首先定义错误码变量 // 用于使用uC/OS函数时返回错误码 OS_ERR err; 2. 定义任务控制…
阅读更多...
MKRTOS MCU上的微内核操作系统
MKRTOS 全称是 Micro-Kernel Real-Time Operating System,中文名字是微内核实时操作系统。MKRTOS 是首款在开源的支持MCU的微内核操作系统。未来还将在MCU上支持虚拟化!!下载地址:https://gitee.com/IsYourGod/mkrtos-realMKRTOS被…
阅读更多...
eCos系统CPU负载测量
原文:http://ecos.sourceware.org/docs-latest/ref/services-cpuload.html 译文:http://blog.csdn.net/zoomdy/article/details/17078995 mingdu.zheng <at> gmail <dot> com cpuload组件包提供了一种估算CPU负载的方式。它可以估算最近0.1…
阅读更多...
eCos中断响应详解,基于Cortex-M架构
本文阐述eCos在Cortex-M架构中的中断响应过程。eCos是开源免版税的抢占式实时操作系统。其最大亮点是可配置,与其配套的图形化配置工具提供组件管理、选项配置、自动化单元测试等。官网http://ecos.sourceware.org,中文专业论坛http://www.52ecos.net。 …
阅读更多...
各版本UCOS区别及特性对比
阅读更多...
嵌入式可配置实时操作系统eCos
eCos是为嵌入式应用设计的无版税开放源代码的实时操作系统。eCos的高度可配置性,允许对操作系统进行定制,以精确地匹配应用需求,提供最佳运行时性能和最少硬件资源占用。一个欣欣向荣的网络社区已经围绕eCos成长起来,可以确保持续…
阅读更多...
RT-Thread学习笔记 --(1)RT-Thread开发环境搭建
RT-Thread开发环境搭建 对于学习嵌入式实时操作系统,首先第一步要进行的是搭建好对应的开发环境,只有对应的环境搭建好了,才能进行下一步的开发工作。 RT-Thread为了方便广大开发者进行入门或者深入使用,其官网提供了十分丰富的…
阅读更多...
eCos Synthetic(仿真目标机)实践系列
eCos Synthetic实践(一)——Hello World!eCos Synthetic实践(二)——简单外设eCos Synthetic实践(三)——I/O辅助进程eCos Synthetic实践(四)——网络和VNC服务器
阅读更多...
RT-Thread学习笔记 --(7)RT-Thread中断管理学习总结
RT-Thread中断管理学习总结 前面几篇文章总结了RT-Thread多线程相关内容的学习过程,包括多线程的使用,多线程的同步,多线程的通信,关于多线程相关的学习总结,可以查看以下链接: RT-Thread学习笔记 --&…
阅读更多...
UCOSⅢ的任务状态
UCOSIII 支持的是单核 CPU,不支持多核 CPU,这样在某一时刻只有一个任务会获得 CPU 使用权进入运行态,其他的任务就会进入其他状态,UCOSIII 中的任务有多个状态。在 UCOSIII 中任务可以在这 5 个状态中转换,转换关系如图…
阅读更多...
uCOSIII实时操作系统 三 移植
目录 uCOSIII简介: 准备工作: 准备基础工程: UCOSIII工程源码: UCOSIII移植: 向基础工程中添加相应的文件夹 向工程中添加分组 常见问题: 下载验证: uCOSIII简介: UCOS-I…
阅读更多...
ESP32实践FreeRTOS
将部分代码作为应用程序中的任务独立执行可以简化大型复杂问题的设计。 当有多个 CPU 时,任务支持还允许选定的功能并行运行。 本文将调查 Arduino 框架对 ESP32 系列设备的 FreeRTOS 任务支持。 除了少数例外,本材料适用于您可能遇到的其他使用 FreeRTO…
阅读更多...
uCOSii任务管理
uCOSii任务管理 主要用来测试uCOSii“创建任务,挂起任务,恢复任务,发送删除任务请求,删除任务”。 在os_cfg.h中 #define OS_LOWEST_PRIO 63u //设置最低优先级为63,则空闲任务优先级OS_TASK_IDLE_PRIO就等于63 //OS_PRIO_SELF为255,因此OS_LOWEST_PRIO<255 注意&a…
阅读更多...
FreeRTOS 任务切换
文章目录一、PendSV 异常二、FreeRTOS 任务切换场合1. 执行系统调用 taskYIELD()2. 系统滴答定时器(SysTick)中断 SysTick_Handler三、PendSV 中断服务函数 PendSV_Handler()四、查找下一个要运行的任务 vTaskSwitchContext()五、FreeRTOS 时间片调度六、时间片调度实验RTOS 系…
阅读更多...
FreeRTOS 队列
1. 简介 1.1 FreeRTOS 中所有的通信与同步机制都是基于队列实现的
阅读更多...
FreeRTOS 任务调度及相关函数详解(一)
文章目录一、任务调度器开启函数 vTaskStartScheduler()二、内核相关硬件初始化函数 xPortStartScheduler()三、启动第一个任务 prvStartFirstTask()四、中断服务函数 xPortPendSVHandler()五、空闲任务一、任务调度器开启函数 vTaskStartScheduler() 这个函数的功能就是开启任…
阅读更多...
实时操作系统与分时操作系统的区别
1. 什么是实时操作系统? 实时操作系统(RTOS)是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统作出快速响应,并控制所有实时任务…
阅读更多...
Cortex-M4之FPU单元
最近在学习实时操作系统,以下是我对学习实时操作系统过程中做的一些笔记。 一、FPU单元 在 Coretex-M4 处理器中有一个可选的单精度 FPU 单元,一般 STM32F429 就有 FPU 单元, 如果使能了 FPU 单元的话就可以使用它来对单精度浮点数进行计算…
阅读更多...
uCOSIII实时操作系统 九 信号量和互斥信号量
目录 信号量: 创建信号量: 请求信号量: 发送信号量: 直接访问共享资源区实验 使用信号量访问共享资源区实验 任务同步实验: 优先级反转 优先级反转实验 互斥信号量 互斥信号量的API 创建互斥型信号量&…
阅读更多...
uCOSii内存管理
uCOSii内存管理(MEMORY MANAGEMENT) OSMemGet()执行一次,只能申请一个节点,由于节点的数据长度是固定的,所以可用内存的长度是固定的,这一点和malloc()不同。 OSMemPut()执行一次,只释放一个节点,这一点和free()用法差不多,不用关心内存的长度,只要知道内存首地址…
阅读更多...
Linux的实时任务调度
通用Linux系统支持实时和非实时两种进程,实时进程相对于普通进程具有绝对的优先级。对应地,实时进程采用SCHED_FIFO或者SCHED_RR调度策略,普通的进程采用SCHED_OTHER调度策略。 在调度算法的实现上,Linux中的每个任务有四个与调度…
阅读更多...
RTT(RT-Thread)串口设备(RTT保姆级教程)
目录 UART串口设备 串口概述 访问串口设备接口 数据发送方法 数据接收方法 串口设备使用流程 串口中断接受实例 串口配置及串口发送 串口中断接收 DMA接收 UART串口设备 串口概述 本章主要介绍串口设备在RT-Thread操作系统中应用层如何使用。关于串口设备的使用&am…
阅读更多...
uCOSIII实时操作系统 八 软件定时器
目录 软件定时器概述 使用步骤: 创建软件定时器: 启动软件定时器: 停止软件定时器: 删除软件定时器: 单次定时器: 编辑周期定时器: 无初始化延时: 有初始化延时ÿ…
阅读更多...
STM32cubeMX配置FreeRTOS----软件定时器
从这篇文章开始就为大家介绍 FreeRTOS, 让大家快速入门 FreeRTOS。 文章目录 前言一、软件定时器的概念,特性1. 概念 :2. 特性 : 二、STM32cubeMX配置软件定时器三、软件定时器函数1. 创建2. 开启3. 停止4. 删除 四、软件定时器实…
阅读更多...
实时操作系统(RTOS)介绍
1 实时操作系统介绍 实时操作系统(RTOS)实时操作系统(RTOS)在维基百科上的定义如下: 实时操作系统(Real-time operating system, RTOS),又称即时操作系统,它会按照排序运行、管理系统资源,并为开发应用程序…
阅读更多...
嵌入式操作系统服务机制
欢迎关注博主 Mindtechnist 或加入【智能科技社区】一起学习和分享Linux、C、C、Python、Matlab,机器人运动控制、多机器人协作,智能优化算法,滤波估计、多传感器信息融合,机器学习,人工智能等相关领域的知识和技术。搜…
阅读更多...
uCOSIII实时操作系统 六 内部任务(空闲函数)
目录 空闲任务: 时钟节拍任务: 统计任务: 定时任务: 中断服务管理任务: 钩子函数: 空闲任务的钩子函数: 空闲任务钩子函数实验: 其他任务的钩子函数: 空闲任务&a…
阅读更多...
RT-Thread 线程间同步【信号量、互斥量、事件集】
线程间同步 一、信号量1. 创建信号量2. 获取信号量3. 释放信号量4. 删除信号量5. 代码示例 二、互斥量1. 创建互斥量2. 获取互斥量3. 释放互斥量4. 删除互斥量5. 代码示例 三、事件集1. 创建事件集2. 发送事件3. 接收事件4. 删除事件集5. 代码示例 简单来说,同步就是…
阅读更多...
uCOSIII实时操作系统 五 任务API(任务挂起与恢复)
任务挂起和恢复 任务挂起: OSTaskSuspend()将任务阻塞,也就是被剥夺CPU的使用权而暂时终止运行,转到阻塞状态,OSTaskSuspend()将任务转到阻塞态被挂起称为任务挂起。被挂起的任务得不到CPU的使用权,也不会参与调度&a…
阅读更多...
制作RedBoot启动光盘以及下载调试eCos应用
eCos是开源免版税的抢占式实时操作系统。其最大亮点是可配置,与其配套的图形化配置工具提供组件管理、选项配置、自动化单元测试等。eCos官网http://ecos.sourceware.org,eCos技术网http://www.52ecos.net,eCos技术网QQ群144940146。 http:/…
阅读更多...
uCOSIII实时操作系统 十 事件标志组
目录 事件标志组: 事件标志组API函数: 创建事件标志组: 等待事件标志组: 向事件标志组发送标志: 事件标志组实验: 事件标志组: 有时候一个任务可能需要和多个事件同步这个时候就需要使用事…
阅读更多...
RTT(RT-Thread)ADC设备(RTT保姆级介绍)
目录 ADC设备 前言 ADC相关参数说明 访问ADC设备 配置ADC设备 ADC实例 硬件设计 软件设计 ADC设备 前言 ADC(Analog-to-Digital Converter) 指模数转换器。是指将连续变化的模拟信号转换为离散的数字信号的器件。 对于ADC的详细介绍和在STM32中的裸机应用可参考以下…
阅读更多...
FreeRTOS从代码层面进行原理分析(1 任务的建立)
FreeRTOS_分析 FreeRTOS 是一个开源的实时操作系统。可以在很的低内存使用的情况下运行在单片机上,使得单片机可以并发(虽然某一时刻还是只有一个任务运行) 的运行程序。关于一些 FreeRTOS 优缺点的介绍文章很多,这里就不再赘述直接深入代码探究原理。 …
阅读更多...
【uC/OS-III篇】uC/OS-III 移植到 STM32 简明教程
uC/OS-III 移植到 STM32 简明教程 一、uC/OS-III 介绍 二、获取UCOS-III源码 三、建立项目工程 四、解决工程编译报错 五、修改项目文件 下一篇博客: 【uC/OS-III篇】uC/OS-III 创建第一个任务(For STM32) 移植后的工程自取方式…
阅读更多...
FreeRTOS 内存管理
文章目录 一、FreeRTOS 内存管理简介二、 内存碎片三、heap_1 内存分配方法1. 分配方法简介2. 内存申请函数详解3. 内存释放函数详解 四、heap_2 内存分配方法1. 分配方法简介2. 内存块详解3. 内存堆初始化函数详解4. 内存块插入函数详解5. 内存申请函数详解6. 内存释放函数详解…
阅读更多...
RT-Thread学习笔记 --(9)RT-Thread内存管理学习总结
RT-Thread内存管理学习总结 在单片机芯片上,如果不考虑出厂固化的ROM空间的话,通常开发者能接触到的存储空间主要分两种:掉电可保存数据的片内FLASH和掉电不可保存数据的片内RAM。 片内RAM(通常理解为内存)的访问速度…
阅读更多...
获取eCos堆栈使用情况
本文介绍如何获得eCos系统的线程堆栈和中断堆栈使用情况。eCos是开源免版税的抢占式实时操作系统。其最大亮点是可配置,与其配套的图形化配置工具提供组件管理、选项配置、自动化单元测试等。eCos官网http://ecos.sourceware.org,eCos技术网http://www.5…
阅读更多...
使用nm分析eCos应用的内存使用情况
eCos是开源免版税的抢占式实时操作系统。其最大亮点是可配置,与其配套的图形化配置工具提供组件管理、选项配置、自动化单元测试等。eCos官网 http://ecos.sourceware.org,eCos技术网 http://www.52ecos.net,eCos技术网QQ群144940146。 ming…
阅读更多...
eCos仿真目标机(1)——简介
原文:http://ecos.sourceware.org/docs-latest/ref/synth.html 译文:http://blog.csdn.net/zoomdy/article/details/8887459 mingdu.zheng <at> gmail <dot> com 通常情况下,eCos运行在针对特定应用定制的板子上,或者…
阅读更多...
eCos仿真目标机(3)――运行eCos应用
原文:http://ecos.sourceware.org/docs-latest/ref/synth-running.html 译文:http://blog.csdn.net/zoomdy/article/details/17306519 mingdu.zheng <at> gmail <dot> com 关键词 执行――参数和配置文件。 描述 为仿真目标机配置和编译…
阅读更多...
eCos仿真目标机(eCos Linux Synthetic Target)
eCos官网:http://ecos.sourceware.org eCos中文技术网:http://www.52ecos.net eCos交流QQ群:144940146。 原文:http://ecos.sourceware.org/docs-latest/ref/hal-synth-arch.html 译文:http://write.blog.csdn.net/pos…
阅读更多...
UCOSⅢ源码文件说明
阅读更多...
Cortex-M3/M4之SVC和PendSV异常
一、SVC异常 SVC(系统服务调用,亦简称系统调用)用于产生系统函数的调用请求。例如,操作系统不让用户程序直接访问硬件,而是通过提供一些系统服务函数,用户程序使用 SVC 发出对系统服务函数的呼叫请求,以这种方法调用它…
阅读更多...
FreeRTOS 任务基础知识
文章目录一、什么是多任务系统?二、FreeRTOS 任务与协程三、任务状态四、任务优先级五、任务实现六、任务控制块七、任务堆栈RTOS 系统的核心就是任务管理,FreeRTOS 也不例外,而且大多数学习 RTOS 系统的工程师或者学生主要就是为了使用 RTOS…
阅读更多...
uCOSIII实时操作系统 五 任务API(时间片轮转API调度)
时间片轮转调度 时间片轮转法:主要用于分时系统中的进程调度。为了实现轮转调度,系统把所有就绪进程按照先入先出的原则排成一个队列的队首进程,让CPU上运行一个时间片的时间。时间片是一个小小的时间单位,通常为5~10ms数量级。当进程用完分…
阅读更多...
LiteOS-任务的创建
声明:遵守华为的“知识共享许可协议说明”。本文源于华为社区的文档《Huawei LiteOS 开发指南》。 链接地址:文档中心 文章摘录: 1、关键点: 1)LiteOS是一个支持多任务的操作系统,任务是竞争系统资源的最…
阅读更多...
FreeRTOS 低功耗 Tickless 模式
文章目录 一、低功耗模式1. 睡眠(Sleep)模式2. 停止(Stop)模式3. 待机(Standby)模式 二、Tickless 模式详解1. 如何降低功耗?2. Tickless 具体实现 一、低功耗模式 STM32 本身就支持低功耗模式,有三种低功耗模式: ● 睡眠(Sleep)模式。 ● 停…
阅读更多...
FreeRTOS 列表和列表项
文章目录一、什么是列表和列表项?二、列表和列表项初始化三、列表项插入四、列表项末尾插入五、列表项的删除六、列表的遍历七、列表项的插入和删除实验一、什么是列表和列表项? 1. 列表 列表是 FreeRTOS 中的一个数据结构,概念上和链表有点…
阅读更多...
uCOSii消息邮箱管理
uCOSii消息邮箱管理 (MESSAGE MAILBOX MANAGEMENT) 消息邮箱主要用于中断和任务之间进行邮件传递,或者是在任务与任务之间进行邮件交换。 1、消息邮箱管理重点需要了解下面几个函数 消息邮箱指针OSMboxCreate(消息邮箱数据块指针) 建立并初始化一个消息邮箱,在初…
阅读更多...
FreeRTOS五种内存管理详解
freeRTOS五种内存管理详解 heap1 源码分析 void * pvPortMalloc( size_t xWantedSize ) {void * pvReturn NULL; // 申请的内存地址static uint8_t * pucAlignedHeap NULL; // 用于指向堆内存的起始地址#if ( portBYTE_ALIGNMENT ! 1 ) // 如果对齐为1则不对齐,…
阅读更多...
~杂记(3):los_dispatch.s和startup.s的作用分析
1、首先LiteOS中los_dispatch.s是系统的调度文件,而startup.s是与硬件相关的启动文件。 如下图所示。根据某芯片开发板工程中的文件内容,简单的勾勒出两者的关系。 其中: 1)LOS_StartToRun()会在main中被…
阅读更多...
FreeRTOS中PendSV和SysTick的中断优先级和SVC系统调用
PendSV(Pending Supervisor Call)和SysTick是ARM Cortex-M处理器内核中的两个重要的中断源,它们具有不同的中断优先级。 PendSV中断优先级: PendSV中断是用于实现任务切换的中断,在操作系统中常被用于进行上下文切换。…
阅读更多...
RT-Thread 线程间通信【邮箱、消息队列、信号】
线程间通信 一、邮箱1. 创建邮箱2. 发送邮件3. 接收邮件4. 删除邮箱5. 代码示例 二、消息队列1. 创建消息队列2. 发送消息3. 接收消息4. 删除消息队列5. 代码示例 三、信号1. 安装信号2. 阻塞信号3. 解除信号阻塞4. 发送信号5. 等待信号6. 代码示例 一、邮箱 RT-Thread 操作系…
阅读更多...
RT-Thread学习笔记 --(6)RT-Thread线程间通信学习总结
RT-Thread线程间通信学习总结 前两篇文章总结了RT-Thread多线程以及多线程同步的学习过程,关于前两篇学习总结,可以查看以下链接: RT-Thread学习笔记 --(4)RT-Thread多线程学习总结 RT-Thread学习笔记 --࿰…
阅读更多...
RT-Thread学习笔记 --(4)RT-Thread多线程学习总结
RT-Thread多线程学习总结 多线程是实时操作系统里面最重要的知识点之一,要学习RTOS,多线程是必须(没错,是必须)要熟练掌握的内容,只有熟练掌握多线程的使用,才能在平时的项目工作里面用好实时操…
阅读更多...
ucosIII任务调度原理解析
μcosIII任务调度原理解析前言μcosIII任务调度相关的数据结构任务控制块 OS_TCB就绪任务表结构就绪任务表定义(os.h):μcosIII时间节拍轮时钟节拍轮定义任务阻塞表任务调度实现细节任务调度点时钟节拍轮相关调度任务阻塞表相关调度就绪任务表相关调度其…
阅读更多...