为什么MPC5554电路板不需要RTOS? 它是否带有内置的

我在查看MPC5554开发板的参考手册,没有提及任何使用的操作系统(内核)。 应用程序可以在该板上不使用任何外部操作系统的情况下运行。

我了解RTOS是否具有内存管理,任务调度功能,这些功能是由MPC5554内置的固件完成的吗?

这些主板有RTOS供应商,所以我想知道他们需要什么应用?

RTOS意味着仅仅是板级执行之上的另一个抽象吗?

如果我们把RTOS放在上面,不会与内置操作系统冲突吗?


没有内置的操作系统 - 为什么你会这样认为?

许多嵌入式应用程序在没有操作系统(RTOS或其他操作系统)的情况下运行裸机,但无论如何,选择RTOS是开发人员决定而不是制造商的决定。

RTOS从根本上提供调度,同步,进程间通信和定时服务。 可以为具有MMU的设备提供内存管理,但这不是给定的。 裸机应用程序可以建立一个C运行时环境,并且可以在没有调度或IPC等情况下启动到main() 。在大多数简单的RTOS中,系统启动到启动并初始化RTOS的main() ,而不是OS启动`main()在GPOS中会发生。

电路板制造商可以为一个或多个特定的RTOS提供电路板支持包,但BSP(或HAL或驱动程序库)也可以仅由裸机或RTOS独立设备驱动程序组成。 通常,开发人员需要集成RTOS,设备驱动程序和中间件(如文件系统和网络)等,这些可能来自单个或多个供应商。 您必须了解许多(或者大多数)开发人员将围绕微控制器设计自己的电路板,而不是使用COTS硬件,因此不可能有一成不变的解决方案,相反,嵌入式开发往往是更多套件的方法。


克利福德已经击中了头部。 根据您希望完成的任务的复杂程度,您可能需要重新考虑您需要的是什么。 如果您对RTOS的唯一兴趣是基于“实时”部分,那么创建您自己的小型中断驱动裸机应用程序可能会更容易(也更便宜)。 一般来说,我发现如果性能限制是你主要关心的问题,那么抽象性就越差越好。

根据你说的问题的方式,我假定你正在寻找一个以MPC5554作为微代码的评估板或开发工具包,在这种情况下,你可能已经有了一些基本的启动代码,可以执行诸如设置内存控制器和一些外围设备(大多数开发工具包或IDE都附带一些您可以重复使用的示例代码)。

一个简单的应用程序可能会做以下事情:

  • 初始化运行时环境(MMU,INTC,FMPLL)
  • 初始化您希望使用的外围设备,例如。 ADC,GPIO,SPI等(如果您有任何需要EBI的外部外设,这会变得非常复杂)
  • 初始化eMIOS以生成具有高优先级的定时中断(即主处理任务循环)
  • 我所见过的典型工作方式是,一旦完成了上述所有初始化,您的主应用程序线程就会运行到一个无限循环,您可以将其用作后台任务来执行垃圾收集或某些非时间关键的故障检测。 然后,在您创建的定时中断的ISR中,实现一个基本的调度程序来执行您的驱动程序级处理(例如,触发/读取ADC,读取/写入GPIO,启动任何IPC事务等)。 一个非常基本的概念可能是这样的:

    void fastTaskISR()
    {
        static uint8 frameCount = 1;
    
        ...
    
        switch(frameCount)
        {
            case 1:
                //Task 1
                break;
            case 2:
                //Task 2
                break;
            case 3:
                //Task 3
                break;
            case 4:
                //Task 4
                break;
            case 5:
                //Task 5
                break;
            default:
                //Default case for robustness. Error.
                break;
        }
    
        frameCount++;
        if(frameCount > 5)
        {
            frameCount = 1;
        }
    
        ...
    }
    

    或者,您可以使用其中一个计划任务来生成软件中断,然后可以使用该软件来运行一些较慢的任务或更复杂的控制逻辑。 在我工作的地方,这是一个久经考验的公式:eMIOS驱动的“快速任务”(通常在100us到1ms之间)+一个软件中断驱动的“正常任务”,运行更高级别的控制逻辑,通常由Simulink模型生成。 不用说,我们做了大量的BSP和驱动程序级代码的重用。

    链接地址: http://www.djcxy.com/p/43627.html

    上一篇: Why doesn't MPC5554 board requires a RTOS? Does it come with a built

    下一篇: Location of task swap on/off CPU for run que