STM32 + UCOSII 操作系统(简单讲解)「建议收藏」

STM32 + UCOSII 操作系统(简单讲解)「建议收藏」前言这是我将UCOSII操作系统移植在STM32单片机上后进行UCOSII操作系统学习的一些笔记与理解,此文最后会附上我自己在UCOSII操作系统下使用STM32写的ESP8266+onenet+http协议的程序链接,可以作为参考,如果文中有不当的地方,还请各位大佬加以中指正,我一定会虚心求教。参考资料:正点原子RTOS操作系统讲解,参考的文章:(53条消息)STM32学习笔记一一UCOSII(1)_霁风AI-CSDN博客_ucosii1.UCOSII操作系统的简介前台后台系统相信大家都

大家好,又见面了,我是你们的朋友全栈君。

前言

这是我将UCOSII操作系统移植在STM32单片机上后进行UCOSII操作系统学习的一些笔记与理解,此文最后会附上我自己在UCOSII操作系统下使用STM32写的ESP8266+onenet+http协议的程序链接,可以作为参考,如果文中有不当的地方,还请各位大佬加以中指正,我一定会虚心求教。参考资料:正点原子RTOS操作系统讲解,参考的文章:(53条消息) STM32学习笔记一一UCOSII(1)_霁风AI-CSDN博客_ucosii

1.UCOSII操作系统的简介

前台后台系统

相信大家都使用过单片机,比如51,STM32,但是我们在使用的时候呢,我们都是在裸机下面写程序(也就是裸奔),也就是说,我们写的程序无非就是在主函数里面加一个死循环,然后再加上中断服务程序。应用程序以无限循环的方式在主函数被调用,调用相应的函数来完成所需要的功能,这个大的循环就叫做后台系统。而中断服务程序就是来处理我们的异常,异常结束后跳出中断服务程序,回到原来进入中断的地方继续执行我们的程序,中断处理的事件就是前台系统。

关于操作系统有很多,我这里选择的是UCOSII来进行一个讲解

UCOSII是一个可以基于RAM运行的、可裁剪(这里不是太理解)、抢占式、实时多任务内核,具有高度可移植性,特别适合于微处理器和控制器的实时操作系统(讲求实时性,实时性自己去了解)

1.1任务

在操作系统下呢,任务其实就是一个死循环函数,在循环里面调用相关函数,实现一定滴功能,当然了,在操作系统下,一个工程可以有多个任务,我们的UCOSII操作系统呢就对这些任务进行任务调度管理,让这些任务可以并发工作。

任务格式如下:

STM32 + UCOSII 操作系统(简单讲解)「建议收藏」

1.2设置任务优先级

在操作系统下呢,每个任务都有唯一确定的优先级。优先级高的任务优先获得CPU的使用权,只有当优先级高的任务执行完毕之后呢,我们的高优先级任务才会让出CPU的使用权,从而呢次优先级的任务才能获得CPU的使用权,等所有的任务执行完毕,又重复这一步骤。注意:每个任务都有唯一确定的优先级,不同的任务不能拥有一样的优先级。

在程序中我是这样宏定义的

STM32 + UCOSII 操作系统(简单讲解)「建议收藏」

 数字代表的是优先级,数字越小代表优先级越高。

1.3设置任务堆栈大小

STM32 + UCOSII 操作系统(简单讲解)「建议收藏」

 后面的数字代表的是堆栈大小,如果任务函数的局部变量多,嵌套的层数多,那么相应的我们的堆栈就要设置得大一些。

1.4设置任务堆栈

STM32 + UCOSII 操作系统(简单讲解)「建议收藏」

 这里注意堆栈字节对齐的问题(特别是使用到串口的printf函数打印时)

1.5初始化UCOSII、创建任务、启动UCOSII

STM32 + UCOSII 操作系统(简单讲解)「建议收藏」

 调用函数OSInit初始化、调用OSTaskCreate来创建任务、调用函数OSStart,启动OS。

 到这里呢,一个任务基本的实现步骤就完成了,至于任务里面的功能函数,我就不展示了,你们就自己去移植相应的功能函数过来并加以修改就可以了。

对UCOSII更详细的说明请移步顶楼相应的链接。接下来我对STM32的学习呢,所有的工程都是基于UCOSII操作系统的。此篇文章第一次发布好,文中有不当的地方还请大佬们加以指正,我会及时修改。

最后附上顶楼说的链接

//程序链接:基于UCOSII操作系统的STM32+ESP8266+onenet+http协议的程序

链接:https://pan.baidu.com/s/1s68Kyw-nQDtIuso0b5Ji8Q 
提取码:tian 
 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/136174.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • batch spring 重复执行_Spring Batch批处理

    batch spring 重复执行_Spring Batch批处理SpringBatch批处理批处理顾名思义是批量处理大量数据,但是这个大量数据又不是特别大的大数据,比Hadoop等要轻量得多,适合企业单位人数薪资计算,财务系统月底一次性结算等常规数据批量处理。SpringBatch是一个用于创建健壮的批处理应用程序的完整框架。您可以创建可重用的函数来处理大量数据或任务,通常称为批量处理。如SpringBatch文档中所述,使用该框架的最常见方案如下:•定…

  • java、spring线程池面试题

    java、spring线程池面试题一、线程池的好处?1.通过newThread来创建线程池会比较耗时,性能差,当我们在通过线程的时候,有可能会出现(创建线程+销毁线程)的时长>线程执行(业务逻辑)的时长;2.线程缺乏统一管理,可能会出现无限制的创建线程,线程之间相互竞争,争夺资源而导致系统崩溃;3.缺乏更多的管理功能,比如定时执行、定期执行、线程中断;相比较于newThread,创建线程的好处在于:1.重用已存在的线程,避免线程新建和消亡产生的开销。2.可以控制最大并发数,避免同时多个线程执行,争夺资源,导致系统崩溃;

  • SCI期刊Cover Letter写法模板

    SCI期刊Cover Letter写法模板一、写法投稿信(CoverLetter)应该简述所投稿件的核心内容、主要发现和意义,拟投期刊,对稿件处理有无特殊要求等(如“nottoreview”list)。另外,请附上主要作者的中文姓名、通讯地址、电话、传真和e-mail地址。此外有的杂志要求推荐几位审稿人及其联系方式。以及谁已经阅读过该文(当然是牛人)。一般来说,杂志通常要求说明你论文研究的意义,以及与这个杂志的相关性,另外还…

  • cacti网络监控工具完全指南

    cacti网络监控工具完全指南

  • android系统的官网下载地址,Android安卓10.0系统官方正式版

    android系统的官网下载地址,Android安卓10.0系统官方正式版Android安卓10.0系统官方正式版:这是一款关于安卓的系统,没错就在今天,谷歌更新了关于安卓10.0的系统更新,相信很多的小伙伴都应该是不清楚的,应为感觉还是有很多的用户在等着系统自己的更新,没有操心这一方面的事情。Android安卓10.0系统官方正式版更新了什么功能?1、目前来看的话,更新功能还是蛮多的,但是用户能够看的上的就不言而喻;2、毕竟以前放出来的消息就是这一次更新将会有可能安卓…

  • idea2021.11激活[最新免费获取]

    (idea2021.11激活)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。https://javaforall.cn/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~6EK6WKOHUX-eyJsaWNlbnNlSWQiOi…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号