专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
NXP
基于freescale K60硬件平台的ucos-ii的移植
2019-07-12 12:04
发布
生成海报
站内文章
/
NXP MCU
14461
0
1702
一 概述
嵌入式操作系统应用之广泛,让我们的电子世界变得更加丰富多彩,没有研究过嵌入式操作系统,不足以号称为嵌入式软件工程师,本篇文章就详细描述了如何移植ucos的过程。
最近几天,在网上搜了很多资料,但是总感觉不是自己想要的。或许大家对嵌入式操作系统的认识水平不在一个level上,在这里不是想说网上资料文章的水平,只是因为大家处于不同的阶段,写文章的侧重点不一样。
本篇文章,就是详细描述了如何将ucos-ii移植到freescale的k60硬件平台上
二 移植准备
去官网下载软件包,下载时都需要帐号登录,建议大家用邮箱在官网上注册一个帐号
1. 去NXP官网下载k60软件开发包:SDK_2.2_TWR-K60D100M,下载地址:
https://mcuxpresso.nxp.com/en/welcome
2. 去ucos官网下载ucos-ii的sdk:
https://www.micrium.com/
三 移植过程详解
1. 调试一个正确的裸机程序,因为在freescale官网下载的sdk,是基于freescale官方开发板twrk60的,这个开发板不一定和我们的硬件平台原理图一样,所以我们需要基于我们的硬件平台调试出一个正确的裸机程序,可以是一个简单的LED闪烁实验。
2.移植官方ucos到我们的裸机程序上,因为官方的ucos-ii实在是一个庞大且完善的操作系统,正常情况我们是用不了那么多功能的,所以我们不需要将所有的官方ucos的sdk移植过来,只需要其中的一部分。如下图所示,我们需要Micrium_TWR-K60N512_OS2MicriumSoftwareuCOS-II这个路径下面的所有文件夹内容,也就是source和port文件夹内容,这两个文件加是我们移植过程中最最重要的内容,图中所示Your Application中的
APP.C
,OS_CFG.H和INCLUDE.h来源于Micrium_TWR-K60N512_OS2MicriumExamplesFreescaleTWR-K60N512OS2,而APP_VECT.C和APP_CFG.H是都不需要的。可以不用拷贝过来
3. 工程结构
APP文件夹就是用来存放
APP.C
,OS_CFG.H和INCLUDE.h
UCOS-II就是用来存放source和port
BSP用来存放配置我自己的k60硬件平台的底层配置
接下来就是移植的关键步骤了,我们需要修改官方启动文件(如果不知道什么是启动文件,请自行查阅资料)。
这里简单的分析
2
个问题,一是,什么叫移植,二是移植的操作系统如何能够被我们的工程所应用。所谓移植,打一个恰当的比喻——器官移植,就是将
A
的器官移植到
B
身上,使
A
的器官能够为
B
所用。所以移植绝对不是简单的“复制”,不仅要放到你的工程项目中,更重要的是要能够和你的项目建立联系。那么
uCOS-ii
怎么跟
k60
建立联系呢?
uCOS-ii
的核心作用就是任务调度,要使用
K60
的一个特殊中断——
PendSV
,就是可挂起系统任务中断,通过该中断进行系统的调度。还有就是
uCOS-ii
需要一个基准时间,那么
K60
中有一个专用的定时器,嘀嗒定时器
SysTick(这个定时器在同一种ARM内核中都是一样的操作使用方式,它不属于K60的外设资源,它是ARM内核所拥有的资源)
,通过这个滴答定时器给
uCOS-ii
提供一个时间基准,每隔固定的时间出发一个
PendSV
中断,进行任务的调度。所以呢,在官方案例的移植文档
AN-1018
中也特别提到这一点,要将启动代码中
所有
“
PendSV_Handler
”和“
SysTick_Handler
”(因为在freescale官方提供的sdk中,启动文件中的这两个中断ISR是叫这个名字),替换成“
OS_CPU_PendSVHandler
”和“
OS_CPU_SysTickHandler
”(在ucos官方对的sdk中,这俩个中断服务ISR是叫这个名字,我们必须保证这两处名字的一致,这样两者在调用过程中才不会找不到相应的ISR入口,当然也可以都用
freescale官方提供的sdk中
的中断ISR名字替代ucos中的名字),这样就相当于将
uCOS-ii
的“神经”跟你的项目的“神经”搭在了一起。
移植完成之后,我们就可以在app.c中创建我们的任务task了,我们可以参照官方app.c中的内容来创建
4. 结束语
为什么选用freescale的官方sdk包?
因为官方包的驱动等都是完善的,而且各种被包含的文件路劲都已经添加完成,对于初学者,如果自行添加各种头文件,尤其当用到部分官方提供的driver文件时,会发现各种提示头文件缺失,用了官方sdk包之后,就省去了这个麻烦。
Ta的文章
更多
>>
DSP CMD文件的编写
0 个评论
基于freescale K60硬件平台的ucos-ii的移植
0 个评论
TalkingData 锐眼看世界 2016-11-08
0 个评论
热门文章
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