FreeRtos入门-10 裸机程序的不足

裸机的程序的框架

1) 经典单片机程序

// 经典单片机程序
void main()
{
    while (1)
    {
        任务1();
        任务2();
    }
}

缺点:任务1和任务2之间的互相影响

2)前后台结构,前台:中断处理函数,后台main函数

void main()//后台
{
    while (1)
    {
        do_something_1();
    }
}

void xxx_isr()//前台
{
    do_something_for_xxx();
}

如果中断处理函数xxx_isr()执行时间很短,上述代码很适合。

如果xxx_isr()执行时间很长,那么早在它执行的过程中:

  • 更低优先级的中断无法得到及时处理
  • 后台函数do_something_1()无法及时执行

3)改进版前后台

int flag_xxx = 0;
void main()
{
    while (1)
    {
        do_something_1();
        if (flag_xxx)
            do_something_for_xxx();
    }
}

void xxx_isr()
{    
    flag_xxx = 1;
}

在中断中提供个标志位,快进快出

缺点,如果do_something_for_xxx执行过长,也会影响其他do_something_1运行

4)软件定时器

使用软件定时器可以周期性地执行某些函数,上图实现了2个软件定时器:

  • 软件定时器1:每4个tick,执行一次f1()
  • 软件定时器2:每2个tick,执行一次f2()

如果f1()f2()执行时间很短,不超过1个tick时,效果很好。一旦f1()f2()执行的时间比较长,缺点如下:

  • 更低优先级的中断无法得到及时处理
  • 后台函数do_something_1()无法及时执行

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/529828.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Training - 使用 WandB 配置 可视化 模型训练参数

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://blog.csdn.net/caroline_wendy/article/details/137529140 WandB (Weights&Biases) 是轻量级的在线模型训练可视化工具,类似于 TensorBoard,可以帮助用户跟踪…

使用Vivado Design Suite进行功率优化

功率优化是一个可选步骤,它通过使用时钟门控来优化动态功率。它既可以在Project模式下使用,也可以在Non-Project模式下使用,并且可以在逻辑优化之后或布局之后运行,以减少设计中的功率需求。功率优化包括Xilinx的智能时钟门控解决…

STM32F407+FreeRTOS+LWIP UDP组播

开发环境介绍: MCU:STM32F407ZET6 网卡:LAN8720A LWIP版本:V1.1.0 FreeRTOS 版本:V10.2.1 LAN8720A硬件原理图: 硬件连接说明: MII_RX_CLK/RMII_REF_CLK ------>PA1 …

吴恩达2022机器学习专项课程(一) 5.7 检测梯度下降是否收敛

问题预览/关键词 什么是梯度下降收敛?哪些方法可以检测梯度下降是否收敛?什么是学习曲线?曲线上升代表什么?什么原因造成的?如何检测梯度下降是否收敛?多少次迭代,梯度下降会收敛?什…

电商技术揭秘十六:电商中的实时分析与决策支持系统

相关系列文章 电商技术揭秘一:电商架构设计与核心技术 电商技术揭秘二:电商平台推荐系统的实现与优化 电商技术揭秘三:电商平台的支付与结算系统 电商技术揭秘四:电商平台的物流管理系统 电商技术揭秘五:电商平台…

C/C++的前置++、后置++以及前置--、后置--使用的详细讲解

在c/c语言中,变量的自增和自减经常被使用到,所以今天就来个详细讲解。本次讲解用到的语言是c语言,在c中的原理也是一样的。 变量自增自减分为四种情况,每种情况的结果都有所差异,四种情况分别为前置、后置、前置--、后…

Android14之智能指针的弱引用、强引用、弱指针、强指针用法区别及代码实例(二百零五)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒…

四川古力未来科技抖音小店正规,科技创新引领行业潮流

随着互联网的迅猛发展,电商平台日益成为人们购物的主要渠道。在众多电商平台中,抖音小店以其独特的社交属性和内容营销方式,吸引了大量消费者的关注。四川古力未来科技抖音小店作为其中的佼佼者,以其正规的经营模式、丰富的产品线…

如何理解WMS仓储管理系统的建设理念

在现代企业经营中,WMS仓储管理系统的建设已成为提升竞争力的关键所在。随着科技的不断发展,越来越多的企业开始寻求实现高度自动化、信息化和网络化的生产模式。WMS仓储管理系统则成为实现这一目标的重要工具。本文将深入探讨WMS仓储管理系统解决方案的建…

