0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

μC/OS实时RTOS技术线上讲座汇总问答

麦克泰技术 来源:麦克泰技术 作者:麦克泰技术 2022-11-15 11:27 次阅读

10月底我们与Weston-embedded和Embedded office专家们成功举办µC/OS实时操作系统系列技术线上讲座。

第二讲是由麦克泰软件技术总监张爱华主讲的µC/OS-II 和 µC/OS-III 内核原理,我们课后整理汇总了一些问答,方便学员以及感兴趣的朋友了解μC/OS,下面就来一起看看有没有你想了解的!

Q是否有μC/OS移植相关的参考资料

A将μC/OS移植到具体的处理器,需要了解处理器的寄存器现场,堆栈处理方式,以实现正确的任务现场保存;需基于处理器汇编指令架构实现任务的上下文切换工作。

建议新手基于官方提供的开发例程,通过分析相同架构的处理器移植代码,完成移植、验证工作。

QμC/OS-III中没有消息邮箱,那用什么服务替代?

A邮箱相当于长度为1的消息队列,μC/OS-III中可以使用队列服务替代邮箱的应用场景。

QμC/OS支持创建相同优先级的任务吗?

AμC/OS-III提供时间片轮询算法,允许创建相同优先级的任务。μC/OS-II仅支持抢占调度算法,任务必须设置独立的优先级别。

QμC/OS中如何实现低功耗?

A用户任务阻塞时,μC/OS会运行最低优先级的系统任务,即空闲任务。空闲任务执行一个无限循环,每次循环调用OSTaskIdleHook()。为了节省空闲任务的功耗,可以在hook函数中配置处理器工作在低功耗模式。μC/OS-III为满足低功耗应用场景需求,增加了tickless模式和动态节拍模式。

Q使用μC/OS-II切换为μC/OS-III,要注意什么?

A将应用从μC/OS-II升级到μC/OS-III需要完成的工作。

Q内核配置是配置哪些内容?

AμC/OS配置文件的内容涉及具体应用需要的系统服务,支持的任务/优先级等信息,获取各个配置项的具体信息。

Q支持多核吗?

A目前μC/OS还不支持SMP架构运行。

Q有支持cpu任务负载统计吗?有栈大小的估计方法和自动化分析工具?

AμC/OS提供了统计任务,跟踪任务的CPU利用率。用户可以借助IDE提供的内核感知插件,可视化分析工具等获取任务相关的信息。一些IDE提供了堆栈使用分析,可以帮助确定每个任务需要多少堆栈空间。还可以借助RTOS的可视化分析工具,如Tracealyzer,在运行时监控堆栈使用情况,优化任务堆栈设置。

Q内核怎样访问任务列表?

AμC/OS应用中定义了一个数据结构,即任务控制块TCB,保存任务的关键信息,如优先级,任务堆栈等,通过内核提供的全局变量,访问列表结构,管理所有任务。具体内容可以参阅内核调度原理。

Q同等优先级任务有分时间片执行吗?

AμC/OS-III中同等优先级可以配置不同的时间片长度,在任务创建时设置。

QμC/OS-III有提供空间隔离和时间隔离吗?

AμC/OS-III暂时没有发布MPU版本,不支持空间隔离实现。μC/OS-II有提供空间隔离和时间监控的版本,具体信息可以访问https://www.embedded-office.com/products/flexible-safety-rtos。

QμC/OS-II还会继续维护么?

AWeston Embedded Solutions公司负责μC/OS-II的更新及商业服务,关于版本更新信息。

QμC/OS有相关RISC-V架构的移植么?

AμC/OS支持RISC-V的移植示例,可以访问

https://github.com/weston-embedded/uC-OS3/tree/develop/Ports/RISC-V/RV32/GCC

https://github.com/RISCV-on-Microsemi-FPGA/uCOS

Q浮点寄存器是默认任务切换时都进行保护和恢复吗?

A如果处理器支持FPU,那移植代码中包含对浮点寄存器的保护和恢复设置,这部分代码通过配置开关控制,默认情况下不使能包含。

Q空闲任务里运行什么代码?可以放功能进去吗?

A空闲任务是一个空循环,μC/OS-III中的实现如下:

5bbfd18c-6492-11ed-8abf-dac502259ad0.png

用户可以在OSIdleTaskHook()函数中增加用户功能,注意,空闲任务不能调用阻塞服务函数。

QNKA KA中断类型是什么意思?OS中断向量表重定向了吗?

ANKA指Non-kernel aware中断,无需内核参与的中断。KA指Kernel Aware中断,即受OS管理的中断。中断处理方式不同。无需内核参与的中断处理方式与裸机系统相同。受OS管理的中断服务中,需要通知OS,示意代码如下:

5be0038a-6492-11ed-8abf-dac502259ad0.png

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 内核
    +关注

    关注

    3

    文章

    1372

    浏览量

    40282
  • 移植
    +关注

    关注

    1

    文章

    379

    浏览量

    28127
  • RTOS
    +关注

    关注

    22

    文章

    811

    浏览量

    119601

原文标题:μC/OS实时RTOS技术线上讲座汇总问答②

