基于STM32的μCOSII移植实例非常详细的移植过程Word格式文档下载.docx

上传人:b****2 文档编号:5559051 上传时间:2023-05-05 格式:DOCX 页数:16 大小:1.38MB
下载 相关 举报
基于STM32的μCOSII移植实例非常详细的移植过程Word格式文档下载.docx_第1页
第1页 / 共16页
基于STM32的μCOSII移植实例非常详细的移植过程Word格式文档下载.docx_第2页
第2页 / 共16页
基于STM32的μCOSII移植实例非常详细的移植过程Word格式文档下载.docx_第3页
第3页 / 共16页
基于STM32的μCOSII移植实例非常详细的移植过程Word格式文档下载.docx_第4页
第4页 / 共16页
基于STM32的μCOSII移植实例非常详细的移植过程Word格式文档下载.docx_第5页
第5页 / 共16页
基于STM32的μCOSII移植实例非常详细的移植过程Word格式文档下载.docx_第6页
第6页 / 共16页
基于STM32的μCOSII移植实例非常详细的移植过程Word格式文档下载.docx_第7页
第7页 / 共16页
基于STM32的μCOSII移植实例非常详细的移植过程Word格式文档下载.docx_第8页
第8页 / 共16页
基于STM32的μCOSII移植实例非常详细的移植过程Word格式文档下载.docx_第9页
第9页 / 共16页
基于STM32的μCOSII移植实例非常详细的移植过程Word格式文档下载.docx_第10页
第10页 / 共16页
基于STM32的μCOSII移植实例非常详细的移植过程Word格式文档下载.docx_第11页
第11页 / 共16页
基于STM32的μCOSII移植实例非常详细的移植过程Word格式文档下载.docx_第12页
第12页 / 共16页
基于STM32的μCOSII移植实例非常详细的移植过程Word格式文档下载.docx_第13页
第13页 / 共16页
基于STM32的μCOSII移植实例非常详细的移植过程Word格式文档下载.docx_第14页
第14页 / 共16页
基于STM32的μCOSII移植实例非常详细的移植过程Word格式文档下载.docx_第15页
第15页 / 共16页
基于STM32的μCOSII移植实例非常详细的移植过程Word格式文档下载.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于STM32的μCOSII移植实例非常详细的移植过程Word格式文档下载.docx

《基于STM32的μCOSII移植实例非常详细的移植过程Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《基于STM32的μCOSII移植实例非常详细的移植过程Word格式文档下载.docx(16页珍藏版)》请在冰点文库上搜索。

基于STM32的μCOSII移植实例非常详细的移植过程Word格式文档下载.docx

第三章μC/OS_II多任务以及任务间通信的实现9

3.1μC/OS_II任务的创建9

3.2事件标志组的创建11

第四章μC/OS_II移植测试13

4.1μC/OS_II多任务的测试13

4.2任务间通信的测试14

第一章μC/OS_II移植准备工作

以武陵源车载系统终端为背景,探讨基于STM32的μC/OS嵌入式系统移植方法。

武陵源车载终端的基本功能是GPS数据的接收、站点和弯道的识别、超速报警、GPRS数据上传等。

本文重点是把μC/OS移植到程序中来,其次把各个基本功能模块化并划分为几个主任务,以便实现嵌入式系统的操作。

1.1硬件平台

硬件平台是ARM公司基于ARMv7架构的Cortex-M3系列处理器STM32F103T8。

此处理器执行Thumb-2指令的32位哈佛微体系结构和系统外设,包括NestedVec-toredInterruptController和Arbiter总线。

它整合了多种技术,减少内存的使用,极小的RISC内核有着低功耗和高性能的特点。

新的单线调试技术,避免使用多引脚进行JTAG调试,并全面支持RealView编译器和RealView调试产品。

GPS模块为FastraxIT500,它是一款能适用于非常苛刻的应用场合,有着高性能的导航,即使在GPS卫星可见度较恶劣的环境下也能实现稳定定位。

