杨为民
关闭总中断或者关闭系统中断是单片机RTOS最常用的临界区保护方法。但是如果需要保护的程序临界区较长,关闭总中断方法会导致所有的中断都被停止,这使得整个RTOS系统的实时响应能力下降,如果只关闭系统中断,那么像RTOS的时间系统就会受到影响,影响定时时间的精度。利用对任务切换加锁/解锁进行临界区保护的方法是单片机RTOS临界区保护的最古老方法之一。采用这个方法,只是对任务切换的功能加锁,进入临界区后锁住RTOS不让进行任务切换,始终执行当前任务,直到退出临界区保护。本介绍一个对任务切换进行加锁/解锁的嵌套性进行测试的程序和对两款在STC32G单片机上使用替代软中断进行任务调度的uC/OS-II移植版进行测试的结果。本文测试的硬件平台是使用STC32G单片机的“降龙棍”开发板,并在P2端口连接了一个8通道逻辑分析仪。 一、任务切换加锁/解锁的临界区保护方法测试(1)本文的测试程序是把上一篇文章的第二个测试程序的任务C里进入/退出临界区保护的语句修改为对任务切换加锁/解锁的语句得到的,见下图:
关闭总中断或者关闭系统中断是单片机RTOS最常用的临界区保护方法。但是如果需要保护的程序临界区较长,关闭总中断方法会导致所有的中断都被停止,这使得整个RTOS系统的实时响应能力下降,如果只关闭系统中断,那么像RTOS的时间系统就会受到影响,影响定时时间的精度。利用对任务切换加锁/解锁进行临界区保护的方法是单片机RTOS临界区保护的最古老方法之一。采用这个方法,只是对任务切换的功能加锁,进入临界区后锁住RTOS不让进行任务切换,始终执行当前任务,直到退出临界区保护。本介绍一个对任务切换进行加锁/解锁的嵌套性进行测试的程序和对两款在STC32G单片机上使用替代软中断进行任务调度的uC/OS-II移植版进行测试的结果。本文测试的硬件平台是使用STC32G单片机的“降龙棍”开发板,并在P2端口连接了一个8通道逻辑分析仪。 一、任务切换加锁/解锁的临界区保护方法测试(1)本文的测试程序是把上一篇文章的第二个测试程序的任务C里进入/退出临界区保护的语句修改为对任务切换加锁/解锁的语句得到的,见下图: