- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验二uCOS-II的多任务机制及其编程
实验二、μC/OS-II的多任务机制及其编程
一、实验目的
1、熟悉μC/OS-II任务的基本概念;
2、掌握μC/OS-II的多任务机制以及多任务应用程序编程的基本步骤;
3、了解μC/OS-II操作系统中多任务函数的源码基本结构;
4、在实验一的基础上进一步熟悉μC/OS-II应用程序的烧录步骤。
二、实验设备
2.1硬件
本实验采用的奋斗版STM32 MINI开发板,该硬件的详细说明参见实验一指导书。
2.2软件
Windows XP/Windows 7、RealView MDK、μC/OS-Ⅱ版本2.86 与移植包、ST 官方标准库V3.2 版、STM32? and STM8?Flash loader demonstrator,串口调试工具等。
三、实验内容
3.1 建立任务OSTaskCreate的使用
与实验一相同,本实验也是基于led_example_gui文件中的APP目录下的工程文件STM32-FD-ucgui.Uv2。在该项目中添加新文件app1.c,并在其中按下列要求编写代码。注意要将项目工程中app.c文件的main函数名字改掉,例如改为main1。该软件的主要功能是创建的任务,在任务中每隔20000个节拍的时间通过串口输出文字。源代码如下:
/** 案例一演示 OSTaskCreate 函数的使用方法 */
#include includes.h
OS_STK Task1Stk[1024];
OS_STK Task2Stk[1024];
void Task1(void *pdata);
void Task2(void *pdata);
int main(int argc, char **argv)
{
CPU_INT08U os_err; /* 禁止所有中断 */
CPU_IntDis();
OSInit(); /* ucosII 初始化 */
BSP_Init(); /* 硬件平台初始化 */
OSTaskCreate(Task1, (void *)0, Task1Stk[0],5);
OSTaskCreate(Task2, (void *)0, Task2Stk[0],10);
OSStart();
return 0;
}
void Task1(void *pdata)
{
INT8U cnt = 0;
for(;;)
{
USART_OUT(USART1,****** 任务1...\r\n);
OSTimeSet(20000);
}
}
void Task2(void *pdata)
{
for(;;)
{
USART_OUT(USART1,******** 任务2...\r\n);
OSTimeSet(2000);
}
}
编译链接上述项目产生HEX文件。编译链接的方法在实验一中已有论述,如果程序出现错误,修改后继续编译。接下来就需要将该文件烧录到目标板中运行程序,烧录完成后拔掉电源,将【启动模式选择】插针插上,并且一定要关闭Flash Loader Demonstrator软件,否则该软件会一直占用串口。打开串口调试软件,接上电源就可以在串口调试软件观察到ARM板输出结果,如图1-1所示。同样道理,在烧录时也必须关闭串口调试软件。结果表明Task1一直在占用串口输出,Task2没有机会占用串口输出运行,这是因为Task1的优先级要高于Task2。要注意的是实际上Task2也在运行,请问如何验证Task2在运行中。
图2-1、任务1运行示意图
优先级变更函数OSTaskChangePrio的使用
利用函数OSTaskChangePrio可以改变优先级低的任务的优先级,该函数的原型如下:
INT8U OSTaskChangePrio(INT8U oldprio, INT8U newprio)
在上述程序app1.c中改变Task1的程序代码如下:
void Task1(void *pdata)
{
INT8U cnt = 0;
for(;;)
{
USART_OUT(USART1,****** 任务1...\r\n);
OSTimeSet(20000);
if(cnt++ == 1000)
OSTaskChangePrio(10,3);
}
}
上述代码中的OSTaskChangePrio(10,3)就是将低优先级(优先级数为10)的
您可能关注的文档
- 合并同类项及应用题.doc
- 合成气偏流的原因.doc
- 合成张出相框外的荷叶.doc
- 合成钻石的技术进展及其鉴定.doc
- 合成革基布化学性能分析.doc
- 合成气压缩机规程.doc
- 合成革基布物理性能分析..doc
- 合理利用外资策略分析论文.doc
- 合成树脂期末复习资料.doc
- 合理用药知识宣传资料(每两月1份共16份).doc
- 《GB/T 22838.3-2025卷烟和滤棒物理性能的测定 第3部分:圆周 非接触光学法》.pdf
- 中国国家标准 GB/T 7410.1-2025搪瓷制品和瓷釉 术语 第1部分:术语和定义.pdf
- 《GB/T 7410.1-2025搪瓷制品和瓷釉 术语 第1部分:术语和定义》.pdf
- GB/T 7410.1-2025搪瓷制品和瓷釉 术语 第1部分:术语和定义.pdf
- 《GB/T 32151.54-2025温室气体排放核算与报告要求 第54部分:工业硫酸企业》.pdf
- GB/T 32151.54-2025温室气体排放核算与报告要求 第54部分:工业硫酸企业.pdf
- 中国国家标准 GB/T 32151.54-2025温室气体排放核算与报告要求 第54部分:工业硫酸企业.pdf
- 中国国家标准 GB/T 29152-2025垃圾焚烧尾气处理设备.pdf
- 《T/CHTS 10170-2024半开级配超薄磨耗层技术指南》.pdf
- T/CHTS 10170-2024半开级配超薄磨耗层技术指南.pdf
原创力文档


文档评论(0)