文章出处:【微信号:麦克泰技术,微信公众号:麦克泰技术】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    linux是实时系统还是分时操作系统

    大家平时玩单片机基本上对于µC/OS、FreeRTOS、ThreadX这些操作系统非常熟悉了,他们都属于实时操作系统(RTOS),在工业领域比较广泛;然而对于linux这样的基于时间片
    的头像 发表于 11-11 11:43 435次阅读

    深入解析Zephyr RTOS技术细节

    ,Zephyr OS在嵌入式开发中的知名度逐渐增加,新的微控制器和开发板都支持Zephyr。本文将深入讨论Zephyr RTOS技术细节。
    的头像 发表于 10-22 16:47 505次阅读
    深入解析Zephyr <b class='flag-5'>RTOS</b>的<b class='flag-5'>技术</b>细节

    TMS320C6455/C6454功耗汇总

    电子发烧友网站提供《TMS320C6455/C6454功耗汇总.pdf》资料免费下载
    发表于 10-16 11:21 0次下载
    TMS320<b class='flag-5'>C</b>6455/<b class='flag-5'>C</b>6454功耗<b class='flag-5'>汇总</b>

    TMS320C6452功耗汇总

    电子发烧友网站提供《TMS320C6452功耗汇总.pdf》资料免费下载
    发表于 10-15 11:44 0次下载
    TMS320<b class='flag-5'>C</b>6452功耗<b class='flag-5'>汇总</b>

    RTOS正在缩小与Linux的差距

    RTOS与Linux的物联网设备操作系统之争已经持续了很多年。Linux以其强大的计算能力和丰富的软件生态,在需要复杂处理和软件支持的物联网设备上占据一席之地;RTOS凭借实时响应和资源节约的特性
    的头像 发表于 09-10 08:07 766次阅读
    <b class='flag-5'>RTOS</b>正在缩小与Linux的差距

    freertos和rtos区别是什么

    FreeRTOS 和 RTOS实时操作系统)是两个不同的概念,但它们之间有紧密的联系。FreeRTOS 是一个特定的开源实时操作系统,而 RTOS
    的头像 发表于 09-02 14:18 1193次阅读

    RTOS与Linux有什么区别

    RTOS(Real-Time Operating System,实时操作系统)与Linux是两种在不同应用场景下发挥重要作用的操作系统,它们在设计理念、功能特性、应用场景以及性能表现等方面存在显著差异。以下是对RTOS与Linu
    的头像 发表于 08-20 16:05 3473次阅读

    RTOS的特性和类型

    实时操作系统(RTOS)是一种可运行实时计算应用程序的软件平台,用于处理具有明确时间约束的事件和数据。与通用操作系统(GPOS)不同,RTOS必须在有限的硬件资源上调度应用程序之间的处
    的头像 发表于 08-20 11:29 575次阅读

    简单认识RTOS实时操作系统

    RTOS(Real Time Operating System,实时操作系统)是一种专门设计用于在严格时间限制内处理任务的操作系统。它以其高实时性、多任务处理能力和资源管理能力在工业自动化、医疗设备、航空航天、汽车电子等众多领域
    的头像 发表于 08-20 11:20 2709次阅读

    ESP8266_RTOS_SDK编译错误的原因?

    /home/esp8266/ESP8266_RTOS_SDK/include/json uart.c 依赖: xtensa-lx106-elf-gcc -M -Os -g -Wpointer-arith
    发表于 07-12 08:04

    RTOS SDK v. 1.5编译错误的原因?

    /app_0.out c:/Espressif/ESP8266_RTOS_SDK/liblibespconn.a(espconn_buf.o):(.text.ringbuf_内存0xc):对“os
    发表于 07-10 08:19

    为什么RTOS SDK的Rom指针比非OS SDK少?

    我不使用 NON-OS SDK,因为我更喜欢 RTOS 版本。 令我惊讶的是,这些函数在 RTOS SDK 中不存在。 有人可以告诉我RTOS_SDK中的等效函数名称吗? 为
    发表于 07-10 07:53

    请问STM32上有跑RTOS实时操作系统的吗?

    亲们最近在鼓捣实时操作系统,有什么好的经验请不吝赐教,嘿嘿。 我在摸索uT/OS。社区有在STM32几款芯片上的移植。
    发表于 05-16 07:16

    keil用c++编译含有rtos模块时的错误问题怎么解决?

    rtos,设置使用cpp编译,c99通过的程序编译错误一大堆,主要在usb和cmsis_os里,这里随便粘贴其中一条错误C:/Users/ME/STM32Cube/Reposito
    发表于 05-09 08:29

    带你认识实时操作系统(rtos)

    实时操作系统(RTOS)是为嵌入式系统和实时应用提供一个稳定、可预测和高效运行环境的操作系统。实时操作系统确保了系统能够在严格的时间限制内响应外部事件和处理任务,这是许多关键应用领域所
    的头像 发表于 04-16 16:30 1254次阅读
    带你认识<b class='flag-5'>实时</b>操作系统(<b class='flag-5'>rtos</b>)