- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
UCOS-II在51单片机上的移植.
UCOS-II在51单片机上的移植
做操作系统的移植首先明白什么是移植,操作系统是一种鱼硬件(处理器)相关的软件,根据某一种处理器来设计的操作系统通常不能运行在那其他处理器。所谓的移植是指修改操作系统,然后加载到一个处理器上。本文只讲解步骤,至于理论知识,需要大家自己学习。
步骤:
在UCOS-II的官网上下载,操作系统。
在网上找到或者自己建三四个文件:
OS_CPU_A.ASSM
OS_CPU.H
OS_CPU_C.C
OS_CFG.H
以上文件需要修改
3,移植源码的编写和修改
OS_CPU.H
定义与编译器有关的数据类型
typedef unsigned char BOOLEAN; /* 不能使用bit定义,结构 */
typedef unsigned char INT8U; /* 无符号8位数 */
typedef unsigned char INT8S; /* 有符号8位数 */
typedef unsigned int INT16U; /* 无符号16位数 */
typedef signed int INT16S; /* 有符号16位数 */
typedef unsigned long INT32U; /* 无符号32位数 *
typedef signed long INT32S; /* 有符号32位数 */
typedef float FP32; /* 单精度浮点数 */
typedef double FP64; /* 双精度浮点数 */
typedef unsigned char OS_STK; /* 定义堆栈入口宽度为8位 */
typedef unsigned char OS_CPU_SR; /* 定义CPU状态字的宽度为8位 */
#define OS_TASK_SW() OSCtxSw() /* 任务级的任务切换宏 */
定义临界段宏:
#define OS_ENTER_CRITICAL() EA=0
#define OS_EXIT_CRITICAL() EA=1
OS_CPU_C.C?
初始化任务栈
void *OSTaskStkInit(void(*task)(void *pd), void *ppdata, void *ptos, INT16U opt) REENTRANT
{
OS_STK *stk;
ppdata=ppdata; //pata data 为52文件关键字
opt =opt; /* opt没被用到,保留此语句防止警告产生 */
stk =(OS_STK *)ptos; /* 任务堆栈最低有效地址 */
*stk++=15; /* 任务堆栈长度 */
*stk++=(INT16U)task 0xFF; /* 任务代码地址低8位 */
*stk++=(INT16U)task 8; /* 任务代码地址高8位 */
/* 处理器是按特定的顺序将寄存器存入堆栈的,所以用户在将寄存器存入堆栈的时候也要依照这一顺序 */
*stk++=0x00; /* PSW */
*stk++=0x0A; /* ACC */
*stk++=0x0B; /* B */
*stk++=0x00; /* DPL */
*stk++=0x00; /* DPH */
*stk++=0x00; /* R0 */
*stk++=0x01; /* R1 */
*stk++=0x02; /* R2 */
*stk++=0x03; /* R3 */
*stk++=0x04; /* R4 */
*stk++=0x05; /* R5 */
*stk++=0x06; /* R6 */
*stk++=0x07; /* R7 */
/* 不用保存SP,任务切换时根据用户堆栈长度计算得出 */
*stk++=(INT16U)(ptos+MAX_STK_SIZE) 8; /* ?C_XBP 仿真堆栈指针高8位 */
*stk++=(INT16U)(ptos+MAX_STK_SIZE)
您可能关注的文档
最近下载
- 智算中心及算力产业集群项目运营管理方案.docx VIP
- 2025安徽芜湖市湾沚区招聘社区工作者11人考试备考题库及答案解析.docx VIP
- 锅炉安装改造维修质量保证体系文件(手册+程序文件+表格+工艺文件汇编)-符合TSG 07-2019特种设备质量保证管理体系.docx
- 甲状腺科普宣教.pptx VIP
- 贵州省2025年高职院校分类考试招生中职生文化综合语文试题答案.docx VIP
- 智算中心及算力产业集群项目节能评估报告.docx VIP
- 甲状腺的科普宣教.pptx VIP
- 高考试题——物理(全国卷)云南.doc VIP
- 智算中心建设可行性分析.docx VIP
- 产前筛查实验室标准操作程序文件.pdf VIP
文档评论(0)