void OSInit (void){ INT16U i; /*****/
摘 要:从Keil C51的内存空间管理方式入手,着重讨论实时操作系统在任务调度时的重入问题,分析一些解决重入的基本方式与方法:分析实时操作系统任务调度的占先性,提出非占先的任务调...
一、什么是PendSV
PendSV是可悬起异常,如果我们把它配置最低优先级,那么如果同时有多个异常被触发,它会在其他异常执行完毕后再执行,而且任何异常都可以中断它。更详细的内容...
一、上篇回顾
上次代码中Task_Switch实现了两个任务的切换,代码如下:
void Task_Switch()
{
if(g_OS_Tcb_CurP == &am...
本节我们将从实时操作系统来讲解,主要是从下面3个方面进行讲解:
1.操作...
1:任务有切换,但切换到某个任务,总是出现hardfault错误?【现象:给出错的任务换一个大小一样但名字不一样的堆栈就可以,使用原来名字的堆栈就是出错】
解决:
1:查看ha...
我们前边学串口通信的时候,比较注重的是串口底层时序上的操作过程,所以例程都是简单的收发字符或者字符串。在实际应用中,往往串口还要和电脑上的上位机软件进行交互,实现电脑软件发送不...
互斥锁一个明显的缺点是他只有两种状态:锁定和非锁定。
而条件变量通过允许线程阻塞和等待另一个线程发送信号的方法弥补了互斥锁的不足,他常和互斥锁一起使用。使用时,条...