以下是单片机实践团为您解答:
1)单片机多任务并行运算任务吞吐量分析,这个话题有点大,我只能简单的说几点,到时候你自由发挥吧。
2)多任务作业系统,对于微控制器而言,其实不能达到所谓的并行运行,只是感觉上像是并行处理一样,也就是所谓的时间片轮询调度,如果任务优先级一样则每个任务分得的时间片一样。对于抢占式的RTOS而言会优先处理级别比较高的任务。
3)说道任务的吞吐量的话,一般OS都会带这样的一个接口供用户调用,我所知道的FreeRTOS的话,有个tasklist的接口,可以打印任务的列表还有个润time相关的API是vTaskGetRunTimeStats这个函数就能打印系统的任务吞吐量,很形象,就是每个任务占的百分比一般基本上是空闲任务占用了90%以上,我一般设计到99%这样。
4)当然了,这些OS还会提供图形化的分析工具,我所了解的FreeRTOS支持trace接口工具能够直观的通过图形图表看出每个任务的吞吐量,一般用于前期设计分析。
5)恩,如果OS不提供这种接口的话,可以动手写相关的接口,便于设计时分析用
6)说到多任务并行运算适用哪些应用的话,这个需要你对系统比较了解的情况才能懂一些,我也简单说明,传统的前后台任务作业系统在任务处理的时候是顺序执行的,或者后台事件触发执行,相比之下多任务并行执行(不是真的并行,真正并行的只有FPGA或者多核才能做的)的作业系统优势明显,因为我们的系统run起来很快的,但是我们的外设一般都比较慢,所以需要花很多时间去等待完成或者其他的阻塞执行,这样无形中浪费了系统的资源,常常会使得有些任务得不到及时的执行,在多任务并行执行的系统就避免了这种情况。
7)举例说明,一个系统有串口发送任务,还有个采集任务,一般串口速率都不是很高,发送的任务明显会比较慢,需要等待发送空,这样的话发送若干数据的时间其实相对系统执行的速率而言是很长的,如果是非并行执行的作业系统的话,需要等待发送完成才能执行采集任务,这样明显使得采集任务不够实时,所以在并行执行的作业系统中,两者都能很好的被执行,干一会这个任务,干一会那个任务,多和谐。
8)说白了,这些都是实时 *** 作系统RTOS的基础知识,看看相关的文献,有利于你明天发挥,祝好运,欢迎追问。
单片机都是单线程的,也就是说同时只能执行一个任务。
但还是有办法实现伪并行处理的。
简单点说就是将时间分割成不同的时间片。将多个任务分配给不同的时间片,MCU在不同的时间片处理不同的任务。由于单片机处理的高速度,看起来就像是在同时处理不同的任务。
RTX51有tiny和full两个版本,full是要花钱买的。
如果你用的tiny版本,检查下配置的文件和硬件晶体时钟。
还有初始化程序对吗?多检查下,另外,keil里面有个例子,看看那个能运行吗?
还有,可能破坏了核心文件,把c51重新安装一遍看看。卸载后删掉keil目录。
从本质上说,单片机是不可能同时执行两个任务。因为某一时刻只能执行一条语句。
但单片机的执行速度很快,一般是微秒量级。所以分时调度你的任务,让每个任务执行一小段时间,再执行另一个任务一小段时间。从我们的感觉上(或者说大的时间范围看)就是同时执行两个任务了,对多任务也是一样。
不可以的,你可以循环嵌套,但是不能同时运行两个循环,单片机在同一时间只能执行一条语句,我看你的意思好像是要两个循环同时工作,这是不可能的,你只能让程序像近似的两个循环,但不能是严格的两个循环
以上就是关于单片机多任务并行运算的任务吞吐量分析;单片机多任务并行运算适用哪些应用。全部的内容,包括:单片机多任务并行运算的任务吞吐量分析;单片机多任务并行运算适用哪些应用。、PIC单片机同时可执行多个任务、Keil C51 单片机 RTX多任务系统问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)