首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
嵌入式技术
» uCOS II在SkyEye上的移植分析 03
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
uCOS II在SkyEye上的移植分析 03
发短消息
加为好友
samwalton
当前离线
UID
872238
帖子
6518
精华
0
积分
3259
阅读权限
90
在线时间
309 小时
注册时间
2012-3-1
最后登录
2014-7-5
论坛元老
UID
872238
1
#
打印
字体大小:
t
T
samwalton
发表于 2013-11-27 09:19
|
只看该作者
uCOS II在SkyEye上的移植分析 03
编译器
,
如何
OSIntCtxSw() =>OS_EXIT_CRITICAL() => OSIntExit退出后,再根据标志位来判断是否需要进行中断级的任务切换。这种方法的好处是不需要考虑编译器的因素,也不用做计算,但是从实时响应上不是最快,不过刚开始学习这种方法比较容易理解,实现起来也简单。SkyEye 目前的移植就是基于第二种方法的。
在中断态下进行任务切换,需要特别说明的一个问题是如何获得被中断任务的 lr_svc 。因为进入中断态后,lr 变成了lr_irq ,原来任务的 lr_svc 无法在中断态下获得,这样要得到 lr_svc ,就必须在中断ISR 里面进行一次 cpu mode 强制转换,即对 CPSR 赋值为0x000000d3 ,只有返回到 svc 态之后才能得到 原来任务的 lr ,这个对于任务切换很重要。还有一个需要留意的问题是在强制 CPSR 变成 svc 态之后,SPSR 也会相应地变成 SPSR_irq ,这样就需要在强制转变之前保存 SPSR ,也就是被中断任务中断前的 CPSR 。
全部移植代码在SkyEye仿真器上调试通过,在SkyEye的主页上可以下载获得。欢迎大家访问我们的主页 【
http://www.skyeye.org
】。 另外在 Linuxfans.org的论坛上 【
http://www.linuxfans.org/bbs/forum-58-1.html
】, 有关于 SkyEye 进展的最新讨论, 和另一个嵌入式开源项目【
www.lumit.org
】的大量资料下载, 【
http://www.linuxfans.org/bbs/forum-66-1.html
】。希望大家对我们的工作提出建议和批评,更希望有越来越多的人关注和参与进来。
总结
移植 uC/OS-II到 SkyEye 上,既是对 uC/OS-II 的学习和实验,同时也是对 SkyEye仿真器的验证和实践。uC/OS-II 作为一个优秀的实时操作系统已经被移植到各种体系结构的微处理器上,也是目前较为常用的公开源码的实时内核。从这里入手学习嵌入式系统开发的基本概念,以及在 SkyEye 里构造一个可以运行的RTOS,能够使我们更深入地了解嵌入式开发的流程,在没有硬件的条件下也能对arm的体系结构有个初步的认识。
在移植 uC/OS-II 到 SkyEye 之后,我得到了一块 Samsung 的arm 评估板,在调通了板子上一些相关硬件(例如串口输出和定时器)的驱动后,仅仅花了不到一天时间就将SkyEye 下的 uC/OS-II 移植到了真实的开发板上,这也说明在 SkyEye 上所做的移植工作是非常有意义和帮助的,完全可以作为嵌入式开发的入门捷径。
如果大家移植过程中遇到什么问题,欢迎发email和我讨论。
作者简介:李明,清华大学计算机系硕士,北京亚嵌(
www.akaedu.org
)专职讲师,10年软件开发经验,5年嵌入式行业教学经验。是
www.lumit.org
开源项目lumit(嵌入式个人学习网)的创办者,《源码开放的嵌入式系统软件分析与实践——基于 SKYEYE 和 arm 开发平台》一书作者, SkyEye 嵌入式开源项目核心开发成员。国内最早将 uC/OS-II 实时操作系统移植到 SkyEye 模拟器上,独立设计并实现CEBus 协议的解释器,并将其移植到 ColdFire 平台;曾负责国家高技术研究发展计划项目-微小型直升机控制系统设计与姿态控制研究项目,并且基于 RTLinux 实时操作系统完成了"国家863计划-虚拟漫游智能机器人平台项目"的控制软件总体设计和实施。 Email:
limingth@akaedu.org
收藏
分享
评分
回复
引用
订阅
TOP
返回列表
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议