利用中断或异常实现协程多任务的切换
利用中断或异常实现协程多任务的切换--微控制器中基于协程的实时协作多任务方法(5)在以往用汇编编程时,我有时借用中断实现协程多任务的切换,即借用中断完成协程的YIELD。这种方法也可用于C与汇编混合编程实现无标号切换。前面说到,用CALL指令可以取得后一指令的地址
发表于 2013/2/27 4:30:04
阅读(5662)
实现协程多任务的无标号单步跳转方法(8051)
实现协程多任务的无标号单步跳转方法(8051)--微控制器中基于协程的实时协作多任务方法(4)目前为止,没有一种8051的C编译器支持Protothreads的addrlabels方法。所以,我们同样要创造一种高效的协程重入方法,来代替目标代码效率较低的switch-case方法。下面,要说明用C和
发表于 2013/2/23 4:39:33
阅读(3935)
实现协程多任务的无标号单步跳转方法
实现协程多任务的无标号单步跳转方法--微控制器中基于协程的实时协作多任务方法(3)Protothreads的switch方法编译后的目标代码是通过多步比较才找到case的入口。而Protothreads的addrlabels方法的高效就在于它是用“goto*lc”一步跳转到后续点LC(LocalContinuation)。
发表于 2013/2/19 4:14:12
阅读(5585)
图解Protothreads
图解Protothreads--微控制器中基于协程的实时协作多任务方法(2)在对Protothreads的简化做进一步的引申前,对其机制作深入理解是有好处的。我发现,Protothreads与我30年前构思并使用的一种实时多任务编程方法([1]的第三部分--软件设计思想)异曲同工。Protothrea
发表于 2013/2/14 5:24:47
阅读(5611)
Protothreads的简化
Protothreads的简化--微控制器中基于协程的实时协作多任务方法(1)以小型微控制器,例如MCS51、MSP430、MICROCHIP等单片机、以至于ARMCortex-M0甚至M3,为核心的嵌入式系统中,由于资源的限制,实时操作系统是无法施展其优势的。虽然资源丰富的芯片不断出现,但是,在单
发表于 2013/2/12 6:40:12
阅读(6820)