IT500有着领先的冷启动灵敏度(-148dBm)和领先的导航灵敏度(-165dBm),定位率可以根据客户的要求设置到最高10Hz,非常适合高动态的应用。

GSM模块为G600,它有着功耗低、体积小、便携式的特点。

休眠模式下功耗仅为1.6mA,采用两边SMT邮票口封装,支持全球通用的850/900/1800/1900MHz四频段,内置TCP/IP协议栈,符合工业级要求,可适应高温高湿、电磁干扰等恶劣的工作环境。

1.2软件平台

软件平台为RVMDK软件。

RVMDK是由ARM编译器RVCT与Keil的工程管理、调试仿真工具集成,RVMDK是业界最好的Cortex-M3开发工具之一,它拥有流畅的用户界面与强大的仿真功能,是一款非常强大的ARM微控制器开发工具。

移植前需要熟悉RVMDK软件的使用。

移植过程中需要用到如图1.1所示文件,一个是武陵源车载系统终端程序,另一个是基于STM32的μC/OS_II移植文件。

第二章μC/OS_II移植步骤

μC/OS_II的移植方法可以从三方面着手,首先分清武陵源车载系统终端文件和μC/OS_II移植文件层次结构;

其次掌握μC/OS_II文件的移植过程以及在MDK软件中如何导入工程文件的过程;

最后明确μC/OS_II运行尚需添加的代码。

2.1文件结构

武陵源车载系统终端程序主文件夹如图2.1所示,文件夹中包含了整个工程项目文件。

主文件夹中包含了如图2.2所示的四个文件夹。

输出文件夹中是MDK软件编译时生成的临时文件;

Project文件夹中主要包含MDK工程的启动文件;

Libraries文件夹包含了STM32芯片及外设的源文件;

MyCode文件夹中包含用户编写的文件。

Libraries文件夹中包含了如图2.3所示的二个文件夹。

CMSIS文件夹主要包含STM32芯片内核启动文件;

STM32F10x_StdPeriph_Driver文件夹包含了STM32内部及外围器件的驱动文件。

基于STM32的μC/OS_II移植文件夹如图2.4所示,文件夹中包含了整个μC/OS_II内核和通信协议文件。

μC/OS_II文件中包含了如图2.5所示的四个文件夹。

Ports文件夹包含了μC/OS_II的接口文件;

uC-CPU文件夹包含了关于CPU的驱动文件;

User文件夹中是用户对μC/OS_II初始化配置文件;

Source文件夹包含μC/OS_II主要源文件。

2.2μC/OS_II文件移植

首先,在武陵源车载系统终端程序主文件夹新建一个如图2.6所示的μC/OS_II文件夹,然后将Port、Source、uC-CPU三个文件夹复制到μC/OS_II文件夹中,将User文件夹中的三个头文件复制到MyCode文件夹中,其复制过程如图2.7、图2.8、图2.9所示。

2.3MDK中导入μC/OS_II文件

首先,打开MDK工程,进入文件添加界面,新建μC/OS_II/Port、μC/OS_II/Source二个文件夹,新建文件夹结果如图2.10所示。

其次,将刚刚移植过来的文件分类添加到各个工程文件夹中。

μC/OS_II/Source文件夹中添加如图2.11所示文件。

μC/OS_II/Source文件夹中添加的文件结果如图2.12所示。

μC/OS_II/Port文件夹中依次添加如图2.13、图2.14所示文件。

μC/OS_II/Port文件夹中添加的文件结果如图2.15所示。

MyCode文件夹中添加图2.16所示文件。

MyCode文件夹中添加的文件结果如图2.17所示。

μC/OS_II移植文件全部添加到MDK工程文件夹中后,其MDK工程文件夹结构如图2.18所示,再点击全部保存后,μC/OS_II移植文件就全部导入到MDK工程文件夹中来了。

μC/OS_II移植文件全部导入到MDK工程文件夹之后,最后,还需把μC/OS_II移植文件所用到的头文件的路径添加到工程中来。

其添加的头文件路径过程如图2.19所示。

到这一步已经完成了μC/OS_II文件的导入,下面只需编译一下,检查文件的导入是否正常。

