首页
论坛
电子技术基础
模拟技术
可编程器件
嵌入式系统与MCU
工程师职场
最新帖子
问答
版主申请
每月抽奖
商城免费换礼
社区有奖活动
博客
下载
评测
视频
文库
芯语
资源
2024国际航空电子大会
2024国际 AIoT 生态发展大会
3D IC 设计和Chiplet资料下载
车载总线测试和解码方案
新能源汽车三电测试技术中心
在线研讨会
EE直播间
小测验
白皮书
行业及技术活动
杂志免费订阅
免费在线工具
厂商资源中心
论坛
博文
电子工程专辑
电子技术设计
国际电子商情
资料
白皮书
研讨会
芯语
文库
登录|注册
登录
最新发表
推荐阅读
明星博主
原创博文
年度排行
博文排行
博文评论
FPGA/CPLD
MCU/ 嵌入式
模拟
电源/新能源
测试测量
通信
智能手机
处理器与DSP
PCB
汽车电子
消费电子
智能硬件
物联网
软件与OS
采购与分销
供应链管理
工程师职场
EDA/ IP/ 设计与制造
无人机
机器人/ AI
医疗电子
工业电子
管理
写博文
用户1433108
修改
文章:
50
阅读:
137481
评论:
10
赞:
195
好友
私信
个人主页
文章
50
原创
0
阅读
137481
评论
10
赞
195
原创
μC/OS-II在Cortex-M3系列单片机上的移植
2010-6-21 12:43
1536
2
2
分类:
MCU/ 嵌入式
作者:装甲兵工程学院 庞海涛 陈昕 程高峰
引言
μC/OSII是一种简单高效、源代码
公开的实时嵌入式操作系统,具有良好的扩展性和可移植性,被广泛应用到各种嵌入式处理器上;对于提高产品的质量,减少开发周期和降低成本有着重要的意义。
本文以μC/OSII为移植对象,以ARM CortexM3内核微处理器为移植目标来讨论其移植过程及应用。
1 μC/OSII及ARM CortexM3简介
实
时操作系统μC/OSII是一个基于优先级的抢占式实时内核,程序可读性强,移植性好,代码固定,可裁剪,非常灵活。至今,从8位到64
位,μC/OSII已在超过40种不同架构的微处理器上运行。μC/OSII的主要特点有:是优先级可剥夺的实时多任务操作系统;可处理和调度56个用户
任务,任务的优先级可以动态调整;提供任务间通信、同步使用的信号量、邮箱和消息队列;具有良好的可裁剪性,可尽量减小系统的ROM和RAM大小。
ARM
是目前嵌入式领域应用最广泛的RISC微处理器结构,它以低成本、低功耗、高性能等优点占据了嵌入式系统应用领域的领先地位。当前ARM
系列的处理器有ARM7、ARM9、ARM9E、ARM10、ARM11等多个产品。CortexM3内核是
ARM公司于2006年推出的一款高性能处理器内核,是ARM新型
V7指令集结构系列的微控制器版本,可用于企业应用、汽车系统、家庭网络和无线技术等领域。其主要特点是:
① 功耗低;
② 内核的门数少,具有优异的性价比;
③ 中断延时短;
④ 调试成本低;
⑤ 具有嵌套向量中断控制器(NVIC),与处理器内核紧密结合实现低延迟的中断处理;
⑥ 具有可裁减的存储器保护单元(MPU),用于对存储器进行保护。
2 移植μC/OSII
Luminary
Micro公司的LM3S系列微控制器包含运行在 50 MHz频率下的ARM CortexM3
MCU内核、嵌入式Flash和SRAM、1个低压降的稳压器、集成的掉电复位和上电复位功能、模拟比较器、10位ADC、SSI、GPIO、看门狗和通
用定时器、UART、I2C、运动控制PWM以及正交编码器(quadrature
encoder)输入,非常适合楼宇和家庭自动化、工厂自动化和控制、工控电源设备、步进电机、有刷和无刷DC马达、AC感应电动机等方面的应用。
本移植在如下环境中完成:编译工具采用IAR FOR ARM,目标板采用周立功公司的LM3S8962微控制器EasyARM8962开发板。主机通过LMLINK JTAG连接目标板以建立交叉开发调试环境。
移
植过程中,μC/OSII的核心源代码不用修改,可以直接放在μC/OSII
Source文件夹中。μC/OSII\\Ports目录存放μC/OSII基于LM3S单片机的移植代码,包括OS_CPU_C.C、
OS_CPU_A.ASM、OS_CPU.H三个必要的文件。Target目录中的Startup.S文件是单片机的启动代码和中断向量
表,Target.C和Target.H提供单片机初始化函数TargetInit()和其他简单的外设控制API函数。层次结构如图1所示。
图1 层次结构
将μC/OSII移植到ARM处理器上需要修改3个与ARM体系结构相关的文件: OS_CPU.H、OS_CPU_A.ASM、OS_CPU_C.C。下面分别介绍这3个文件的移植工作。
(1) OS_CPU.H文件
包含μC/OSII所需要的常量、宏和自定义类型等。
① OS_CPU.H定义的数据类型。在这次移植中μC/OSII重新定义了数据类型,如下所示:
② 修改与ARM处理器相关的内容。不同处理器的堆栈增长方向是不一样的,ARM CortexM3的堆栈是从高地址往低地址增长的,OS_STK_GROWTH设为1,程序如下:
#defineOS_STK_GROWTH1
(2) OS_CPU_C.C文件
在OS_CPU_C.C定义的C函数中,OSTaskStkInit()函数与CPU相关,所以移植代码需要修改该函数。其程序如下(初始化任务时调用此函数初始化任务使用的堆栈):
(3) OS_CPU_A.ASM文件
μC/OSII的移植需要编写5个简单的汇编语言函数。
① OS_ENTER _CRITICAL( ): 关闭中断源。
② OS_EXIT_CRITICAL( ): 重开中断源。
③ OSStartHighRdy( ): 运行当前优先级最高的任务。
④ OSCtxSw( ): 一个任务放弃CPU使用权时调用。
⑤ OSIntCtxSw(): 在退出中断服务函数OSIntExit()中被调用,实现中断级任务切换。
因为LM3S单片机目前只支持8位中断优先级中的高3位,所以这里把1左移5位即是00100000B,其宏定义为 OS_CRITICAL_INT_PRIOEQU(1<<5)。
ARM CortexM3使用OSPendSV( )函数快捷地进行上下文切换。OSPendSV( )的C语言表述程序如下:
完成上述工作后,只要再根据目标板的实际情况编写Target目录中的3个文件,μC/OSII就可以运行在LM3S8962单片机上了。
3 实际应用
移植工作完成后,编写了一段程序,可以进行CAN通信,按键控制LED灯,通过RS232串口与主机相连实现对SD卡的读写等操作。下面是程序的部分代码:
在Main.H中定义任务优先级为:
其中创建任务的任务代码为:
SDExample为方便观察SD卡操作任务编写的GUI界面,选好与程序对应的串口波特率,连接好硬件。从图2可以看到,对SD卡可以进行成功操作。
图2 SD卡操作任务编写的GUI界面
结语
μC/OSII
作为一个优秀的实时操作系统,已经被移植到各种体系结构的微处理器上。本设计实现了其在LM3S8962上的成功移植,并通过一个实例验证了移植的正确
性。本次移植只是做了一些基础性工作,在此基础上还可进行进一步的开发,充分利用LM3S系列单片机的性能和μC/OSII的特点,在检测与维修领域发挥
一定作用。
本文来源:单片机与嵌入式系统应用
写原创有奖励!2024面包板原创奖励正在进行中
点赞(
2
)
收藏
分享到:
上一篇:
tcp/ip学习笔记1
下一篇:
引发MCU市场统一狂潮的Cortex-M3
PARTNER CONTENT
换一换>
更多>
新蓝牙6.0协议扩展应用范围
Silicon Labs(芯科科技)蓝牙产品经理Parker Dorris
2024-12-16
概伦电子:以开放心态共绘EDA产业新蓝图
概伦电子
2024-12-30
SK海力士开发出适用于AI数据中心的高容量固态硬盘‘PS1012 U.2’
SK海力士
2024-12-18
SK海力士将在CES2025亮相‘全方位面向AI的存储器供应商’的新蓝图
SK海力士
2025-01-03
文章评论
(
0
条评论)
登录
后参与讨论
您需要登录后才可以评论
登录
|
立即注册
发布
用户1433108
修改
文章:
50
阅读:
137481
评论:
10
赞:
195
好友
私信
个人主页
文章
50
原创
0
阅读
137481
评论
10
赞
195
最新评论
更多
写的好,很适用,学习和参考
开发工匠 ...
评论博文
2025-1-13
简单又实用的教程:RTC时钟使用指南~ ...
写的好,好产品,海信了不起
开发工匠 ...
评论博文
2025-1-11
海信发布全球首台116英寸RGB-Mini LED电视 ...
物也有命
自做自受 ...
评论博文
2025-1-9
富士通环保行为准则之切身感受 ...
最新
博文
SMT贴片加工丨产生焊点剥离的原因有哪 ...
碳化硅减薄过程中减少纹路的方法 ...
金刚石半导体材料领先企业化合积电联 ...
资料下载
本周热帖
Processing-processing3.5.4
ESP32TFT常用字体库.zip
自动增益控制放大器设计与实现 ...
无线传能充电器设计与实现论文 ...
基于单片机自动电阻测试仪设计论文 ...
ESD对于电子器件的破坏机理分析 ...
线缆认证分析仪的原理和应用场景 ...
LED失效分析重要手段——光热分布检测 ...
一文带你了解聚焦离子束(FIB) ...
英集芯IP5365M为快充移动电源设计的22 ...
最新资讯
芯语最新
该如何设计PCB以保证恶劣环境下的信号 ...
CES 2025:洞察汽车创新未来 ...
索尼新专利:利用AI技术解决游戏延迟 ...
外资车企2024年在华销量集体下滑! ...
Arm被曝计划涨价300%,并与客户抢生意 ...
69亿港元!香港首座!世界先进第三代 ...
华为是良药,但不是解药
培训课程|TI磁感应仿真器(TIMSS) ...
不拼“囤卡”资源,初创公司如何挑战A ...
高成长企业|让水产养殖标准化、质检 ...
EE直播间
更多
第三代功率半导体器件测试解决方案
直播时间: 03月06日 10:00
在线研讨会
更多
重塑机器人未来:揭秘创新芯片解决方案的颠覆力量
多路有光·精准不凡——KSW-SGM01模拟信号源发布会
迈来芯Triaxis® 3D磁传感器:汽车安全应用的优选方案
适用于安全连接的新一代PIC32CK SG/GC系列单片机
热门
推荐
构建AI未来,Arm计算平台无处不在
如何提升高压系统的实时性能?
如何增强电动汽车的实时控制能力?
如何增强能源基础设施的实时控制?
我要评论
0
2
分享到微信
分享到微博
分享到QQ
点击右上角,分享到朋友圈
我知道啦
请使用浏览器分享功能
我知道啦
关闭
站长推荐
/3
工程师写总结,送示波器、稳压电源、螺丝刀!
分享你的:职业生涯中故事、2024年年终总结、工作中的小故事,丰富多样的礼品等你哦!
面包板社区有奖活动汇总楼
1. DIY赢大奖!2. 写原创,有奖励!3.参与话题,奖励E币!4. 免费申领:开发板试用、书籍试读...
电子工程师DIY来分享,赢大疆无人机、小米手机、NAS存储、万用表 ...
展示您的 DIY 电子设计作品,社区将有丰富奖励送给您!
首页
论坛
电子技术基础
模拟技术
可编程器件
嵌入式系统与MCU
工程师职场
最新帖子
问答
版主申请
每月抽奖
商城免费换礼
社区有奖活动
博客
下载
评测
视频
文库
芯语
资源
2024国际航空电子大会
2024国际 AIoT 生态发展大会
3D IC 设计和Chiplet资料下载
车载总线测试和解码方案
新能源汽车三电测试技术中心
在线研讨会
EE直播间
小测验
白皮书
行业及技术活动
杂志免费订阅
免费在线工具
厂商资源中心
帖子
博文
返回顶部
×
文章评论(0条评论)
登录后参与讨论