如何将UCOSII移植到51单片机上.doc

上传人:白大夫 文档编号:3427014 上传时间:2019-08-24 格式:DOC 页数:4 大小:22.50KB
返回 下载 相关 举报
如何将UCOSII移植到51单片机上.doc_第1页
第1页 / 共4页
亲,该文档总共4页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《如何将UCOSII移植到51单片机上.doc》由会员分享,可在线阅读,更多相关《如何将UCOSII移植到51单片机上.doc(4页珍藏版)》请在三一文库上搜索。

1、如何将UCOSII移植到51单片机上一、准备工作1. 开发环境: Keil C集成开发环境2. 源代码:UCOSII的源代码,网上可以自己下载3. 文件分析:1)UCOSII文件中与处理器无关的文件:OS_CORE.COS_FLAG.COS_MBOX.COS_MEM.COS_MUTEX.COS_Q.COS_SEM.COS_TASK.COS_TIME.CUCOS_II.CUCOS_II.H以上这些文件在c51移植过程中只需给函数加上可重入性即可,即在每个函数后面添加关键字:reentrant2)与应用相关的文件:INCLUDES.H其中包含51单片机头文件和相关应用头文件OS_CFG.H这个文件

2、对于要应用系统中的相关工具,如邮箱,信号等,都要在这个头文件中把相关宏设置为13)与处理器相关的文件:OS_CPU.H相关的数据类型、关中断、任务堆栈方向、任务切换宏定义等OS_CPU_A.ASM一堆的汇编和伪指令,我表示没去深究,但是是整个移植的关键所在OS_CPU_C.COSTaskStkInit()函数和系统中断定时器的编写。还有一个重要的思想就是c51堆栈的设计,我对于这个有点头大,不清楚。二、开始修改和编写代码移植。我没有经历过移植的过程,所以我没有发言权,我只参考51单片机牛人的代码,学着应用就行由于在CSDN上忘记移植者是谁了,我在这将重要文件中的代码贴出参考参考,只做交流使用。

3、includes.h#ifndef _INCLUDES_#define _INCLUDES_#include “uCosiios_cpu.h”#include “uCosiios_cfg.h”#include “uCosiiucos_ii.h”#include“reg51.h”#endifOS_CFG.H#ifndef _OS_CFG_H#define _OS_CFG_H#define MaxStkSize 64 /*根据修改,每个任务使用同样大小的堆栈,这就是每个堆栈的大小*/#define OS_MAX_EVENTS 1 /* Max. number of event control bl

4、ocks in your applicaTIon 。. */* 。. MUST be 0 */#define OS_MAX_FLAGS 1 /* Max. number of Event Flag Groups in your applicaTIon 。. */* 。. MUST be 0 */#define OS_MAX_MEM_PART 1 /* Max. number of memory parTITIons 。. */* 。. MUST be 0 */#define OS_MAX_QS 1 /* Max. number of queue control blocks in your a

5、pplication 。. */* 。. MUST be 0 */#define OS_MAX_TASKS 3 /* Max. number of tasks in your application 。. */* 。. MUST be = 2 */#define OS_LOWEST_PRIO 4 /* Defines the lowest priority that can be assigned 。. */* 。. MUST NEVER be higher than 63! */#define OS_TASK_IDLE_STK_SIZE MaxStkSize /* Idle task sta

6、ck size (# of OS_STK wide entries),使用相同的栈大小*/#define OS_TASK_STAT_EN 0 /* Enable (1) or Disable(0) the statistics task */#define OS_TASK_STAT_STK_SIZE MaxStkSize /* Statistics task stack size (# of OS_STK wide entries),使用相同的栈大小*/#define OS_ARG_CHK_EN 0 /* Enable (1) or Disable (0) argument checking

7、*/#define OS_CPU_HOOKS_EN 1 /* uC/OS-II hooks are found in the processor port files */* - EVENT FLAGS - */#define OS_FLAG_EN 0 /* Enable (1) or Disable (0) code generation for EVENT FLAGS */#define OS_FLAG_WAIT_CLR_EN 0 /* Include code for Wait on Clear EVENT FLAGS */#define OS_FLAG_ACCEPT_EN 0 /* I

8、nclude code for OSFlagAccept() */#define OS_FLAG_DEL_EN 0 /* Include code for OSFlagDel() */#define OS_FLAG_QUERY_EN 0 /* Include code for OSFlagQuery() */* - MESSAGE MAILBOXES - */#define OS_MBOX_EN 1 /* Enable (1) or Disable (0) code generation for MAILBOXES */#define OS_MBOX_ACCEPT_EN 0 /* Includ

9、e code for OSMboxAccept() */#define OS_MBOX_DEL_EN 0 /* Include code for OSMboxDel() */#define OS_MBOX_POST_EN 1 /* Include code for OSMboxPost() */#define OS_MBOX_POST_OPT_EN 0 /* Include code for OSMboxPostOpt() */#define OS_MBOX_QUERY_EN 0 /* Include code for OSMboxQuery() */* - MEMORY MANAGEMENT - */#define OS_MEM_EN 0 /* Enable (1) or Disable (0) code generation for MEMORY MANAGER */#define OS_MEM_QUERY_EN 0 /* Include code for OSMemQuery() */

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1