首页 > 新闻中心 > 公司新闻
LPC21XX移植UCOS-II小结-ope体育

2021-11-11 

本文摘要:1.在uC/OS-II的帮助指南内,创作者特意着重强调意味著没法在OSInit()或是OSStart()内调用Timer复位程序流程,那不容易损坏系统的可扩展性另外带来性能上的损害。

ope体育官网

1.在uC/OS-II的帮助指南内,创作者特意着重强调意味著没法在OSInit()或是OSStart()内调用Timer复位程序流程,那不容易损坏系统的可扩展性另外带来性能上的损害。因此 ,一个折中的方法便是:  在优先最少的程序流程内调用,那样能够保证 当OSStart()调用系统內部函数OSStartHighRdy()刚开始多个任务后,最先继续执行的便是Timer复位程序流程。

或是专业进一个优先最少的每日任务,只保证一件事情,那便是继续执行Timer复位,以后根据调用OSTaskSuspend()将自身悬架一起,总有一天依然继续执行。但是那样不容易消耗一个TCB室内空间。针对这些RAM匮乏的系统而言,還是无须为好。

  2.一些最重要的uC/OS-IIAPI解读  一切一个实际操作系统都是会获得很多的API供程序猿用以,uC/OS-II都不特别注意。因为uC/OS-II朝向的是内嵌式产品研发,并不拒绝专而精,因此 核心获得的API也就大多数和多个任务密切相关。  关键的有下列几种:  1)每日任务类  2)信息类  3)即时类  4)時间类  5)临界区与恶性事件类  我本人强调针对初级程序员来讲,每日任务类和時间类是必必须最先操控的二种种类的API.  下边我也来解读比较最重要的:  1)OSTaskCreate函数  这一函数理应至少再作main函数内调用一次,在OSInit函数调用以后调用。

具有便是开创一个每日任务。现阶段有四个主要参数,分别是每日任务的通道详细地址,每日任务的主要参数,每日任务局部变量的首详细地址和每日任务的优先。

调用本函数后,系统不容易最先从TCB空余目录内申报人一个机的TCB表针,随后将不容易依据客户得到主要参数复位每日任务局部变量,并在內部的每日任务就绪表内标识该每日任务为就绪情况。最终返回,那样一个每日任务就开创成功了。  2)OSTaskSuspend函数  这一函数很比较简单,一看姓名就该搞清楚它的具有,它能够将登陆的每日任务悬架起。

ope体育

假如悬架的是当前任务得话,那麼还不容易造成系统继续执行每日任务变换插装式函数OSShed来进行一次每日任务变换。这一函数只有一个主要参数,那便是登陆每日任务的优先。那为什么是优先呢?实际上在系统內部,优先除开答复一个每日任务继续执行的依次顺序外,还起着各自每一个每日任务的具有,也就是说,优先也就是每日任务的ID.因此 uC/OS-II不得经常会出现完全一致优先的每日任务。  3)OSTaskResume函数  这一函数和上边的函数恰好忽视,它作为将登陆的早就悬架的函数彻底恢复成就绪情况。

假如彻底恢复每日任务的优先小于当前任务,那麼还为造成一次每日任务变换。其主要参数类似OSTaskSuspend函数,为登陆每日任务的优先。

务必特别是在表述是,本函数并不拒绝和OSTaskSuspend函数成对用以。  4)OS_ENTER_CRITICAL宏  很多人都认为它是个函数,其实不是,具体分析一下OS_CPU.H文档,它和下边马上要谈起的OS_EXIT_CRITICAL全是宏。

她们全是涉及特殊CPU的搭建。一般都被拆换为一条或是几个内嵌式编写编码。

因为系统期待向顶层程序猿隐秘內部搭建,因此一般都宣称继续执行此条命令后系统转到临界区。只不过是,它便是大关个中断罢了。

那样,要是每日任务不主动撤出CPU所有权,  其他每日任务就没闲置不用CPU的机遇了,较为这一每日任务来讲,它便是称霸了。因此 讲到转到临界区了。

这一宏能少使用還是偏少用,因为它不容易损坏系统的一些服务项目,特别是在是時间服务项目。并使系统对外部呼吁性能降低。

  5)OS_EXIT_CRITICAL宏  这个是和上边解读的宏设备用以另一个宏,它在系统指南里的表述是散伙临界区。只不过是它便是新的进中断。务必注意的是,它必不可少和上边的宏成对经常会出现,不然不容易带来出乎意料的不良影响。

最坏的状况下,系统不容易分裂。大家举荐程序猿们尽量避免用以这两个宏调用,由于她们确实不容易损坏系统的多个任务性能。  6)OSTimeDly函数  这理应程序猿们调用至少的一个函数了,这一函数顺利完成作用很比较简单,便是再作悬架当起当前任务,随后进行每日任务变换,在登陆的時间到来以后,将当前任务彻底恢复为就绪情况,可是不一定经营,假如彻底恢复后是优先最少就绪每日任务得话,那麼经营之。

比较简单点讲到,便是能够每日任务廷时一定時间后再一次继续执行它,也就是说,再次撤出CPU的所有权。一个每日任务可以不显式的调用这种能够导致撤出CPU所有权的API,但那般多个任务性能不容易大幅度降低,由于这时代表着依靠数字时钟体制在进行每日任务变换。

ope体育官网

一个好的每日任务理应在顺利完成一些作业者积极撤出所有权,好产品要大伙儿共享资源嘛!  3.大家举荐程序猿们尽量避免用以OS_ENTER_CRITICAL宏和OS_EXIT_CRITICAL宏2个宏调用,由于她们确实不容易损坏系统的多个任务性能。why??  4.在以uC/OS为实际操作系统的新项目中,系统有可能要应急处置各种各样各有不同的中断要求,假如某一中断程序处理务必调用uC/OS的各种各样Post函数向每日任务接到信息,那麼uC/OS提议中断系统服务的字读音是:  1、存留所有CPU存储器  2、调用OSIntEnter或OSIntNesting必需特1  3、继续执行客户编码保证中断服务项目  4、调用OSIntExit  5、彻底恢复全部CPU存储器  6、继续执行中断返回命令  迫不得已称之为规范中断方法,这类方法本质上是将这一中断应急处置重进了线程同步系统,换句话说这一中断能够引起每日任务的变换。  假如在中断应急处置中没调用各种各样Post函数得话,则可以用一般的、象本来没实际操作系统时的字读音:  1、存留中断程序处理务必选用的CPU存储器  2、继续执行中断应急处置  3、彻底恢复存留了的CPU存储器  4、继续执行中断返回命令  迫不得已称之为慢中断方法,依照这类方式界定的中断总有一天会引起每日任务变换。


本文关键词:ope体育,ope体育官网

本文来源:ope体育-www.tap-io.com

  • 首页| 关于我们| 新闻中心| 产品中心| 业绩展示| 联系我们|
  • Add:香港特别行政区香港市香港区费赛大楼2722号

    Tel:0581-71459833

    港ICP备63446004号-1 | Copyright © ope体育|ope体育官网 Rights Reserved