7-13 日K蜡烛图

题目链接&#xff1a;7-13 日K蜡烛图 一. 题目 1. 题目 2. 输入输出格式 3. 输入输出样例 4. 限制 二、代码 1. 代码实现 #include <iostream> using namespace std;// 实心与空心 static const string str1(float Open, float Close) {float num Open - Close;if (…

竞赛升温,量子革命待发

人工智能已经吸引了全球企业巨头和政界领袖的广泛关注。同时&#xff0c;一场激烈的全球竞赛正在展开&#xff0c;目标是开发被许多专家视为下一个领域革命性技术的量子计算。 量子计算机利用量子物理学的原理&#xff0c;有潜力推动包括药物研究、股票市场分析以及数据加密在内…

[网鼎杯 2020 玄武组]SSRFMe

[网鼎杯 2020 玄武组]SSRFMe 源码 <?php function check_inner_ip($url) {$match_resultpreg_match(/^(http|https|gopher|dict)?:\/\/.*(\/)?.*$/,$url);if (!$match_result){die(url fomat error);}try{$url_parseparse_url($url);}catch(Exception $e){die(url foma…

解决grafana报错This panel requires Angular (deprecated).

背景&#xff1a;使用docker部署了prometheus,grafana,node exporter和cadvisor 然后去grafana官网下载成熟的模板导入到平台&#xff0c;发现模板上的图标全部报错This panel requires Angular (deprecated). 解决方法&#xff1a;修改grafana配置文件&#xff0c;如下&…

电脑开机提示“no bootable device”,无法进入系统

当您的Windows 10电脑开机时提示“no bootable device”,这意味着计算机无法找到一个可以启动操作系统的设备。这个问题通常与硬件连接、BIOS设置、硬盘问题、引导扇区故障或系统文件损坏等有关。以下是一系列详细的解决步骤: 检查硬件连接:关闭电脑,拔掉电源线,打开机箱检…

合并单元格的excel文件转换成json数据格式

github地址: https://github.com/CodeWang-Ay/DataProcess 类型1 需求1: 类似于数据格式: https://blog.csdn.net/qq_44072222/article/details/120884158 目标json格式 {"位置": 1, "名称": "nba球员", "国家": "美国"…

threejs 基础知识点汇总

threejs 基础知识点汇总 之前写了几篇博文&#xff0c;但是我觉得写的不好&#xff0c;我今天再补充一篇还不好的&#xff0c;把基础知识点汇总一下&#xff0c;不写运行的代码了&#xff0c;只写关键代码&#xff0c;但是看了之前我写的那几篇&#xff0c;看这篇的话问题其实不…

PTA(题目集三 题目 代码 C++ 注解)

目录 题目一&#xff1a; 代码&#xff1a; 题目二&#xff1a; 代码&#xff1a; 题目三&#xff1a; 代码&#xff1a; 题目四&#xff1a; 代码&#xff1a; 题目五&#xff1a; 代码&#xff1a; 题目六&#xff1a; 代码&#xff1a; 题目七&#xff1a; 代码…

如何利用AI绘制美观的地学图片摘要--提供各类矢量的地表地形和植被元素

我们经常在高级期刊的文章里面见到类似以下的图片&#xff08;Anatomy of a Glacier - Glacier Bay National Park & Preserve (U.S. National Park Service)&#xff09; 这样的表达对于研究结果非常生动形象。下面的这个网站提供了很多类似的元素&#xff0c;可以有助于我…

MySQL8.0.36-社区版:Windows和Linux上的应用部署(1)

简介&#xff1a; 本章不做过多的介绍了&#xff0c;你可以去官方的文章查看到更详细&#xff0c;更专业的介绍&#xff0c;我这里直接讲解如何进行安装 MySQL :: MySQL Documentationhttps://dev.mysql.com/doc/ Windows部署 这里我使用的是win10专业版系统 MySQL :: Dev…

Java项目——瑞吉外卖笔记

hello&#xff0c;你好鸭&#xff0c;我是Ethan&#xff0c;很高兴你能来阅读&#xff0c;昵称是希望自己能不断精进&#xff0c;向着优秀程序员前行!&#x1f4aa;&#x1f4aa;&#x1f4aa; 目前博客主要更新Java系列、数据库、项目案例、计算机基础等知识点。感谢你的阅读和…