3.1 移植代码

(1)μC/OS-Ⅱ与CPU类型无关的代码有μC/OS-Ⅱ.H,μC/OS-Ⅱ.C,OS_CORE.C,OS_TASK.C,OS_TIME.C,OS_SEM.C,OS_MBOX.-C,OS_MUTEX.C,OS_FLAG.C,也就是说这些文件可以不用修改就直接添加。

(2)μC/OS-Ⅱ与CPU类型有关的代码有OSCPU.H,OS_CPU_A.ASM,OS_CPU_C.C,也就是说用户需要根据所选CPU的类型将这些函数进行修改后才能添加入内核。

3.2 OS_CPU.H文件的定义与修改

OS_CPU.H文件定义了与编译器及CPU相关的数据类型、堆栈的宽度和增长方式以及开关中断的宏定义。由于微处理器和微控制器所支持的堆栈增长方式不同,这里需要根据所选芯片LPC2378支持的类型对宏OS_STK_GRWOTH进行定义,由于ARM7 TD-MI-S内核堆栈支持从上往下的生长方式,所以应做如下定义:

#define OS_STK_GROWTH 1 //堆栈是从上往下长的OS_CPU.H文件中另外3个宏OS_CRITICAL_METHOD,OS_ENTER_CRITICAL(),OS_EXIT_CRITICAL()用于定义开关中断的方式及开关中断的实现。通过调用开关中断2个宏来保护临界代码如下:

μC/OS-II操作系统移植在LPC2378上的系统测试及问题解决方法

3.3 OS_CPU_C.C文件中主要函数的定义及编写

OS_CPU_C.C中要求用户编写10个简单的函数:

μC/OS-II操作系统移植在LPC2378上的系统测试及问题解决方法

其他9个函数必须声明,但并不一定包含任务代码。

3.4 μC/OS-Ⅱ的移植

  • UC3846控制芯片工作原理控制图 逆变焊机原理与用途
  • 数字万用表电阻档测试二极管正反向没有阻值(使用万用表测量二极管的正向电阻,为什么各档)
  • 学单片机需要学数电模电吗(学单片机要先学数电模电吗)
  • 电工怎么选择适合自己用的万用表(电工初学者买什么样的万用表好)
  • 单片机需要同时运行多个任务怎么办(单片机怎么同时执行多个任务)
  • 电机保护的方案取决于负载的机械特性
  • 绝缘电阻表正负搭接不复零位是怎么回事
  • 短路怎么用万用表查