其编译结果如图2.20所示,零错误和零警告提示,表明编译通过。

2.4需要修改的代码

第一处:

μC/OS_II任务切换是通过STM32中的软中断实现的,需要将STM32中的软中断名修改成与μC/OS_II软中断函数名一致。

其修改过程如图2.21、图2.22所示。

第二处:

μC/OS_II任务切换是以STM32中的SysTick作为时间基准,需要编写如图2.23、图2.24所示的SysTick_Handler()函数和SysTick初始化函数。

第三处:

用户可以根据实际情况修改任务切换的时间,其修该位置为如图2.25所示红框中的数值,10表示任务切换的时间间隔为1000/10ms。

到这一步,程序中需要修改的部分基本上完成。

最后,把工程编译一下,检查一下程序修改是否有错。

其编译结果如图2.26所示,零错误、零警告提示,表明程序修改无误。

第三章μC/OS_II多任务以及任务间通信的实现

在完成μC/OS移植之后,μC/OS还不能正常的运行起来。

μC/OS系统中还需创建用户任务并且把任务添加到μC/OS系统中的任务列表中来。

任务之间可能还需要进行必要的通信,则需要创建信号量、消息邮箱、消息队列等以实现任务间的通信。

3.1μC/OS_II任务的创建

新建一个App文件如图3.1所示,用于用户程序的编写。

μC/OS任务的创建可以分三步完成。

第一步:

编写一个起始任务函数和两个用户任务函数。

起始任务函数用于创建用户任务,一个用户任务函数用于GPS数据处理,另一个用户任务函数用于GPRS数据的处理。

其结果如图3.2、图3.3、图3.4所示。

第二步:

定义三个任务堆栈及堆栈空间大小和任务优先级,定义结果如图3.5、图3.6、图3.7所示。

第三步:

先将创建的起始任务添加到μC/OS操作系统中的的任务列表中去,然后再在起始任务函数中把两个用户任务添加到μC/OS操作系统中的的任务列表中去。

其添加结果如图3.8、图3.9所示。

3.2事件标志组的创建

事件标志组用于串口中断与GPS任务之间通信,即串口接收完一组数据之后,通过发送事件标志位通知GPS任务一组GPS数据接收完了。

由于此项目中只用到了事件标志组,所以,可能不会提及信号量、消息邮箱、消息队列的使用,不过其应用的方法同事件标志组相似。

事件标志组的应用可以通过三步来实现。

定义一个事件标志组指针并在主函数中创建一个事件标志组,其结果如图3.10、图3.11所示。

在串口中断中调用事件标志组发送函数,如图3.12所示。

调用事件标志组发送函数需在文件前包含μC/OS头文件和事件标志组指针的申明,如图3.13所示。

在GPS任务中调用事件标志组等待函数,如果有事件到来就会继续往下执行,否则一直等到事件的到来。

事件的等待时间是可以设置的,如果超过了等待的时间,函数将返回超时错误信息,然后程序继续往下执行。

调用事件标志组等待函数需在文件前包含μC/OS头文件和事件标志组指针的申明。

其结果如图3.14、图3.15所示。

μC/OS任务和事件标志组创建完成之后,只需编译一下,检查一下任务和事件标志组的创建是否正确。

编译结果如图3.16所示,零错误、零警告提示,表明创建正确。

第四章μC/OS_II移植测试

借助串口调试助手测试μC/OS_II的多任务操作和任务间通信。

4.1μC/OS_II多任务的测试

打开串口助手并设置好串口,可以看到如图4.1所示串口中接收到的GPS数据。

通过观察如图4.2所示一直闪烁着的GPRS数据发送信号灯,可以表明GPS任务和GPRS任务同时在运行,即实现了μC/OS_II多任务的操作。

4.2任务间通信的测试

GPS数据是通过串口接收来的,只有串口向GPS任务发生事件标志组,GPS任务才会把GPS数据显示在串口中。

观察如图4.1所示串口中接收到的GPS数据,可以推断出串口与GPS任务之间实现了通信。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2