欢迎来到天天文库
浏览记录
ID:14329657
大小:75.50 KB
页数:36页
时间:2018-07-28
《ucos-ii移植for 8051》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、ucos-ii移植for8051也可以跟我索要全部移植代码,我将给你一个keil工程,你只需电击一下编译按扭,在软件仿真运行即可在串口1窗口里看到uCOS-II的风采!(不需任何编程,当然除了你以后要添加应用任务)注意不要将本移植代码应用于商业!!!如果那位大虾,能更有好的建议,请跟我联系,不胜感激!//--我们的技术是你的!www.icwin.netQQ:75011221呢称:电子牛EMAIL:niuyimail@126.comOS_CPU_C.C/****************************************************
2、*******************************************************INITIALIZEATASK'SSTACK**Description:ThisfunctioniscalledbyeitherOSTaskCreate()orOSTaskCreateExt()toinitializethe*stackframeofthetaskbeingcreated.Thisfunctionishighlyprocessorspecific.**Arguments:taskisapointertothetaskcode**o
3、s_pdataisapointertoausersupplieddataareathatwillbepassedtothetask*whenthetaskfirstexecutes.**ptosisapointertothetopofstack.Itisassumedthat'ptos'pointsto*a'free'entryonthetaskstack.IfOS_STK_GROWTHissetto1then*'ptos'willcontaintheHIGHESTvalidaddressofthestack.Similarly,if*OS_STK_GR
4、OWTHissetto0,the'ptos'willcontainstheLOWESTvalidaddress*ofthestack.**optspecifiesoptionsthatcanbeusedtoalterthebehaviorofOSTaskStkInit().*(seeuCOS_II.HforOS_TASK_OPT_???).**Returns:Alwaysreturnsthelocationofthenewtop-of-stack'oncetheprocessorregistershave*beenplacedonthestackinth
5、eproperorder.**Note(s):Interruptsareenabledwhenyourtaskstartsexecuting.Youcanchangethisbysettingthe*PSWto0x0002instead.Inthiscase,interruptswouldbedisabledupontaskstartup.The*applicationcodewouldberesponsibleforenablinginterruptsatthebeginningofthetask*code.YouwillneedtomodifyOST
6、askIdle()andOSTaskStat()sothattheyenable*interrupts.Failuretodothiswillmakeyoursystemcrash!**********************************************************************************************************//*at89c55wdPDL(spformLOWtoHIGH):(堆栈指针所指的栈顶数据为有效数据)装入堆栈指针ptos到stkstk-->入栈:task底高(高
7、内存)入
8、
9、入栈:ACC栈
10、
11、入栈:B顺
12、
13、入栈:DPH//暂时忽略第二指针序
14、
15、入栈:DPL
16、/
17、入栈:PSW
18、
19、入栈:R7-R4
20、______
21、入栈:os_pdata(R3,R2,R1)用寄存器传递os_pdata入栈:R0(底内存)//入栈:DPS??//双数据指针选择寄存器??//入栈:PC自己应该参照编译器定义入栈/出栈顺序,写出来备以后查阅*/OS_STK*OSTaskStkInit(void(*task)(void*pd)LG_REENTRANT,void*os_pdata,OS_STK*ptos,INT16Uopt)LG_REENTRA
22、NT{//INT16U*stk;OS_STK*stk;opt=opt;/*'op
此文档下载收益归作者所有