本帖最后由 PaperKite 于 2012-6-7 16:25 编辑
想在一个定时器的中断里写上几个任务,任务到各自的时间条件后运行,长任务运行时间大于定时周期,所以定时器中断会重入自身(中断中又开启了),本次中断退出后接着跑上次中断时的长任务。
但是担心编译器会认为中断服务程序不会重入,或认为各个任务顺序执行,不同任务的自动变量不会同时出现,然后就把中断调用的任务中的自动变量空间重用,而实际上那个空间可能还在前一次中断时运行的被打断的任务里用着。
自动变量这个问题一般是编译器去考虑的事,只是不清楚做编译器的有没有把中断重入自身这个加进去了,感觉中断重入自身有点非主流的意思,呵呵。
只是想很简单的调度一下,任务少,堆栈不溢出,用全局变量是可以运行的,任务中定义自动变量会出问题吗?或者有什么好方法让任务抢占的运行呢?重在简单好写。。。 |