占先式内核

来源:互联网 发布:战翼长板哪家淘宝店好 编辑:程序博客网 时间:2024/05/03 12:33

现在公司用自己的微内核,用起来还是很方便的。唯一不解的是为什么不用流行的实时操作系统RTOS或者FreeRTos?

后来了解到原来是因为不明白为什么要使用占先式的调度机制!所以才没有使用流行的那些操作系统。

最近,在使用20PIN的pic16f677,用它做一般的控制以外,还用作为过电流保护的控制单元。软件上使用简单时间片轮询的任务调度,用外部中断触发保护功能。

这里有个问题,PIC16的中断是硬件堆栈,中断返回地址是硬件来做的。不能由我来控制。想到这里才好像明白了为什么要用占先式调度机制,就是为实时控制过程中永远都去执行最高优先级的任务。尤其是那些关键性能的保护或者响应。发生过流了,要立即关闭输出,定时一段时间之后再次尝试开启,重复。如果中断发生在输出任务中,中断返回还是在输出任务中,结果很可能像正常输出时一样,那样就糟糕了。正确的情况应该是这样的:中断返回后,直接到从第一个任务重新开始执行。

采用了一个折中的办法,在中断处理中关闭输出,设置一个标志,在输出任务中判断这个标志并再次关闭输出。

高边的电流检测有运放的工作电流的限制,采用差分放大的时候注意不要把放大倍数设置的太大,1~4倍左右就够了。

原创粉丝点击