STM32上UCOS-II移植详解:基于CMSIS和PendSV_Handler的实战
需积分: 9 100 浏览量
更新于2024-09-11
收藏 938KB DOCX 举报
本文档详细介绍了如何在STM32F103RBT6微控制器上进行UC/OS-II操作系统移植,针对的是Micrium官方代码,并结合STM32V3.5库。移植过程主要包括以下几个关键步骤:
1. **UC/OS-II文件结构组织**:
首先,创建一个名为`ucosii`的文件夹,将其细分为`src`和`port`子目录。将Micrium官方UC/OS-II源代码复制到`src`,特别是`Source`文件夹,保持其只读属性。`port`目录则存放与STM32特定硬件相关的移植代码,如来自`Generic\RealView`的文件。
2. **处理os_cpu.h和os_cpu_c.c**:
在`os_cpu.h`头文件中,移除关于SysTick的相关声明,因为会使用CMSIS库提供的SysTick处理函数。在`os_cpu_c.c`中,注释掉与SysTick相关的定义和处理函数,因为它们将被替换。
3. **SysTick功能的迁移**:
将`os_cpu.h`中与SysTick相关的函数(如`OS_CPU_SysTickHandler()`、`OS_CPU_SysTickInit()`和`OS_CPU_SysTickClkFreq()`)注释掉,并且在`os_cpu_c.c`中相应地移除代码。不再使用UC/OS-II自带的SysTick管理,转而使用CMSIS库提供的`SysTickhandler()`函数,因为它负责中断处理。
4. **替换PendSV_Handler**:
在`startup_stm32f10x_md.s`文件中,将`PendSV_Handler`替换为`OS_CPU_PendSVHandler`,因为UC/OS-II任务切换依赖于PendSV中断。这一更改确保了中断处理流程与UC/OS-II的期望方式一致。
5. **硬件适配**:
根据STM32F103RB的特性,使用V3.5库提供的`startup_stm32f10x_md.s`替换原有的`startup_stm32f10x_hd.s`,以匹配硬件架构。同时调整工程目录以反映这些更改。
在整个过程中,特别强调了使用CMSIS库以及对中断处理函数的正确配置,这对于UC/OS-II在STM32F103RB上的稳定运行至关重要。移植时需确保所有代码和中断处理逻辑与UC/OS-II的内核调度机制相协调,以便实现任务管理和中断响应。这是一次涉及基础系统设置和硬件适配的复杂移植任务,需要对UC/OS-II和STM32平台有深入的理解。
2013-07-10 上传
点击了解资源详情
2012-07-26 上传
2013-08-28 上传
2022-09-14 上传
2013-07-11 上传
super_包
- 粉丝: 5
- 资源: 5
最新资源
- Java集合ArrayList实现字符串管理及效果展示
- 实现2D3D相机拾取射线的关键技术
- LiveLy-公寓管理门户:创新体验与技术实现
- 易语言打造的快捷禁止程序运行小工具
- Microgateway核心:实现配置和插件的主端口转发
- 掌握Java基本操作:增删查改入门代码详解
- Apache Tomcat 7.0.109 Windows版下载指南
- Qt实现文件系统浏览器界面设计与功能开发
- ReactJS新手实验:搭建与运行教程
- 探索生成艺术:几个月创意Processing实验
- Django框架下Cisco IOx平台实战开发案例源码解析
- 在Linux环境下配置Java版VTK开发环境
- 29街网上城市公司网站系统v1.0:企业建站全面解决方案
- WordPress CMB2插件的Suggest字段类型使用教程
- TCP协议实现的Java桌面聊天客户端应用
- ANR-WatchDog: 检测Android应用无响应并报告异常