首页
论坛
电子技术基础
模拟技术
可编程器件
嵌入式系统与MCU
工程师职场
最新帖子
问答
版主申请
每月抽奖
商城免费换礼
社区有奖活动
博客
下载
评测
视频
文库
芯语
资源
2024国际航空电子大会
2024国际 AIoT 生态发展大会
3D IC 设计和Chiplet资料下载
车载总线测试和解码方案
新能源汽车三电测试技术中心
在线研讨会
EE直播间
小测验
白皮书
行业及技术活动
杂志免费订阅
免费在线工具
厂商资源中心
论坛
博文
电子工程专辑
电子技术设计
国际电子商情
资料
白皮书
研讨会
芯语
文库
登录|注册
登录
最新发表
推荐阅读
明星博主
原创博文
年度排行
博文排行
博文评论
FPGA/CPLD
MCU/ 嵌入式
模拟
电源/新能源
测试测量
通信
智能手机
处理器与DSP
PCB
汽车电子
消费电子
智能硬件
物联网
软件与OS
采购与分销
供应链管理
工程师职场
EDA/ IP/ 设计与制造
无人机
机器人/ AI
医疗电子
工业电子
管理
写博文
用户1433108
修改
文章:
50
阅读:
136274
评论:
10
赞:
193
好友
私信
个人主页
文章
50
原创
0
阅读
136274
评论
10
赞
193
原创
μC/OS-II在Cortex-M3系列单片机上的移植
2010-6-21 12:43
1512
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
IIC Shenzhen - 2024国际集成电路展览会暨研讨会(深圳,11.5-6)
2024 AI& Connect 是德创新技术峰会(深圳,10.22)
第六届意法半导体工业峰会2024(深圳,10.29)
2024 Arm Tech Symposia 年度大会(上海/深圳,11月19/21日)
文章评论
(
0
条评论)
登录
后参与讨论
您需要登录后才可以评论
登录
|
立即注册
发布
用户1433108
修改
文章:
50
阅读:
136274
评论:
10
赞:
193
好友
私信
个人主页
文章
50
原创
0
阅读
136274
评论
10
赞
193
最新评论
更多
写的好,学习参考,很实用,拆的很细,老物件,电子产品
开发工匠 ...
评论博文
2024-12-12
不得不拆解修理台式组合音响
图片失效了呢
OPTIMIST
评论博文
2024-12-10
美的风扇灯拆解:如何实现极致高效的稳定输 ...
期待续更
Jun2024
评论博文
2024-12-10
比较器检测模拟脉冲说明(四) ...
最新
博文
康谋方案 | 多源相机数据采集与算法集 ...
PCBA打样需要哪些准备?
实施TPM过程中如何进行设备的全面清查 ...
资料下载
本周热帖
[14章附电子书]Springboot+ChatGLM 实 ...
24LC02芯片手册以及注意事项 ...
《高等代数自学教程》(下册,贺昌亭 ...
11-19学习笔记
SATA specification
【富芮坤FR3068x-C】+上手及点灯 ...
【2024年末活动】工程师写总结,送示 ...
【STM32F103C8T6教程】(七)串口通信 ...
ESD保护二极管的四大特点丨浪拓 ...
【富芮坤 FR3068x-C低功耗开发板】-01 ...
最新资讯
芯语最新
蔡司成功收购了Beyond Gravity光刻部 ...
美国提高对华太阳能产品关税至50%,20 ...
马斯克刷新世界首富记录:身家超过400 ...
欧洲港口自动化战略:在AI浪潮中增强 ...
为什么说机器人的“ChatGPT时刻”将至 ...
Vishay全集成接近传感器荣获2024年度 ...
超8.3亿!安森美资收购一芯片业务! ...
全球芯片科研仪器30强(TOP30) ...
传欧洲芯片三巨头:将在中国生产芯片 ...
Murata专区丨现货促销,即时库存,下 ...
EE直播间
更多
提升毫米波信号测试精度
直播时间: 12月18日 14:00
EE Talk主题专访系列直播-对话:释放 Wi-Fi 7 在高带宽应用中的技术潜力
直播时间: 12月19日 10:00
在线研讨会
更多
ADAS系统中采用的MEMS时钟
PLL基础知识及其在时钟系统中的应用
PIC16F13145单片机可配置逻辑模块(CLB)概览
适用于安全连接的新一代PIC32CK SG/GC系列单片机
热门
推荐
精密双向电流感应放大器设计方案
【有奖直播】提升毫米波信号测试精度
【有奖直播】
深入学习Microchip时钟和全新单片机方案
我要评论
0
2
分享到微信
分享到微博
分享到QQ
点击右上角,分享到朋友圈
我知道啦
请使用浏览器分享功能
我知道啦
关闭
站长推荐
/2
面包板社区有奖活动汇总楼
1. DIY赢大奖!2. 写原创,有奖励!3.参与话题,奖励E币!4. 免费申领:开发板试用、书籍试读...
电子工程师DIY来分享,赢大疆无人机、小米手机、NAS存储、万用表 ...
展示您的 DIY 电子设计作品,社区将有丰富奖励送给您!
首页
论坛
电子技术基础
模拟技术
可编程器件
嵌入式系统与MCU
工程师职场
最新帖子
问答
版主申请
每月抽奖
商城免费换礼
社区有奖活动
博客
下载
评测
视频
文库
芯语
资源
2024国际航空电子大会
2024国际 AIoT 生态发展大会
3D IC 设计和Chiplet资料下载
车载总线测试和解码方案
新能源汽车三电测试技术中心
在线研讨会
EE直播间
小测验
白皮书
行业及技术活动
杂志免费订阅
免费在线工具
厂商资源中心
帖子
博文
返回顶部
×
文章评论(0条评论)
登录后参与讨论