查看: 821|回复: 14
打印 上一主题 下一主题

STM32F103之uCOSII移植

[复制链接] qrcode

31

主题

33

帖子

100

积分

注册会员

Rank: 2

积分
100
楼主
跳转到指定楼层
发表于 2014-4-25 10:55 PM | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

来论坛有些天了,看了论坛的各个板块,发现这个板块适合自己,很喜欢CortexM系列,一点经验活跃一下


看了很多ucosii移植STM32的教程,见过写的很好的,也见过无厘头的,在这希望写个相对有引导性的教程, 也希望能借此机会品尝一下ST的新作STM32F429

两个月前公司决定革新一些dsp产品改用stm32,也就是cost down。接触CortexM3体会最深的就是其相对统一的结构,带来的可移植性。很多人都听说过RTOS,听说过移植,但都止于听说。学习更需要实践。

 

学习UcosIISTM32需要两个基本的知识储备

1.         嵌入式实时操作系统uCOS-II(邵贝贝):http://pan.baidu.com/s/1c0jBbeo

2.         CortexM3权威指南:http://pan.baidu.com/s/1c0jBbd2

注:英文阅读能力强的建议阅读英文版

一、内核代码

学习完UcosII对她的印象可能只是书本上的那些片段,需要有个具象的理解,上官网下载源代码http://micrium.com/(需注册才可下载)

注意:下载到的代码是在IAR编译环境下的

解压之后会有三个文件

1.       AppNotes:官方的应用手册

AppNotes文件夹下有个MicriumAppNotesAN1xxx-RTOS AN1018-uCOS-II-Cortex-M3AN-1018.pdf此文件是官方移植ucosIIARM Cortex-M3的内核代码需要修改的详细说明。

2.       LicensingUcosII的使用许可证

3.       Software:源程序文件

这里用到的是uCOS-II文件夹。在整个移植过程中只需用到uCOS-II下的两个文件,PortsSource.

等移植完成后,回过头来思考一下CPU、uC-CPU、uC-LIB这三个文件是干什么的?

下面是开发板与uC/OS-II的框架图:

                            UcosII的结构及其与硬件的关系

关于上方框图和各个.C文件的说明可参阅官方《嵌入式实时操作系统Ucos-III》的第二章。

下图为KEIL工程文件目录:

二、内核代码的一些理解

首先研读AppNotes文件夹下的MicriumAppNotesAN1xxx-RTOS AN1018-uCOS-II-Cortex-M3AN-1018.pdf。一遍不懂读两遍两遍不懂读三遍。Micrium公司的文化决定的她的资料是难以超越的。

两个重要的概念

钩子函数:AN-1018.pdf中有说明。

PendSV进行上下文切换:原理参考《Cortex-M3 权威指南》7. 6 SVCPendSVendSV的典型应用即是进行上下文切换,举个栗子:systick产生定时中断我们把它的中断处理函数
改成

OSIntEnter();进行简单的计数

OSTimeTick();//遍历所有任务的延时状态,并进行减一操作并判断是否为挂起任务

OSIntExit();触发一个pendsv中断,在pendsv中断处理函数中进行任务切换

三、SysTick

SysTick是系统的心跳,任务的延时,切换都需要它的参与。在此我们注销掉ucosii关于SysTick的函数和宏定义,改用st提供的函数;

1.       打开os_cpu.h注销掉这些函数

2.       注销掉相应函数在os_cpu_c.h中函数的定义

3.       注销os_cpu_c.h中关于SysTick的宏

4.       参考《STM32固件库中文参考手册》在你的BSP.C中书写你的SysTick_init();

注:尝试自己书写,实在困难在下载别人的程序参考或发帖提问

四、编译器相关处理

                          如果你用的是IAR编译器,这部分忽略;如果你和我一样使用KEIL,那就要稍作修改,以实验编译环境的不同。

1、  os_cpu_a.asm

将PUBIC改为EXPORT,修改完成如下图

关于这些修改有兴趣可参阅RealView 编译工具4.0版《汇编器指南》

2、  修改段,修改完成如下图

3、  修改os_dbg.c,修改完成如下图

 附件为本文PDF


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

21

主题

447

帖子

753

积分

高级会员

Rank: 4

积分
753
沙发
发表于 2014-4-25 10:59 PM | 只看该作者
非常棒,欢迎常来分享
回复 支持 反对

使用道具 举报

0

主题

101

帖子

26

积分

新手上路

Rank: 1

积分
26
板凳
发表于 2014-4-25 11:10 PM | 只看该作者
大大太给力了谢谢大大支持 

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

0

主题

75

帖子

12

积分

新手上路

Rank: 1

积分
12
地板
发表于 2014-4-26 08:20 AM | 只看该作者
支持一个
回复 支持 反对

使用道具 举报

332

主题

923

帖子

2062

积分

金牌会员

Rank: 6Rank: 6

积分
2062
5#
发表于 2014-4-26 08:25 AM | 只看该作者
谢谢分享,顶!!!!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

0

主题

89

帖子

18

积分

新手上路

Rank: 1

积分
18
6#
发表于 2014-4-26 08:52 AM | 只看该作者
学习一下,谢谢
回复 支持 反对

使用道具 举报

0

主题

78

帖子

10

积分

新手上路

Rank: 1

积分
10
7#
发表于 2014-4-26 08:54 AM | 只看该作者

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

3

主题

89

帖子

17

积分

新手上路

Rank: 1

积分
17
8#
发表于 2014-4-26 02:42 PM | 只看该作者
不错不错,学习一下
回复 支持 反对

使用道具 举报

0

主题

91

帖子

24

积分

新手上路

Rank: 1

积分
24
9#
发表于 2014-4-26 10:01 PM | 只看该作者
谢谢支持!
回复 支持 反对

使用道具 举报

0

主题

75

帖子

2

积分

新手上路

Rank: 1

积分
2
10#
发表于 2014-4-26 10:01 PM | 只看该作者
谢谢捧场!!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表