嵌入式—多任务程序设计

一.uc/OS-III操作系统介绍

1.uc/OS-III简介

us/OS是Micrium公司出品的RTOS类实时操作系统, UCOS目前有两个版本:uc/OS-II和uc/OS-III。
uc/OS-III是一个可裁剪、可剥夺型的多任务内核,而且没有任务数限制,提供了实时操作系统所需的所有功能,包括资源管理、同步、任务通信等。
uc/OS-III是用C和汇编来写的,其中绝大部分都是用C语言编写的,只有极少数的与处理器密切相关的部分代码才是用汇编写的, uc/OS-III结构简洁,可读性很强!非常适合初次接触嵌入式实时操作系统学生、嵌入式系统开发人员和爱好者学习。

2. 组成部分

μC/OS可以大致分成核心、任务处理、时间处理、任务同步与通信,CPU的移植等5个部分
核心部分(OSCore.c):是操作系统的处理核心,包括操作系统初始化、操作系统运行、中断进出的前导、时钟节拍、任务调度、事件处理等多部分;能够维持系统基本工作的部分都在这里
任务处理部分(OSTask.c):任务处理部分中的内容都是与任务的操作密切相关的;包括任务的建立、删除、挂起、恢复等等
时钟部分(OSTime.c):μC/OS-II中的最小时钟单位是timetick(时钟节拍);任务延时等操作是在这里完成的
任务同步和通信部分:为事件处理部分,包括信号量、邮箱、消息队列、事件标志等部分;主要用于任务间的互相联系和对临界资源的访问
CPU的移植部分:这部分内容由于牵涉到SP等系统指针,所以通常用汇编语言编写;主要包括中断级任务切换的底层实现、任务级任务切换的底层实现、时钟节拍的产生和处理、中断的相关处理部分等内容

二、实验过程

1.实验任务

学习嵌入式实时操作系统(RTOS),以uc/OS-III为例,将其移植到stm32F103上,构建至少3个任务(task):其中两个task分别以1s和3s周期对LED等进行点亮-熄灭的控制;另外一个task以2s周期通过串口发送“hello uc/OS! 欢迎来到RTOS多任务环境!”。记录详细的移植过程。

2.使用STM32CubeMX创建文件

1.创建文件

2.配置“SYS”与“RCC”

3.配置USART1

4.设置Clock Configuration

5.生成文件,打开keil

3.uc/OS-III源码移植

(1)首先先下载uc/OS-III源码,可以从官网:http://micrium.com/downloadcenter/,进行下载,选择ST系列,点击 View all STMicroelectronics,点击 STMicroelectronics STM32F107之后按照提示注册下载即可;但是从官网下载比较麻烦,耗时间,这里给出百度网盘的资源。

https://pan.baidu.com/s/1EAJGt571yzFIhsRSev1Nagt,提取码:lhhs

a.下载完成以后,可以得到一个“sofaware”的文件夹,里面有六个文件,复制其中五个文件

b.将这5个文件复制到cubeMX工程的MDK-ARM文件夹下

c.打开keil工程,进行文件添加,点击Manage Project Items(小箱子标志),按下图所示操作,为项目新建6个文件夹,在对应文件夹下添加文件

d.为bsp.c和bsp.h添加代码:

#ifndef  __BSP_H__
#define  __BSP_H__
 
#include "stm32f1xx_hal.h"
 
void BSP_Init(void);
 
#endif

// bsp.c
#include "includes.h"
 
#define  DWT_CR      *(CPU_REG32 *)0xE0001000
#define  DWT_CYCCNT  *(CPU_REG32 *)0xE0001004
#define  DEM_CR      *(CPU_REG32 *)0xE000EDFC
#define  DBGMCU_CR   *(CPU_REG32 *)0xE0042004
 
#define  DEM_CR_TRCENA                   (1 << 24)
#define  DWT_CR_CYCCNTENA                (1 << 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值