UCOS学习笔记(二)UCOSII与UCOSIII在F4上的移植

要想学习一个操作系统,最先要做的当然是移植了,把它移植到你的板子上,然后写写程序,读读源码,慢慢去吃透这个OS。

今天我就记录下UCOSII机UCOSIII在F4上的移植。

UCOSII

我在学习32时,一直学习的都是原子的寄存器版本的资料,所以说在移植时我也是优先向在寄存器例程上移植UCOS,但是,在移植UCOSII时我确实是成功了,在移植III的时候并没有搞出来,我最终还是移植到了库函数的例程下,以后我会再尝试在寄存器的例程下移植。

移植步骤(寄存器版本):

0、找一个基础工程,我选用的是跑马灯例程

 1、新建文件夹,三个:CONFIG、CORE、PORT
 2、向CORE文件夹添加文件:源码
3、向CONFIG添加文件:找移植好的复制
4、向PORT添加文件:找移植好的复制
5、将源码添加到工程中,CORE中要删掉UCOS_II_C, PORT添加: 
os_cpu.h,os_cpu_a.asm,os_cpu_c.c,CONFIG 添加俩个.h
(带锁只读,去锁属性去掉只读)
添加头文件路径
编译找问题
PendSV 上下文切换,注释掉UCOS中的(寄存器版本不需要
6、修改sys.h支持OS
注释it.c中滴答定时器的函数(寄存器版本不需要

 7、打开FPU: 在Define中加入:__FPU _USED=1(寄存器版本不需要

 8、复制一个main.c过来看看效果

    CONFIG中文件的用途:
        includes.h:包含一些头文件
        **os_cfg.h:UCOS II配置文件
    PORT中文件的用途:
        os_cpu.h:头文件
        os_cpu_a.asm:汇编文件,完成任务切换
        os_cpu_c.c:与CPU相关文件,移植时需要修改
        os_dgb.c:调试相关文件
        os_dgb_r.c:调试相关文件

完成以上步骤就完成了UCOSII的移植,说实话每个文件的作用,它的源码我完全没有读过,但是对于一个刚接触RTOS的新人来说,不要一下就扑到源码里,更重要的是先学会怎么用,然后再读源码学原理。

UCOSII文件结构:

UCOSIII

上面说到我并没有搞定UCOSIII在寄存器例程下的移植,所以说,这个的移植是基于库函数例程的。

移植步骤(库函数版本):

0、找一个基础工程,我选用的是跑马灯例程

 1、新建文件夹:UCOSIII
2、添加拷贝三个CPU、LIB、III
再新建两个,BSP,CONFIG
 BSP:bsp.c  bsp.h
 CONFIG:8个文件
3、向工程中添加分组--6个
添加文件、头文件路径
4、修改bsp.c   bsp.h
5、修改os_cpu_c.asm
6、修改os_cpu_c.c
7、修改os_cfg_app.h  屏蔽os_cpu_c.c中关于FPU堆栈的代码
 8、修改sys.h   支持ucos  注释掉it.c中滴答定时器的中断函数
9、编写main.c

注:以上的修改文件,作为初学者建议从已有例程中复制,自己编写难度极大

完成以上步骤就完成了UCOSIII的移植,在以后的博客中我会详细记录我学习UCOSIII的历程。

猜你喜欢

转载自blog.csdn.net/a568713197/article/details/81252115
F4