打印
[DemoCode下载]

ucos ii往不同的mcu上移植,需要改动哪些地方?

[复制链接]
961|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Luis德华|  楼主 | 2015-5-19 10:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
学习过单片机了,51的,avr的,想请教大家,往不同的mcu上移植ucos ii需要注意些什么呢?
沙发
dongnanxibei| | 2020-1-24 16:00 | 只看该作者
这个系统官网应该有个说明吧,入门手册应该介绍

使用特权

评论回复
板凳
xuanhuanzi| | 2020-1-24 16:32 | 只看该作者
要看硬件能否跑得动,需要不需要用RTo是

使用特权

评论回复
地板
xuanhuanzi| | 2020-1-24 16:32 | 只看该作者
要根据实际情况是否需要RTOS才能解决,是否跑的动。

使用特权

评论回复
5
xuanhuanzi| | 2020-1-27 13:32 | 只看该作者
先弄一本开发的书看看。

使用特权

评论回复
6
捉虫天师| | 2020-1-28 16:23 | 只看该作者
ucosII移植要修改的文件
首先,二话不说,先上ucos官网,官网才是学习的王道啊。ps:所有的知识都是参考官网。

移植ucos II 到一个芯片上,只需要修改下面三个文件:OS_CPU.H,OS_CPU_C.C,OS_CPU_A.ASM。

具体来说,移植主要包括以下几项内容

(1).OS_CPU.H :用#define设置一些常量的值,声明10个数据类型,用#define声明三个宏。

(2).OS_CPU_C.C : 用C语言编写六个简单的函数。

(3).OS_CPU_A.ASM : 编写四个汇编语言函数。

下面以移植到lPC2292上为例,理解下移植过程。

(1).首先看OS_CPU.H这个文件

下图是我项目中的OS_CPU.H文件,可以看到,它包括两部分的代码,第一部分是定义与编译器无关的数据类型,第二部分是与ARM7体系结构
相关的定义。

为什么要定义数据类型呢?

因为不同的微处理器有不同的字长,所以μC/OS-Ⅱ的移植包括了一系列的类型定义以确保其可移植性。这也是第一部分程序的作用。

程序用有这样的一句

#define OS_STK_GROWTH 1

这一句程序有什么作用?

它的作用是定义堆栈方向,绝大多数的微处理器和微控制器的堆栈是从上往下长的。但是某些处理器是用另外一种方式工作的。μC/OS-Ⅱ
被设计成两种情况都可以处理,只要在结构常量OS_STK_GROWTH中指定堆栈的生长方式(如下所示)就可以了。置OS_STK_GROWTH为0表示堆栈从
下往上长。置OS_STK_GROWTH为1表示堆栈从上往下长。

(2).其次看OS_CPU_C.C这个文件

在这个文件里我们需要编写以下六个函数

OSTaskStkInit()

//初始化任务堆栈结构

OSTaskCreateHook()

//允许用户或使用用户的移植实例的用户扩展μC/OS-Ⅱ的功能

OSTaskDelHook()

//该函数在把任务从μC/OS-Ⅱ的内部任务链表中解开之前被调用

OSTaskSwHook()

//当发生任务切换的时候调用OSTaskSwHook()

OSTaskStatHook()

//用户可以用OSTaskStatHook()来扩展统计功能

OSTimeTickHook()

OSTaskTimeHook()在每个时钟节拍都会被OSTaskTick()调用

事实上,上面的六个函数只有OSTaskStkInit()是必须编写的,而其它的五个函数只需定义就可。

在我的项目里OS_CPU_C.C,也编写了OSTaskStkInit()这个函数。

(3).最后看OS_CPU_A.ASM这个文件

这个文件都是汇编,绝对可以让你看得醉生欲死,欲罢不能,你懂我的。

在OS_CPU_A.ASM这个文件里要求用户编写四个简单的汇编语言函数:

OSStartHighRdy()

OSCtxSw()

OSIntCtxSw()

// OSIntCtxSw()是μC/OS-Ⅱ(和μC/OS)中唯一的与编译器相关的函数

OSTickISR()

编写上面四个函数要求对cpu的工作原理有深入的理解。

使用特权

评论回复
7
天灵灵地灵灵| | 2020-1-30 19:38 | 只看该作者
如果不交钱这个系统能用吗

使用特权

评论回复
8
xuanhuanzi| | 2020-1-30 21:03 | 只看该作者
要看硬件资源够不够用。

使用特权

评论回复
9
yiyigirl2014| | 2020-1-31 13:15 | 只看该作者
只要资源够,按照移植方法移植修改相关文件就行了。

使用特权

评论回复
10
wahahaheihei| | 2020-1-31 19:22 | 只看该作者
网上资料很多

使用特权

评论回复
11
xinxianshi| | 2020-1-31 20:09 | 只看该作者
如果学,建议FreeRTOS

使用特权

评论回复
12
xinxianshi| | 2020-1-31 20:09 | 只看该作者
国产的RTT也不错。现在越来越火了,后面国家会要求尽量用国产的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

40

主题

370

帖子

4

粉丝