osqpend函数makefile 包含头文件在哪个头文件里

转自:/thread-.html
UCOS开发手册中 第十章 &UCOSIII消息传递 章节中关于等待消息队列的函数OSQPend()讲解有误,OSQPend()函数各个参数含义如下
[C]&纯文本查看&复制代码
*OSQPend (OS_Q&&&&&&&&&&& *p_q,
&&&&&&&&&&&&&&&&OS_TICK&&&&&&&& timeout,
&&&&&&&&&&&&&&&&OS_OPT&&&&&&&&& opt,
&&&&&&&&&&&&&&&&OS_MSG_SIZE&&&& *p_msg_size,
&&&&&&&&&&&&&&&&CPU_TS&&&&&&&&& *p_ts,
&&&&&&&&&&&&&&&&OS_ERR&&&&&&&&& *p_err)
p_q:&&&&&&&&&&&&指向一个消息队列。
timeout:&&&&&&等待消息的超时时间,如果在指定的时间没有接收到消息的话,任务就会被唤醒,&接着运行。这个参数也可以设置为0,表示任务将一直等待下去,直到接收到消息。
opt:&&&&&&&&&&&&用来选择是否使用阻塞模式,有两个选项可以选择。
&&&&&&&&&&&&&&&&&&&& OS_OPT_PEND_BLOCKING&&&&&&如果没有任何消息存在的话就阻塞任务,一直等待,直到接收到消息。
&&&&&&&&&&&&&&&&&&&& OS_OPT_PEND_NON_BLOCKING&&&&如果消息队列没有任何消息的话任务就直接返回。
p_msg_size:&&&指向一个变量用来表示接收到的消息长度(字节数)。
p_ts:&&&&&&&&&&&指向一个时间戳,表明什么时候接收到消息。如果这个指针被赋值为NULL的话,说明用户没有要求时间戳。
p_err:&&&&&&&&&用来保存调用此函数后返回的错误码。
在V2.0版本UCOS开发手册中关于函数OSQPend()中参数p_msg_size的讲解是错误的,已经更新UCOS开发手册至V2.1版本,见附录。同样,例程10-1也是错误的,主要是在两个任务函数Keyprocess_task()和msgdis_task()中调用OSQPend()请求消息队列时的参数p_msg_size错误,更新后的任务函数如下:
[C]&纯文本查看&复制代码
//按键处理任务的任务函数
Keyprocess_task(void
&&&&OS_MSG_SIZE
&&&&OS_ERR
&&&&while(1)
&&&&&&&&//请求消息KEY_Msg
&&&&&&&&key=OSQPend((OS_Q*&&&&&&&&& )&KEY_Msg,&&
&&&&&&&&&&&&&&&&&&&&(OS_TICK&&&&&&& )0,
&&&&&&&&&&&&&&&&&&&&(OS_OPT&&&&&&&& )OS_OPT_PEND_BLOCKING,
&&&&&&&&&&&&&&&&&&&&(OS_MSG_SIZE*&& )&size,&&&&
&&&&&&&&&&&&&&&&&&&&(CPU_TS*&&&&&&& )0,
&&&&&&&&&&&&&&&&&&&&(OS_ERR*&&&&&&& )&err);
&&&&&&&&switch(*key)
&&&&&&&&&&&&case
WKUP_PRES:&&&& //KEY_UP控制LED1
&&&&&&&&&&&&&&&&LED1 = ~LED1;
&&&&&&&&&&&&&&&&break;
&&&&&&&&&&&&case
KEY2_PRES:&&&& //KEY2控制蜂鸣器
&&&&&&&&&&&&&&&&BEEP = ~BEEP;
&&&&&&&&&&&&&&&&break;
&&&&&&&&&&&&case
KEY0_PRES:&&&& //KEY0刷新LCD背景
&&&&&&&&&&&&&&&&num++;
&&&&&&&&&&&&&&&&LCD_Fill(126,111,233,313,lcd_discolor[num%14]);
&&&&&&&&&&&&&&&&break;
&&&&&&&&&&&&case
KEY1_PRES:&&&& //KEY1控制定时器1
&&&&&&&&&&&&&&&&tmr1sta = !tmr1
&&&&&&&&&&&&&&&&if(tmr1sta)
&&&&&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&&&&&OSTmrStart(&tmr1,&err);
&&&&&&&&&&&&&&&&&&&&LCD_ShowString(10,150,100,16,16,\&TMR1 START!\&);
&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&else
&&&&&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&&&&&OSTmrStop(&tmr1,OS_OPT_TMR_NONE,0,&err);
//停止定时器1
&&&&&&&&&&&&&&&&&&&&LCD_ShowString(10,150,100,16,16,\&TMR1 STOP! \&);
&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&break;
//显示消息队列中的消息
msgdis_task(void
&&&&u8 *p;
&&&&OS_MSG_SIZE
&&&&OS_ERR
&&&&while(1)
&&&&&&&&//请求消息
&&&&&&&&p=OSQPend((OS_Q*&&&&&&& )&DATA_Msg,&&
&&&&&&&&&&&&&&&&&&(OS_TICK&&&&& )0,
&&&&&&&&&&&&&&&&&&(OS_OPT&&&&&& )OS_OPT_PEND_BLOCKING,
&&&&&&&&&&&&&&&&&&(OS_MSG_SIZE* )&size,
&&&&&&&&&&&&&&&&&&(CPU_TS*&&&&& )0,
&&&&&&&&&&&&&&&&&&(OS_ERR*&&&&& )&err);
&&&&&&&&LCD_ShowString(5,270,100,16,16,p);
&&&&&&&&myfree(SRAMIN,p);&&
//释放内存
&&&&&&&&OSTimeDlyHMSM(0,0,1,0,OS_OPT_TIME_PERIODIC,&err);
&&相关文章推荐
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:104676次
积分:1690
积分:1690
排名:千里之外
转载:356篇
(4)(31)(22)(1)(27)(22)(11)(12)(2)(24)(11)(54)(28)(22)(22)(56)(25)您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
 嵌入式操作系统第9章.docx 34页
本文档一共被下载:
次 ,您可全文免费在线阅读后下载本文档。
下载提示
1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
2.该文档所得收入(下载+内容+预览三)归上传者、原创者。
3.登录后可充值,立即自动返金币,充值渠道很便利
需要金币:200 &&
你可能关注的文档:
··········
··········
9.00开发工具笔者采用的是BorlandC/C++V3.1和BorlandTurboAssembler汇编器完成程序的移植和测试,它可以产生可重入的代码,同时支持在C程序中嵌入汇编语句。编译完成后,程序可在PC机上运行。本书代码的测试是在一台Pentium-II计算机上完成的,操作系统是MicrosoftWindows95。实际上编译器生成的是DOS可执行文件,在Windows的DOS窗口中运行。只要您用的编译器可以产生实模式下的代码,移植工作就可以进行。如果开发环境不同,就只能麻烦您更改一下编译器和汇编器的设置了。9.01目录和文件在安装μC/OS-II的时候,安装程序将把和硬件相关的,针对Intel80x86的代码安装到\SOFTWARE\uCOS-II\Ix86L目录下。代码是80x86实模式,且在编译器大模式下编译的。移植部分的代码可在下述文件中找到:OS_CPU.H,OS_CPU_C.C,和OS_CPU_A.ASM。9.02INCLUDES.H文件INCLUDES.H是主头文件,在所有后缀名为.C的文件的开始都包含INCLUDES.H文件。使用INCLUDES.H的好处是所有的.C文件都只包含一个头文件,程序简洁,可读性强。缺点是.C文件可能会包含一些它并不需要的头文件,额外的增加编译时间。与优点相比,多一些编译时间还是可以接受的。用户可以改写INCLUDES.H文件,增加自己的头文件,但必须加在文件末尾。程序清单L9.1是为80x86编写的INCLUDES.H文件的内容。程序清单L9.1INCLUDES.H.#include&stdio.h&#include&string.h&#include&ctype.h&#include&stdlib.h&#include&conio.h&#include&dos.h&#include&setjmp.h&#include&\software\ucos-ii\ix86l\os_cpu.h&#include&os_cfg.h&#include&\software\blocks\pc\source\pc.h&#include&\software\ucos-ii\source\ucos_ii.h&9.03OS_CPU.H文件OS_CPU.H文件中包含与处理器相关的常量,宏和结构体的定义。程序清单L9.2是为80x86编写的OS_CPU.H文件的内容。程序清单L9.2OS_CPU.H.#ifdefOS_CPU_GLOBALS#defineOS_CPU_EXT#else#defineOS_CPU_EXTextern#endif/*********************************************************************************数据类型*(与编译器相关的内容)********************************************************************************/typedefunsignedcharBOOLEAN;typedefunsignedcharINT8U;/*无符号8位数(1)*/typedefsignedcharINT8S;/*带符号8位数*/typedefunsignedintINT16U;/*无符号16位数*/typedefsignedintINT16S;/*带符号16位数*/typedefunsignedlongINT32U;/*无符号32位数*/typedefsignedlongINT32S;/*带符号32位数*/typedeffloatFP32;/*单精度浮点数*/typedefdoubleFP64;/*双精度浮点数*/typedefunsignedintOS_STK;/*堆栈入口宽度为16位*/#defineBYTEINT8S/*以下定义的数据类型是为了与uC/OSV1.xx兼容*/#defineUBYTEINT8U/*在uC/OS-II中并没有实际的用处*/#defineWORDINT16S#defineUWORDINT16U#defineLONGINT32S#defineULONGINT32U/*********************************************************************************Intel80x86(实模式,大模式编译)**方法#1:用简单指令开关中断。*注意,用方法1关闭中断,从调用函数返回后中断会重新打开
正在加载中,请稍后...君,已阅读到文档的结尾了呢~~
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
STM32开发指南V1.0 库函数版本(下册)
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
网络表集中器开模式研究.pdf86页
本文档一共被下载:
次 ,您可全文免费在线阅读后下载本文档。
文档加载中...广告还剩秒
需要金币:180 &&
网络表集中器开模式研究
你可能关注的文档:
··········
··········
武汉理工大学硕士学位论文 摘 要 随着处理器技术和通信技术的不断发展,人们生活水平的不断提高,远程自
动抄表系统已经越来越受到人们的重视。在远程自动抄表系统中,集中器是抄
表服务器和终端网络的通信枢纽,其功能的好坏直接影响到整个抄表系统的性
能。同时它也是远程自动抄表系统实施中部署最多的公共设施,因而它的开发
成本也是整体系统能否真正实用化的关键。课题首先从调研嵌入式系统的开发
模式入手,仔细研究各开发模式的关键技术,着重选择实现了三种开发模式的
集中器,最后根据开发实践经验,分析比较了这三种典型模式的优缺点,指出
各开发模式的最佳适用环境。 首先,通过调研,分析研究了当前嵌入式系统的开发趋势,常用的嵌入式
处理器和嵌入式操作系统及其市场应用情况,以及其他相似远程抄表系统的实
现模式,总结出典型的两种开发模式,前后台模式和基于uc/OS.II的开发模式,
并结合嵌入式Linux系统的发展趋势,设计了基于嵌入式Lillux的开发模式模型。 在选定了开发模式之后,论文主要分析了每种开发模式所使用的关键技术。
对于前后台系统,主要研究了ARM7TDMI处理器的编程模型,深入分析它的中
断处理过程,详细分析介绍了前后台设计模式下的集中器实现过程。对于
uC/Os.II实现模式,主要研究了uC/OS.II操作系统的内核工作原理,分析它的
任务调度过程,并将uC/oS.II移植到目标平台LPC2114上。在此基础上,详细
介绍了基于uC/OS.II的集中器的实现过程,包括任务的划分,任务之间的通信
等。针对嵌入式Linux的开发模式,首先选择了一款被市场和Li姗x官方网站广
泛支持的miIli2440开发板快速搭建开
正在加载中,请稍后...}

我要回帖

更多关于 makefile 包含头文件 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信