【RTX51 Tiny初级】11_os_wait和os_switch_task区别和使用场合


01 - os_send_signal()和os_set_ready()的区

  os_wait()用于等待某个信号,os_switch_task()用于协助调度,相同点和不同点如下:
  相同点:正常情况下都能发生上下文切换,也就是成功执行API后task都会停止当前执行,由running态转为waiting / ready态。
  不同点:os_wait()让task进入waiting态,需要信号触发(set signal / set ready)才能恢复到ready,等待调度后才能运行进入running。os_switch_task()让task进入ready态,是一种协助调度的手段,主动让出CPU资源,随后等待调度进入running
在这里插入图片描述

02 - 使用场合

  当一个task在完成自己的工作后可以让出CPU资源,等待下一次继续执行的时候,就用os_switch_task()。例如,有一个main_task,它主要轮询handle各种由定时器或中断引起的flag,由于是轮询,所以不必要一直执行,于是轮询完一次后,就可以让出CPU资源,供其它task使用:

void main_task() _task_ 1
{
	while(1) {
		buzzer_handler();
		button_handler();
		output_handler();
		input_handler();
		os_switch_task();
	}
}

  当一个task需要同步等待某种信号的发生才能继续工作的时候,就用os_wait()。例如,有一个buzzer_task,它主要等待按键按下的时候才发出声音,于是等待button_task发来信号才能工作:

uint8_t g_beep;
void buzzer_task() _task_ 2
{
	while(1) {
		os_wait1(K_SIG);
		buzzer_set_beep(g_beep);
	}
}

03 - 总结

  • 具有轮询性质的task用os_switch_task(),具有同步性质的task用os_wait
  • os_switch_task()让task进入ready态;os_wait()让task进入waiting态

  • 01-【RTX51 Tiny入门】-RTX51 Full & Tiny简介
  • 02-【RTX51 Tiny入门】-资源占用情况
  • 03-【RTX51 Tiny入门】-内核组成
  • 04-【RTX51 Tiny入门】-任务和调度器
  • 05-【RTX51 Tiny入门】-OS API函数
  • 06-【RTX51 Tiny入门】-查看RTX51 Tiny官方例程
  • 07-【RTX51 Tiny入门】-使用RTX51 Tiny
  • 08-【RTX51 Tiny入门】-Conf_tny.A51配置文件
  • 09-【RTX51 Tiny初级】-K_TMO与K_IVL的区别和使用场合
  • 10-【RTX51 Tiny初级】-os_send_signal()和os_set_ready()的区别和使用场合
  • 11-【RTX51 Tiny初级】-os_wait和os_switch_task区别和使用场合
  • 12-【RTX51 Tiny初级】-解决多重调用问题(MULTPLE CALL TOSEGMENT)
  • 13-【RTX51 Tiny高级】-进行Task的划分与拆分
  • 14-【RTX51 Tiny高级】-修改默认产生时间片的定时器T0为其它定时器
  • 15-【RTX51 Tiny高级】-考虑Round-Robin的开启与关闭
  • 16-【RTX51 Tiny高级】-解决Task之间的通讯和耦合问题
  • 17-【RTX51 Tiny高级】-Task ID隐藏的优先级问题
  • 18-【RTX51 Tiny高级】-系统架构的设计
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 《rtx51_tiny高级编程.pdf》是一本关于RTX51_Tiny高级编程的书籍。RTX51_Tiny是基于Intel 8051单片机的一种低成本实时操作系统。本书主要介绍了如何利用RTX51_Tiny实现高级编程技术。 该书首先对RTX51_Tiny的基本概念进行了解释,并介绍了其基本组成和工作原理。然后,书中详细介绍了如何使用RTX51_Tiny的任务管理机制,包括任务的创建、删除、挂起和恢复等。此外,还介绍了如何利用消息队列、信号量和互斥量等机制实现任务间的通信和同步。 除此之外,书中还介绍了如何使用RTX51_Tiny的定时器和时钟功能,实现任务的定时调度和时序控制。同时,还介绍了中断处理和异常处理的机制和技巧。 在高级编程方面,该书介绍了如何优化程序的性能和资源利用率。通过使用RTX51_Tiny提供的工具和API,可以进行任务的优先级调整、资源管理和内存管理等操作,提高程序的效率和可靠性。 此外,本书还介绍了如何进行调试和错误处理,包括使用调试工具和技巧、处理异常情况和错误码等。 总的来说,《rtx51_tiny高级编程.pdf》是一本全面而深入的关于RTX51_Tiny高级编程的指南,对于想要学习和应用RTX51_Tiny的开发者来说是一本宝贵的参考资料。 ### 回答2: 对于RTX51_Tiny高级编程.pdf,它是一本与嵌入式系统开发相关的高级编程指南。RTX51_Tiny是一个实时操作系统内核,常用于51系列单片机的开发。本书主要介绍了如何使用RTX51_Tiny进行高级编程。 该书包含了以下几个方面的内容: 首先,介绍了RTX51_Tiny的概念和架构。阅读者可以了解它的基本原理和特点,以及与其他操作系统内核的比较。 其次,详细讲解了RTX51_Tiny的编程接口和常用函数。这些函数包括任务管理、中断处理、时间管理、信号量等等,通过这些函数的使用,开发者可以轻松构建复杂的实时系统。 此外,书中还详细介绍了如何使用RTX51_Tiny进行任务调度和系统优化。通过合理的任务安排和系统配置,可以提高系统的响应速度和性能。 最后,书中还提供了一些示例代码和实际应用案例,帮助读者更好地理解和应用所学知识。这些案例涵盖了不同领域的嵌入式系统开发,包括通信、控制、数据处理等等。 总而言之,RTX51_Tiny高级编程.pdf是一本全面而实用的嵌入式系统开发指南。它适合那些已经掌握了51系列单片机基础知识,并希望深入学习和应用RTX51_Tiny的开发者。通过学习本书,读者可以更好地理解和掌握RTX51_Tiny的高级编程技巧,提升嵌入式系统开发的能力。 ### 回答3: 《rtx51_tiny高级编程.pdf》是一本关于RTX51_Tiny高级编程的电子书。RTX51_Tiny是一种用于8051系列单片机的实时操作系统(RTOS),它提供了一些高级功能和特性,可以帮助开发者更好地管理和控制嵌入式系统。 该电子书内容详实,通过阅读可以学习到RTX51_Tiny的设计原理、使用方法和相关编程技巧。书中首先介绍了RTX51_Tiny的基础知识,如任务、信号量、消息和邮箱等。然后讲解了如何在嵌入式系统中实现多任务并行执行、任务间的同步与通信等重要概念。 此外,书中还涵盖了一些常用的编程案例和技巧,例如如何在RTX51_Tiny环境下实现定时器、中断服务例程、任务切换等。这些案例和技巧可以帮助开发者更好地理解和应用RTX51_Tiny,提高系统的可靠性和性能。 总之,这本《rtx51_tiny高级编程.pdf》是一本对于学习和应用RTX51_Tiny操作系统非常有价值的电子书,适合那些对嵌入式系统开发和实时操作系统有兴趣的开发者阅读和参考。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值