真正的将ucosii移植到89s52上,让256ram也能运行ucosii,供大家学习探讨。
单片机源程序如下:
- #include "reg51.h"
- #include "ucos_ii.h"
- /****************************
-
- 1.最大可用任务3个,再多data空间不足。
- 2.可用服务只有OS_time 函数,其他服务无法使用,ram开销太多
- 3.最大任务优先级8级
- 4.所有任务堆栈一样,stksize。
- 5.模拟堆栈与系统堆栈共用,系统堆栈满增,模拟堆栈满减
- 6.任务堆栈只能放data区 ,其他变量放idata
- 7.仅供学习研究,不足之处请指教。
- 9.编译模式,小模式
- 使用单片机89s52
- RAM :256
-
- ****************************/
- #define task1prio 2
- #define task2prio 4
- sbit P10 =P1^0;
- sbit P11 =P1^1;
- INT8U data task1stk[stksize];
- INT8U data task2stk[stksize];
- void max(void)reentrant ;
- void task1(void);
- void task2(void);
- void main(void)
- {
- OSInit();
- OSTaskCreate(task1,(void* )0,task1stk,task1prio);
- OSTaskCreate(task2,(void* )0,task2stk,task2prio);
- OSStart();
-
- }
- void task1(void)
- {
- while(1)
-
- {
- //P10 = !P10;
- max();
- OSTimeDlyHMSM(0,0,1,0);
- }
- }
- void task2(void)
- {
- while(1)
-
- {
-
- P11 = !P11;
- OSTimeDlyHMSM(0,0,2,0);
- }
- }
- void max(void)reentrant
- {
- INT32U i;
- i++;
- }
- ……………………
- …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
89s52-ucosii.7z
(152.46 KB, 下载次数: 46)
|