基于STM32的UCOSIII入门教学(一)第1讲 RTOS背景知识简介

border="0" width="363" height="333" src="//music.163.com/outchain/player?type=0&id=2665666166&auto=1&height=430">

一、前后台系统和RTOS系统:

1、前后台系统:

       早期嵌入式开发没有嵌入式操作系统的概念 ,直接操作裸机,在裸机上写程序,比如用51单片机基本就没有操作系统的概念。通常把程序分为两部分:前台系统和后台系统。
       简单的小系统通常是前后台系统,这样的程序包括一个死循环和若干个中断服务程序:应用程序是一个无限循环,循环中调用API函数完成所需的操作,这个大循环就叫做后台系统。中断服务程序用于处理系统的异步事件,也就是前台系统前台是中断级,后台是任务级
在这里插入图片描述

2、RTOS系统:

       RTOS全称为:Real Time OS,就是实时操作系统,强调的是: 实时性。实时操作系统又分为硬实时和软实时。硬实时要求在规定的时间内必须完成操作 ,硬实时系统不允许超时,在软实时里面处理过程超时的后果就没有那么严格。
       在实时操作系统中,我们可以把要实现的功能划分为多个任务,每个任务负责实现其中的一部分,每个任务都是一个很简单的程序,通常是一个死循环。
       RTOS操作系统:UCOS,FreeRTOS,RTX,RT-Thread,DJYOS等。
       RTOS操作系统的核心内容在于: 实时内核

可剥夺型内核:

       RTOS的内核负责管理所有的任务,内核决定了运行哪个任务,何时停止当前任务切换到其他任务,这个是内核的多任务管理能力。多任务管理给人的感觉就好像芯片有多个CPU,多任务管理实现了CPU资源的最大化利用,多任务管理有助于实现程序的模块化开发,能够实现复杂的实时应用。
       本套视频教程讲的是RTOS中的经典代表作:UCOS,而UCOS的内核是可剥夺型的,所以我们简单提一下什么是可剥夺型内核。
       可剥夺内核顾名思义就是可以剥夺其他任务的CPU使用权,它总是运行就绪任务中的优先级最高的那个任务。
在这里插入图片描述

二、UCOS系统简介:

1、UCOS系统简介:

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

2、UCOS相关资料查找:

1、Micrium官网:www.micrium.com
2、开源电子网:www.opened.com

三、UCOS学习方法及参考书籍:

1、UCOS学习方法:

① 多练
     不要只看书,或者只看资料,只“看”是没有任何用的!一定要实际动手写代码练习,多在开发板上练习。
② 遇到不懂的怎么办?
     UCOS还是有一定难度的,在学习的过程中难免会遇到看不懂的东西,如果遇到不懂的就先不要管,先学会怎么调用UCOS的API函数。等以后有时间了在回过头来重新学习一下。
③ 对C语言的要求
     需要了解指针、结构体、数据结构中的链表等。

2、UCOS参考书籍:

1、《嵌入式实时操作系统 uc/os-III》,作者:Jean J. Labrosse,宫辉等翻译。
2、《嵌入式实时操作系统uc/os-III应用开发》,作者:Jean J. Labrosse,何小庆等翻译
3、《嵌入式实时操作系统uc/os-II原理及应用》,作者:任哲。
4、《嵌入式实时操作系统μC/OS-II(第2版)》 邵贝贝 等译 北京航空航天大学出版社
5、《基于嵌入式实时操作系统的程序设计技术》 周慈航 北京航空航天大学出版社
6、《嵌入式系统软件设计中的数据结构》 陆玲 周慈航 北京航空航天大学出版社
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个基于STM32F104的RTOS智能小车项目的概述,包含了主要的步骤和代码框架。 1. 硬件连接 首先,需要将STM32F104开发板与智能小车进行硬件连接。你需要连接电机驱动模块、超声波传感器模块、蓝牙模块等。 2. 建立工程 使用STM32CubeIDE,创建一个新项目,并选择STM32F104芯片作为目标。然后,选择一个RTOS内核,例如FreeRTOS。在工程配置中,配置RTOS内核的堆栈和任务等参数。 3. 创建任务 在工程中创建多个任务,例如电机任务、超声波任务、蓝牙任务等。你需要在任务中使用RTOS提供的API,例如vTaskDelay和xTaskCreate等,以便进行任务调度和管理。 以下是一个例子: ```c void vMotorTask(void *pvParameters) { while(1) { // 控制电机的运行 vTaskDelay(pdMS_TO_TICKS(10)); } } void vUltrasonicTask(void *pvParameters) { while(1) { // 获取超声波数据并进行处理 vTaskDelay(pdMS_TO_TICKS(100)); } } void vBluetoothTask(void *pvParameters) { while(1) { // 处理蓝牙数据 vTaskDelay(pdMS_TO_TICKS(50)); } } ``` 4. 编译和下载 使用STM32CubeIDE编译工程,并将程序下载到STM32F104开发板上。你可以使用ST-Link或J-Link进行下载和调试。 5. 测试 完成编译和下载后,你可以使用蓝牙模块发送指令控制电机的运行,同时也可以通过超声波模块获取周围环境的信息,并将这些信息通过蓝牙模块发送给上位机。 以上是一个简单的基于STM32F104的RTOS智能小车项目的概述,你可以根据实际需求进行修改和扩展。需要注意的是,RTOS开发需要有一定的RTOS和C语言基础,如果你是初学者,可以先从一些入门教程开始学习。同时,智能小车的开发需要涉及到电子、机械和软件等多个方面,需要有一定的专业知识和技能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值