UCOS-II移植ARM的读书笔记

UCOS-II移植ARM的读书笔记

ID:37907808

大小:36.50 KB

页数:3页

时间:2019-06-02

UCOS-II移植ARM的读书笔记_第1页
UCOS-II移植ARM的读书笔记_第2页
UCOS-II移植ARM的读书笔记_第3页
资源描述:

《UCOS-II移植ARM的读书笔记》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、UCOS-II移植ARM的读书笔记(12.15)UCOS-II移植ARM的读书笔记(12.15)移植的工作难以分析下去,先来几个UCOS的使用范例看看吧第一个范例:voidmain(void){PC_DispClrScr(DISP_FGND_WHITE+DISP_BGND_BLACK);/*PC的清屏函数,PC_DispClrScr(INT8Ucolor),这里调用时是前景色为白色,背景色为黑色*/OSInit();/*InitializeuC/OS-II,初始化UCOS-II,在使用任何功能之前必须调用OSInit函数,建立两个任务:空闲任务-所有其他任务均未就绪时运行,统计任务-计算

2、CPU的利用率*/PC_DOSSaveReturn();/*SaveenvironmenttoreturntoDOS允许程序在正式开始多任务前,保存重要的寄存器的值,以保证UCOS能够正常地返回DOS*/PC_VectSet(uCOS,OSCtxSw);/*InstalluC/OS-II'scontextswitchvector,用于设定中断向量表的内容。*/RandomSem=OSSemCreate(1);/*Randomnumbersemaphore,建立一个信号量,并制定信号量的初值为1,OSSemCreate(1)返回一个指向信号量的指针,那么之后对该信号量的操作全部通过这个指针

3、来实现*/OSTaskCreate(TaskStart,(void*)0,&TaskStartStk[TASK_STK_SIZE-1],0);/*至少建立一个任务,TaskStart为指向该任务运行代码的指针,第二个参数是一个指向任务初始化数据的指针,第三个是任务的堆栈栈顶,当堆栈是从上到下,必须把堆栈高地址传给该函数,最后一个参数指定建立的任务的优先级,数值越小优先级越高,每个任务的优先级都是介于0-62之间独一无二的。*/OSStart();/*Startmultitasking,调用该函数将控制权交给内核,开始运行多任务*/}OSStart函数会让优先级最高的就绪任务开始运行,即T

4、askStartvoidTaskStart(void*pdata){#ifOS_CRITICAL_METHOD==3/*AllocatestorageforCPUstatusregister*/OS_CPU_SRcpu_sr;#endifchars[100];INT16Skey;pdata=pdata;/*Preventcompilerwarning,这是这个参数是当任务建立时传递过来的一个指针*/TaskStartDispInit();/*Initializethedisplay初始化屏幕显示*/OS_ENTER_CRITICAL();/*关中断*/PC_VectSet(0x08,OS

5、TickISR);/*InstalluC/OS-II'sclocktickISR*/PC_SetTickRate(OS_TICKS_PER_SEC);/*Reprogramtickrate*/OS_EXIT_CRITICAL();/*开中断*/OSStatInit();/*InitializeuC/OS-II'sstatistics测试所使用的处理器的速度,得知处理器在运行所有应用任务时实际的CPU使用率*/TaskStartCreateTasks();/*Createalltheapplicationtasks建立更多任务,10个显示不同字符的任务,在每次建立一个新任务的时候,UCOS

6、都会判断新建立的任务是否比建立它们的任务优先级更高,如果更高,这个新建立的任务将立刻开始运行。*/for(;;){TaskStartDisp();/*Updatethedisplay*/if(PC_GetKey(&key)==TRUE){/*Seeifkeyhasbeenpressed*/if(key==0x1B){/*Yes,seeifit'stheESCAPEkey*/PC_DOSReturn();/*ReturntoDOS*/}}OSCtxSwCtr=0;/*Clearcontextswitchcounter每秒都将记录任务切换次数的清零*/OSTimeDlyHMSM(0,0,1,

7、0);/*Waitonesecond将自身挂起1s,1s是通过四个参数传送的,小时,分钟,秒,毫秒*/}}staticvoidTaskStartCreateTasks(void){INT8Ui;for(i=0;i

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。