首页-英亚体育网页版|官网app下载

0877-80176637

在线客服| 微信关注
当前位置: 首页 > 后期工艺 > 画册精装

英亚体育网页版|官网app下载|uC/OS-II初级程序员指南


英亚体育app下载:uC/OS-II初学者程序员指南(一)uC/OS-II概述UC/OS-II是一个基于优先级的硬动态内核。自1992年出版以来,它已在世界各地广泛使用。它是一种专门为嵌入式设备设计的内核,已经在40多种不同的CPU结构上重现,在8位到64位的各种系统上运行。

特别值得一提的是,该系统从2.51版开始就通过了FAA认证,可以在安全拒绝严格的系统上运行,比如航天器。由于uC/OS-II可以免费获得代码,对于嵌入式RTOS来说无疑是最经济、最自由的选择。(2)uC/OS-II应用的基本结构应用于UC/OS-II,大自然需要为其开发应用。

下面描述基于uC/OS-II的应用的基本结构和注意事项。每个uC/OS-II应用程序必须至少有一个任务。

英亚体育app下载

而且每个任务都必须以无限循环的形式写。以下是转诊的结构:void task(void * pdata){ int 8 uer;InitTimer();//可选For(;){//把你的应用程序改成程序代码。(1);//可选}}以上是基本结构。

为什么要写无限循环的形式?这是因为系统不会为每个任务保留一个堆栈空间,当任务发生变化时,系统会改变完整的恢复上下文,并继续执行reti指令返回。如果允许任务继续执行,直到最后一个放在括号中(通常是ret指令的意思),很可能会破坏系统堆栈空间,使应用程序的继续执行无法确认。换句话说,就是跑完就飞。所以每个任务都必须以无限循环的形式写。

程序员必须坚信自己的任务不会退出CPU使用权,无论是系统强制(通过ISR)还是自愿退出(通过调用OSAPI)。现在来说说上面程序中的InitTimer()函数。

该功能应由系统获得。程序员必须在优先级最低的任务中调用它,而不能在for循环中调用它。注意这个功能和使用的CPU有关,每个系统都有自己的Timer初始化程序。

在uC/OS-II的帮助手册中,作者特别强调,这意味着定时器初始化程序不能在OSInit()或OSStart()中调用,不会破坏系统的可移植性,带来性能损失。所以一个折中的办法是在优先级最低的程序中调用,如上,这样可以保证在OSStart()调用内部系统函数OSStartHighRdy()开始多任务时,定时器初始化程序会继续先执行。或者专门做一个优先级最低的任务,只做一件事,就是继续执行Timer初始化,然后通过调用OSTaskSuspend()把自己挂在一起,继续执行一天。

但这不会浪费一个TCB空间。对于那些RAM严重不足的系统,最好不要这样做。(3)一些最重要的uC/OS-II API说明任何操作系统都会获取大量的API供程序员使用,UC/OS-II不值得关注。

英亚体育网页版|官网app下载

因为uC/OS-II面向嵌入式R&D,不拒绝大而全,所以内核获得的API与大川多任务密切相关。主要有以下几类:1)任务类2)消息类3)实时类4)时间类5)关键区域和事件类。

我个人指出,对于初级程序员来说,任务类和时间类是两种必须先掌握的API。下面我就解释一下最重要的:1) OstaskCreate函数,这个函数至少要在主函数中调用一次,然后在OSInit函数调用之后再调用。

玩就是创造一个任务。目前有四个参数,分别是任务的入口地址,任务的参数,任务栈的第一个地址,任务的优先级。调用此函数后,系统不会先从TCB空闲列表中申请一个机器的TCB指针,然后不会根据用户获得的参数初始化任务栈,并在内部任务就绪表中将任务标记为就绪。

终于,这样的任务成功的确立了。 2)ostaskssuspend函数这个函数非常非常简单。看名字就应该明白它的作用。

它可以挂起登录任务。如果当前任务被挂起,将不会导致系统继续执行任务转换引导函数OSShed来启动任务转换。

这个函数只有一个参数,就是登录任务的优先级。那为什么是优先呢?事实上,在系统中,优先级不仅响应任务继续执行的顺序,还起着分隔每个任务的作用。换句话说,优先级就是任务的ID。

因此,uC/OS-II不允许优先级完全相同的任务频繁出现。3)ostasksresume函数这个函数和上面的函数只是忽略。它用于将已登录的暂停功能完全恢复到就绪状态。

如果完全恢复任务的优先级低于当前任务的优先级,也会导致任务转换。其参数类似于OSTaskSuspend函数,是登录任务的优先级。特别要说明的是,这个函数并不拒绝与OSTaskSuspend函数成对使用。

4) OS _ ENTER _ CRITICAL宏很多人以为是函数,其实不是。分析OS_CPU。仔细锉。

英亚体育app下载

这是一个带有OS _ EXIT _ CRITICAL的宏,将在下面讨论。它们都涉及一个特定CPU的构造。

它们通常被一个或几个嵌入的代码代替。因为系统期望对上层程序员隐藏内部构造,所以一般声称系统继续执行这个指令后会变成临界区。

然而,这只是一个中断。这样,只要任务没有主动退出CPU使用权,其他任务就没有空闲CPU的机会。相对于这个任务来说,是占优势的。

这就是为什么它变成了临界区。这个宏或多或少都可以使用,因为它不会破坏系统的一些服务,尤其是时间服务。

降低了系统对外调用性能。5) OS _ exit _ critical宏该宏用于另一个具有上述宏功能的宏。它在系统手册中的解释是溶解临界区。只是这是一个新的中断。

英亚体育网页版|官网app下载

必须注意的是,它必须经常与上面的宏成对出现,否则不会带来意想不到的后果。最坏的情况是,系统不会崩溃。

我们建议程序员尽量少用这两个宏调用,因为不破坏系统的多任务性能。6)临时函数这应该是程序员应该调用的最少的函数。已经完成的功能很简单,就是再次挂起当前任务,然后开始任务转换。

登录时间到了之后,当前任务会完全恢复到就绪状态,但不一定操作。如果它是完全恢复后优先级最低的就绪任务,则操作它。简单来说,可以将任务延迟一定时间再继续执行,也可以继续退出CPU的使用权。一个任务可以不显式调用这些可以导致CPU使用权被收回的API,但是多任务性能不会有很大的降低,因为这时候就意味着要依靠时钟机制来扩展任务转换。

当一些经营者自愿退出使用权时,就应该完成一项好的任务。好东西要大家分享!。

本文来源:英亚体育网页版-www.headroomgate.com

客户案例Customer case
  • 首页|发展合作社搞精准扶贫
  • 英亚体育app下载_弘锐手术床分站总结输液器的功能实现
  • 预计2007年中国石化行业将迎来全新发展时期:英亚体育网页版
  • 首页_农业市场:山东大棚黄瓜市场“俏”销
  • 石龙镇顺利召开团委换届选举大会:首页
  • 手术无影灯特种光源照明系统:英亚体育网页版
  • 英亚体育网页版-彩虹小学邀请张洁老师做家庭教育指导讲座
  • 英亚体育网页版-阿里童文红:给予合规快递三轮车道路通行权
  • 快递小哥放假,咱也歇歇:英亚体育网页版|官网app下载
  • “蒜你狠”连涨五个月趋于平稳 后市上涨空间不大_首页