OS是个趋势,它的思想在现代管理活动中到处可以看见.
农民:"嵌入式裸奔从宏观上看,是一个巨大的平均器,将处理事件平均化,谁冒泡就敲谁。" 其实仔细看看,OS也一样的.
1.不要在乎任务切换花费的几十个US.(当然任务也不要切的太细了.任务越多,说明这个系统越赚钱,否则...) 2.不要在乎临界状态对中断的响应的影响.(移植好了,实话说不用去计较) 3.不论是裸奔还是跑OS,"缓冲"是取得胜利的法宝之一.有时候,会同时冒出好几个泡泡,在飞到天花板上之前,消灭它们,就是好系统. 4.用上了OS,感觉没有裸奔爽,这个是不可能的,一定**认为不爽,那么就在task0(下),一路奔到底也可以, 时拍当然不能取消,它也属于农民说得"弱实时部分",这个开销一定要的.这样就和裸奔一个样. 5.一定要学习好农民的嵌入式裸奔思想,在今后上操作系统时,对任务的划分和内部上的处理分析检讨上不会举棋不定现象.
HOTPOWER的框架分析过,他看待任务大概只有两种:1周期性任务,2非周期性任务(事件触发的).周期性的任务全部交给定时器中断服务去做.非周期性的分析后,一些纳入周期性任务对待,一些用硬中断驱动.HOTPOWER的框架做小系统非常经典,因此建议小系统学习HOTPOWER,还比较省电.不要上OS了.
task0(){//弱实时部分/后台/模块怎么看都可以. OSSemPend(X0_SEM, 8, &err);//case STATUS0: //if(EVENT0) //XX0_MainLoop() } task1(){ OSSemPend(X1_SEM, 8, &err);//case STATUS1: //if(EVENT1) //XX1_MainLoop() } task2(){ OSSemPend(X2_SEM, 8, &err);//case STATUS2: //if(EVENT2) //XX2_MainLoop() } task3(){ OSSemPend(X3_SEM, 8, &err);//case STATUS3: //if(EVENT3) //XX3_MainLoop() } task4(){ OSSemPend(X4_SEM, 8, &err);//case STATUS4: //if(EVENT4) //XX4_MainLoop() } task5(){ OSSemPend(X5_SEM, 8, &err);//case STATUS5: //if(EVENT5) //XX5_MainLoop() } task6(){ OSSemPend(X6_SEM, 8, &err);//case STATUS6: //if(EVENT6) //XX6_MainLoop() } task7(){ OSSemPend(X7_SEM, 8, &err);//case STATUS7: //if(EVENT7) //XX7_MainLoop() }
idel(){ // 真正后台 ;//看个人发挥了. }
一个样子的,缓冲最要紧.!! |