第3章uCosII新讲述.ppt

  1. 1、本文档共106页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章uCosII新讲述

* 移植要点 定义函数OS_ENTER_CRITICAL和OS_ EXIT _CRITICAL。 定义函数OS_TASK_SW执行任务切换。(包含OSCtxSw) 定义函数OSCtxSw实现用户级上下文切换,用纯汇编实现。 定义函数OSIntCtxSw实现中断级任务切换,用纯汇编实现。 定义函数OSTickISR。 定义OSTaskStkInit来初始化任务的堆栈。 6、?C/OS-Ⅱ移植 * 例:?C/OS-II在ARM上的移植 设置OS_CPU.H中与处理器和编译器相关的代码 用C语言编写六个操作系统相关的函数(OS_CPU_C.C) 用汇编语言编写四个与处理器相关的函数(OS_CPU_A.S) 6、?C/OS-Ⅱ移植 * /* * DATA TYPES * (Compiler Specific) */ typedef unsigned char BOOLEAN; typedef unsigned char INT8U; /* Unsigned 8 bit quantity */ typedef signed char INT8S; /* Signed 8 bit quantity */ typedef unsigned int INT16U; /* Unsigned 16 bit quantity */ typedef signed int INT16S; /* Signed 16 bit quantity */ typedef unsigned long INT32U; /* Unsigned 32 bit quantity */ typedef signed long INT32S; /* Signed 32 bit quantity */ typedef float FP32; /* Single precision floating point */ typedef double FP64; /* Double precision floating point */ typedef unsigned int OS_STK; /* Each stack entry is 16-bit wide */ typedef unsigned int OS_CPU_SR; /* Define size of CPU status register (PSR = 32 bits) */ 设置与处理器和编译器相关的代码OS_CPU.H * /* critical section macros use method 3 (save to local var cpu_sr) */ extern int INTS_OFF(void); extern void INTS_ON(void); #define OS_ENTER_CRITICAL() { cpu_sr = INTS_OFF(); } #define OS_EXIT_CRITICAL() { if(cpu_sr == 0) INTS_ON(); } #define OS_STK_GROWTH 1 /* Stack grows from HIGH to LOW memory */ #define STACKSIZE 256 6、?C/OS-Ⅱ移植 与 ARM处理器相关的代码,使用OS_ENTER_CRITICAL() 和OS_EXIT_CRITICAL() 宏开启/关闭中断 * INTS_OFF mrs r

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档