MPLAB X为什么与RTOS不兼容

问题描述 投票:0回答:2

MPLABX具有许多仿真功能,故障排除和错误测试功能,当我在大学编写C代码时发现非常有用。现在行业中的即时消息和系统变得更加复杂,实时操作系统(RTOS)似乎很普遍。

我尚未能够将这些出色的故障排除工具与RTOS集成在一起。有没有被忽略的快速修复方法?还是关于这两个不跳动的更根本的东西?

谢谢!

c rtos mplab
2个回答
0
投票

没有什么可以阻止在MPLABX中开发RTOS,缺少任何集成功能并不妨碍使用RTOS库;毕竟它只是一个像其他图书馆一样的图书馆。然而,RTOS所暗示的是稍微复杂一些的运行时和调试环境,并且在大多数情况下,当您遇到断点时,all线程将被挂起。

您对RTOS集成有什么期望?在提供这种整合的情况下,支持会有所不同;一些可能的功能包括:

  • 查看线程调用堆栈
  • 查看多个线程的状态,
  • 查看状态内核对象,
  • 知道线程的调试和断点,
  • 每线程CPU负载统计信息
  • 线程执行和上下文切换的时序图。

[当RTOS产品来自第三方供应商时,RTOS集成必须通过两家供应商之间的双边协议,或者在IDE供应商为此目的提供了文档化插件体系结构的地方,以及RTOS供应商或其他方已选择支持它。有很多RTOS供应商和许多IDE-选择两个可以协同工作,而将您的选择限制为可能不太适合您的应用程序或目标的产品。

即使具有一定程度的RTOS集成的IDE也很少实现线程级断点-它们需要具有内置到内核中的能力(用于在上下文切换器上切换断点),而不仅仅是IDE或调试器。例如,VxWorks支持该功能,但不针对PIC。

当IDE,RTOS和编译器通常来自同一供应商时,最常见的是IDE中的RTOS集成;例如Mentor Graphics Nucleus,WindRiver的VxWorks,QSSL的QNX,TI的CCS和DSP / BIOS或Keil的uVision和RTX;都不是目标PIC。 Xpress Logic的ThreadX与用于PIC32的MPLAB Harmony集成。

[大多数RTOS / PIC组合可能太简单和利基,而且市场过于分散,甚至不起作用,老实说,您可能并不会错过太多。

不管IDE中对RTOS的了解如何,您仍然可以期待正常的源代码级符号调试器功能,但只能看到当前线程的非静态局部变量;这似乎没有看起来那么严格;通过在线程交互的信号发送和接收端使用断点,可以在大多数情况下充分调试线程交互行为。


1
投票

MPLABX只是IDE,问题是编译器。XC16和XC32与包括FreeRTOS在内的一些流行的RTOS兼容,但是,XC8编译器无法处理复杂的RTOS。它是一个非常有问题的编译器,无法从高级指针表达式生成有效的汇编代码。

© www.soinside.com 2019 - 2024. All rights reserved.