001a:
今天公开我的之前写的仿UCOS(只有多任务切换的功能,是我发的第一个贴的程序的升级版),任务建立的多少跟ram的空间大小有关,平台MCU:NEC公司的(现在为瑞萨公司)k0s系列9234,开发环境PM+。任务调用程序一览:voidtask1(void);//任务1函数声明voidtask2(void);/任务2函数声明voidtask3(void);/任务3函数声明unsignedchartask1_stask[30],task2_stask[30],task3_stask[30];//任务堆栈用到的数据空间voiddelay(unsignedinti){while(i--);}unsignedintii1,ii2;unsignedchara1;intj;voidmain(void){/*TODO.addusercode*/staticunsignedintj,i;ii1=0;ii2=0;PM3.3=0;PM3.2=0;PM4.2=0;//inti_task_sp();#asmmova,#0fehmovx,#0ffhmovwsp,ax#endasm//初始化SP指针cread_task(task1,task1_stask);cread_task(task2,task2_stask);cread_task(task3,task3_stask);//建立三个任务TM80_Start();//开始任务调度while(1);}voidtask1(void)//任务1内容{staticunsignedinti;i=1;stask_:while(1){//ii2++;//i=50000;P3.2=~P3.2;delay(20000);//while(i--);}ii2++;ii2++;ii2++;gotostask_;}voidtask2(void)//任务2内容{main_:while(1){//ii1++;//j=300;P3.3=~P3.3;delay(1000);//while(j--);//j=10000;//while(j--);//i=10000;//while(i--);//i=10000;//while(i--);}//ii1++;//ii1++;//ii1++;gotomain_;}voidtask3(void)//任务3内容{main_:while(1){//ii1++;//j=300;P4.2=~P4.2;delay(4000);//while(j--);//j=10000;//while(j--);//i=10000;//while(i--);//i=10000;//while(i--);}//ii1++;//ii1++;//ii1++;gotomain_;}caozuoxintong_v3.1.zip