


下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、UCOS-II移植ARM的读书笔记(12.15) UCOS-II移植ARM的读书笔记(12.15) 移植的工作难以分析下去,先来几个UCOS的使用范例看看吧 第一个范例:void main (void) PC_DispClrScr(DISP_FGND_WHITE + DISP_BGND_BLACK); /* PC的清屏函数,PC_DispClrScr(INT8U color),这里调用时是前景色为白色,背景色为黑色*/ OSInit(); /* Initialize uC/OS-II ,初始化UCOS-II,在使用任何功能之前必须调用OSInit函数,建立两个任务:空闲任务所有其他任务均未就绪
2、时运行,统计任务计算CPU的利用率*/ PC_DOSSaveReturn(); /* Save environment to return to DOS 允许程序在正式开始多任务前,保存重要的寄存器的值,以保证UCOS能够正常地返回DOS */ PC_VectSet(uCOS, OSCtxSw); /* Install uC/OS-II's context switch vector ,用于设定中断向量表的内容。*/ RandomSem = OSSemCreate(1); /* Random number semaphore,建立一个信号量,并制定信号量的初值为1,OSSemCreat
3、e(1)返回一个指向信号量的指针,那么之后对该信号量的操作全部通过这个指针来实现 */ OSTaskCreate(TaskStart, (void *)0, &TaskStartStkTASK_STK_SIZE - 1, 0); /*至少建立一个任务,TaskStart为指向该任务运行代码的指针,第二个参数是一个指向任务初始化数据的指针,第三个是任务的堆栈栈顶,当堆栈是从上到下,必须把堆栈高地址传给该函数,最后一个参数指定建立的任务的优先级,数值越小优先级越高,每个任务的优先级都是介于062之间独一无二的。*/ OSStart(); /* Start multitasking,调用该函
4、数将控制权交给内核,开始运行多任务 */ OSStart函数会让优先级最高的就绪任务开始运行,即TaskStartvoid TaskStart (void *pdata)#if OS_CRITICAL_METHOD = 3 /* Allocate storage for CPU status register */ OS_CPU_SR cpu_sr;#endif char s100; INT16S key; pdata = pdata; /* Prevent compiler warning,这是这个参数是当任务建立时传递过来的一个指针 */ TaskStartDispInit(); /* I
5、nitialize the display 初始化屏幕显示 */ OS_ENTER_CRITICAL(); /*关中断*/ PC_VectSet(0x08, OSTickISR); /* Install uC/OS-II's clock tick ISR */ PC_SetTickRate(OS_TICKS_PER_SEC); /* Reprogram tick rate */ OS_EXIT_CRITICAL(); /*开中断*/ OSStatInit(); /* Initialize uC/OS-II's statistics测试所使用的处理器的速度,得知处理器在运行所有应
6、用任务时实际的CPU使用率 */ TaskStartCreateTasks(); /* Create all the application tasks建立更多任务,10个显示不同字符的任务,在每次建立一个新任务的时候,UCOS都会判断新建立的任务是否比建立它们的任务优先级更高,如果更高,这个新建立的任务将立刻开始运行。 */ for (;) TaskStartDisp(); /* Update the display */ if (PC_GetKey(&key) = TRUE) /* See if key has been pressed */ if (key = 0x1B) /*
7、Yes, see if it's the ESCAPE key */ PC_DOSReturn(); /* Return to DOS */ OSCtxSwCtr = 0; /* Clear context switch counter 每秒都将记录任务切换次数的清零 */ OSTimeDlyHMSM(0, 0, 1, 0); /* Wait one second 将自身挂起1s,1s是通过四个参数传送的,小时,分钟,秒,毫秒 */ static void TaskStartCreateTasks (void) INT8U i; for (i = 0; i < N_TASKS;
8、i+) /* Create N_TASKS identical tasks */ TaskDatai = '0' + i; /* Each task will display its own letter */ OSTaskCreate(Task, (void *)&TaskDatai, &TaskStkiTASK_STK_SIZE - 1, i + 1); 上面的函数循环建立了十个Task任务,下面是Task任务的代码void Task (void *pdata) INT8U x; INT8U y; INT8U err; for (;) OSSemPend(RandomSem, 0, &err); /* 获取信号量*/ x = random(80); /* 获得随机数x*/ y = random(16); /*获得随机数y*/ OSSemPost(RandomSem); /* 释放信号量*/ /* Display the task number on the screen */ PC_DispChar(x, y + 5, *(char *)pdata, DISP_FGND_
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 IEC 62148-11:2024 EN-FR Fibre optic active components and devices - Package and interface standards - Part 11: 14-pin modulator integrated laser diode modules and pump laser
- 【正版授权】 ISO 18935:2025 EN Imaging materials - Colour images - Determination of water resistance of printed colour images
- 2025年建筑安全员知识题库及答案
- 2025-2030年中国采血器市场发展状况及前景趋势分析报告
- 2025-2030年中国薯片市场运行态势与投资战略研究报告
- 2025-2030年中国营养碘盐市场发展状况及营销战略研究报告
- 2025-2030年中国自动光学检测仪(AOI)市场运营状况及前景趋势分析报告
- 2025-2030年中国绝热隔音材料产业运行状况与投资策略研究报告
- 2025-2030年中国电解金属锰行业前景展望规划研究报告
- 2025-2030年中国电站设备行业运行态势及发展趋势分析报告
- 华东师大版七年级数学下册“第1周周考”
- 中国地方政府融资平台行业市场深度分析及投资前景展望报告
- 如何在初中数学教学中提升学生的核心素养
- 2025年广东中考物理学科模拟试卷(广东专属)
- 2025年包头铁道职业技术学院高职单招语文2018-2024历年参考题库频考点含答案解析
- 光伏安全施工方案范本
- 2025上半年江苏省南通如东事业单位招聘7人易考易错模拟试题(共500题)试卷后附参考答案
- 2025年湘教版二年级美术下册计划与教案
- GB/T 4706.30-2024家用和类似用途电器的安全第30部分:厨房机械的特殊要求
- 2024年岳阳职业技术学院单招职业技能测试题库及答案解析
- 消防安全管理制度完整版完整版
评论
0/150
提交评论