rtos相关内容

STM32 RTOS计时器中断和线程

我正在处理一个项目,在该项目中,我需要从Tim中断中执行2段代码。其中一个的优先级略高于另一个,两者都将在两个不同的计时器上运行(当然不是在相同的时间间隔)。由于两个计时器成比例(一个为1 KHz,一个为8 GHz),两个将同时触发。 因为我已经将RTOS中间件用于其他目的(优先级也比这些低得多的线程),所以我想为每个例程创建一个线程。 然而,看看cubeMX是如何生成代码的,我甚至想 ..
发布时间:2022-04-10 17:34:19 其他开发

谁在 OS 中调度调度程序 - 这不是先有鸡还是先有蛋的场景吗?

谁调度调度器? 第一个任务是创建的,第一个任务是如何创建的?它不需要任何资源或内存吗?不像是先有鸡还是先有蛋的场景? 调度器不是任务吗?它是否在每个时间片结束时获取 CPU 以检查需要为哪个任务分配 CPU? 有没有什么好的环节可以让人深入思考和理解所有这些概念,而不是散布一些需要心血来潮的理论? 解决方案 调度器被调度 一个(外部)事件,例如中断、(磁盘完成、鼠标 ..
发布时间:2022-01-11 23:22:50 其他开发

基于轮询或中断的方法

什么时候应该使用轮询方法,什么时候应该使用基于中断的方法?有没有可以同时使用的场景? 解决方案 如果感兴趣的事件是: 异步 紧急 不常见 那么基于中断的处理程序就有意义了. 如果感兴趣的事件是: 同步(即你知道什么时候在一个小窗口内期待它) 不紧急(即缓慢的轮询间隔没有不良影响) 频繁(即您的大多数轮询周期都会产生“命中") 那么轮询可能更合适. ..
发布时间:2022-01-11 23:05:00 其他开发

什么使内核/操作系统具有实时性?

我正在阅读这个文章,但我的问题是笼统的,我在考虑以下几点: 内核是否可以仅仅因为具有实时调度程序而被称为实时内核?或者换句话说,假设我有一个 linux 内核,如果我将默认调度程序从 O(1) 或 CFS 更改为 real time scheduler,它会成为实时操作系统吗? 它是否需要硬件的任何支持?一般来说,我见过具有 RTOS 的嵌入式设备(例如 VxWorks、QNX),这些设备 ..
发布时间:2022-01-04 22:23:52 服务器开发

从 freeRTOS 运行应用程序

我目前正在为我公司正在开发的消费电子产品开发操作系统.我已经决定将 freeRTOS 作为我们操作系统的支柱,并且正在努力在操作系统中实现硬件功能.但是,我遇到了有关从 freeRTOS 中运行 3rd 方应用程序的问题. 最初我认为一个任务是一个应用程序,基本上你有“myapplication.c"和“myapplication.h"包含你所有应用程序必需的功能,代码将驻留在任务内的 fo ..
发布时间:2021-12-30 20:22:27 其他开发

为 Ubuntu 安装 RT Linux 补丁

试图通过修补/安装 RT Linux 来修改内核,使我的通用 Ubuntu 成为实时 Ubuntu,但找不到直接设置.有人可以帮忙完成这些步骤吗? 解决方案 步骤 0 - 创建工作目录 创建工作目录 #移动到工作目录mkdir ~/kernel &&cd ~/内核 步骤 1 - 下载内核和补丁 转到https://www.kernel.org/pub/linux/kerne ..
发布时间:2021-12-12 12:53:56 其他开发

从头开始创建 RTOS

我在读大学四年级,决定使用 MSP432 控制器来解决创建我自己的 RTOS 内核的任务.事实证明这很棘手,我希望得到这样做的人的建议.需要什么总体布局?你在做这件事时有什么经验?我知道这似乎是一项艰巨的任务,但我觉得我能做到.明天我将深入研究并尝试扩展我的知识.我知道这是一个广泛的话题,但如果可能的话,我只是寻求一点建议.非常感谢.希望大家都平安. 解决方案 我建议您学习其中一门课程或书 ..
发布时间:2021-11-17 22:42:28 其他开发

用于小型 ARM 微控制器的 RTOS 内核之间的可量化差异

有许多不同的 RTOS 可用于微控制器.我特别在寻找支持 ARM Cortex M 处理器的 RTOS.另外,我对闭源解决方案不感兴趣. 试图从网站和邮件列表中比较每个 RTOS 的相对优点似乎非常困难,因为它们大多似乎具有相同的功能并做同样的事情.只有在尝试将每个 RTOS 用于某些任务之后,真正的差异才会变得明显. 我知道这是一个有点主观的问题,可能很难回答 - 但肯定有很多人实际 ..
发布时间:2021-11-17 22:14:42 其他开发

抢占和上下文切换的区别

一点介绍, 我目前正在编写一个小的(读取微小的)RTOS 内核,它应该是内核中的大部分内容的整体.但是,我找不到关于下面列出的一些事情的太多信息,这会很有帮助,除此之外,它实际上不是某种大学项目,而是我自愿做的事情. 回答所有问题的一个更好的选择是,如果你能向我推荐一个免费提供的 RTOS(甚至是一本免费的书),最好是用于 arm 的,它实现了用户空间并且是可抢占的(但并不复杂)像Li ..
发布时间:2021-11-17 22:05:31 其他开发

抢占和上下文切换的区别

一点介绍, 我目前正在编写一个小的(读取微小的)RTOS 内核,它应该是内核中的大部分内容的整体.但是,我找不到关于下面列出的一些事情的太多信息,这会很有帮助,除此之外,它实际上不是某种大学项目,而是我自愿做的事情. 回答所有问题的一个更好的选择是,如果你能向我推荐一个免费提供的 RTOS(甚至是一本免费的书),最好是用于 arm 的,它实现了用户空间并且是可抢占的(但并不复杂)像Li ..
发布时间:2021-11-17 02:19:43 其他开发

PTLsim等CAS模拟器如何实现x86硬件的周期精确模拟?

有人能告诉我像 http://www.ptlsim.org/ 这样的 CAS 软件是如何工作的吗?如果既不知道每条指令使用多少周期的信息,也不知道 CPU 分支预测逻辑,它们如何实现周期精度?或者一切都可以通过 NDA 获得? 我想它们在缓存被命中或遗漏时可能非常准确(也许我错了,但我认为预测内部算法更容易),但不知道流水线和超标量是如何实现的,我很困惑如何使仿真周期准确. 因此,理论 ..
发布时间:2021-09-29 19:32:01 其他开发

状态机与微控制器的 RTOS

我偶然发现了一个 免费状态机工具.这似乎用于以图形方式对嵌入式系统进行编程.通过这样做,作者声称生成的代码比使用 RTOS 时更易于维护.该工具基于 UML,很高兴知道,但学习曲线陡峭. 我想知道这里一些更有经验的程序员如何看待这个工具. 我正在为 LM3S5P36 微控制器开发嵌入式应用程序.TI 有一个名为 Code Composer Studio (CCS) 的 IDE.我还没有 ..
发布时间:2021-09-13 20:30:42 其他开发

内核启动后main()的线程上下文

考虑一个具有main()的代码库.调用内核启动函数后,我们就可以运行操作系统了. 现在,在内核启动函数调用之后,代码片段在哪个线程中运行? int main(){/* 做一点事 *//*启动调度程序*/osKernelStart();/* 无限循环 */而(1){/*用户代码*/}} 在给定代码段中,“用户代码"的上下文是什么在此先感谢 解决方案 对于RTOS,除非发生错误, ..
发布时间:2021-05-28 19:19:20 其他开发

当没有用户代码可以运行时,CPU中会发生什么?

操作系统/rtos安排“空闲任务"听起来很合理.在那种情况下,会不会很耗电?(执行空闲任务听起来很合理:while(true){}) 解决方案 这取决于操作系统和CPU架构.在x86(与Intel兼容)上,操作系统可能会执行 HLT 指令,从而使CPU等待直到发生有趣的事情发生,例如硬件中断.据说这仅消耗很少的功率.操作系统将花费的时间报告为"空闲",甚至可以为其分配时间虚构的“闲置"过程 ..
发布时间:2021-04-24 21:04:01 其他开发

在VxWorks Workbench4中将DKM项目作为子项目/附加模块链接到内核映像(VIP)项目

如何使用内核映像(VIP)项目链接/加载DKM项目,以便我可以从内核映像项目的"usrAppInit.c"调用DKM项目(应用程序)的入口点功能,以使应用程序在启动时自动启动?有人可以描述一下步骤或向我指出任何文档吗? 解决方案 将DKM项目添加为VIP的子项目.您可以拖放或打开VIP项目属性,然后从“项目参考"中检查您的DKM项目 在usrAppInit.c中,调用DKM的入口点.您可 ..
发布时间:2021-04-19 20:21:17 C/C++开发

从头开始创建RTOS

我在大学三年级时,决定解决使用MSP432控制器创建自己的RTOS内核的任务.事实证明,这很棘手,我希望获得这样做的人的建议.需要什么总体布局?您这样做的经验是什么?我知道这似乎是一项艰巨的任务,但我觉得自己可以做到.明天我将深入研究,并尝试扩展对此的知识.我知道这是一个广泛的话题,但我只是在寻求可能的建议.非常感谢.我希望每个人都是安全的. 解决方案 我建议您遵循其中的一门课程或一本书. ..
发布时间:2021-04-09 19:29:26 其他开发

在非RTOS系统中是否可以在任务之间进行中断

如果我有一个非RTOS单核系统,一个任务(例如taskA)可以中断另一个任务(例如taskB),而taskA或taskB都不是中断例程吗?还是只能通过非RTOS系统上的ISR(中断服务程序)来中断一项任务? 解决方案 要让您的系统具有多个非ISR线程,则意味着存在某种多任务处理-并且多任务处理并非RTOS所独有. .一个“中断"另一个任务的任务称为“抢占".抢占需要一个抢占式调度器,而RT ..
发布时间:2020-11-30 04:25:51 其他开发

用Real Time Linux开始编程的最佳方法是什么?

尽管我已经用C实现了许多项目,但是我对操作系统完全陌生。我在Discovery板(STM32)上尝试了实时Linux,并获得了正确的LED闪烁结果,但是由于我只是按照步骤进行操作,并且无法在Internet上找到每个步骤的完整说明,因此我并不真正了解整个过程。 p> 我想在实时Linux上实现调度。最好的开始方法是什么?有任何可用的站点,书籍,教程吗? 完整的RTLinux流程描述将受 ..
发布时间:2020-10-29 03:34:46 其他开发