嵌入式学习——使用STM32F103基于HAL库移植uCOS-III

目录

1.ucoslll简介

     ucoslll概述

     ucoslll中的任务

     ucoslll中的delay

     ucoslll中的uart

2.获取ucoslll中的源码

3.编程实例

     题目要求

     操作步骤

4.运行效果

5.总结

1.ucoslll简介

ucoslll概述

μC/OS-II由Micrium公司提供,是一个可移植、可固化的、可裁剪的、占先式多任务实时内核,它适用于多种微处理器微控制器和数字处理芯片(已经移植到超过100种以上的微处理器应用中)。同时,该系统源代码开放、整洁、一致,注释详尽,适合系统开发。 μC/OS-II已经通过联邦航空局(FAA)商用航行器认证,符合航空无线电技术委员会(RTCA)DO-178B标准。现在最新版的是μC/OS-III。

μC/OS-II被广泛应用于微处理器微控制器和数字信号处理器。

μC/OS-II 的前身是μC/OS,最早出自于1992 年美国嵌入式系统专家Jean J.Labrosse 在《嵌入式系统编程》杂志的5 月和6 月刊上刊登的文章连载,并把μC/OS 的源码发布在该杂志的B B S 上。

μC/OS 和μC/OS-II 是专门为计算机的嵌入式应用设计的, 绝大部分代码是用C语言编写的。CPU 硬件相关部分是用汇编语言编写的、总量约200行的汇编语言部分被压缩到最低限度,为的是便于移植到任何一种其它的CPU 上。用户只要有标准的ANSI 的C交叉编译器,有汇编器、连接器等软件工具,就可以将μC/OS-II嵌入到开发的产品中。μC/OS-II 具有执行效率高、占用空间小、实时性能优良和可扩展性强等特点, 最小内核可编译至 2KB 。μC/OS-II 已经移植到了几乎所有知名的CPU 上。

严格地说uC/OS-II只是一个实时操作系统内核,它仅仅包含了任务调度,任务管理,时间管理,内存管理和任务间的通信和同步等基本功能。没有提供输入输出管理,文件系统,网络等额外的服务。但由于uC/OS-II良好的可扩展性和源码开放,这些非必须的功能完全可以由用户自己根据需要分别实现。

uC/OS-II目标是实现一个基于优先级调度的抢占式的实时内核,并在这个内核之上提供最基本的系统服务,如信号量,邮箱,消息队列,内存管理,中断管理等。

ucoslll的概述图如下:

 

 

 

ucoslll中的任务

1.休眠:任务只以代码的形式存在,没交给操作系统管理,即没有分配任务控制块和任务 堆栈;

2、就绪:任务全副武装,并在就绪表中登了记;

3、运行:获得了cup的使用权;

4、等待:正在运行的任务,需要等待一个事件的发生在运行,cpu使用权被剥夺,自己处于等待状态;

5、中断服务:正在运行的任务一旦响应中断申请就会终止运行而去执行中断服务子程序(ISR),这时处于中断服务状态。

 ucoslll中的delay

介绍两种常用的延时函数功能:

 

 

 ucoslll中的uart

其运行代码如下:

 

2.获取ucoslll中的源码

推荐官网下载,下面分享官网网址。当然也可在网上寻找,自行选择网盘下载。

进入 Micrium 公司官网下载中心:http://micrium.com/downloadcenter/
然后按照提示注册、登陆账号并下载

3.编程实例

题目要求

学习嵌入式实时操作系统(RTOS),以uc/OS为例,将其移植到stm32F103上,构建至少3个任务(task):

其中两个task分别以1s和3s周期对LED灯进行点亮-熄灭的控制;

另外一个task以2s周期通过串口发送“hello uc/OS! 欢迎来到RTOS多任务环境!”。

操作步骤

选择芯片开始操作步骤

 

配置PCC

 

配置SYS

 

配置引脚

 

配置串口

 

配置时钟

 

配置完成后,导出工程即可。

选择USART1作为通信串口,然后选择asynchronous,如图:

然后点击如图所示选项:

 

 

然后选择显示“.h/.c”文件,最后点击Gnerate Code生成工程文件,如图:

打开keil,然后安装如下流程新建文件夹,如图:

 

 

然后给CPU文件夹里添加文件,如图:

realview文件夹也是在CPU路径下:

 

给LIB添加文件,如图:

 

然后点击ports找到realview文件夹添加,再添加如下文件,如图:

 

给port添加文件,找到realview文件夹然后添加文件,如图:

 

 

给source添加文件,如图:

然后给config添加文件,如图:

 

给BSP添加文件,如图:

 

接下来是部分代码展示:

 

 

 

 

4.运行效果

如下

 

5.总结

进行实验时,文件添加过程比较繁琐,需要细心操作。除此之外,该实验本身也具有很大的难度,刚开始的时候也有很多地方不会,在咨询了老师,参考了同学的实验之后,才有了一点思路。不过相比以前也有了很大进步,更加熟练实验步骤原理代码,同时对本课程又有了更加深刻的认识。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值