FreeRTOS学习笔记—①堆与栈

news2024/9/24 5:31:46

在嵌入式系统中,堆与栈通常表示操作系统对进程占用的两种管理方式,而RTOS中栈更为重要,每一个链路都要有自己的栈。因此对堆和栈的概念进行了些区分和了解。以下是自己学习总结的一些,如有不对的地方请指正:

(1)管理方式

①栈:由操作系统自动分配释放,无需手动控制;
②堆:由程序员控制堆的申请和释放工作(可能会产生内存泄漏)。

(2)空间大小

①每个进程拥有的栈大小都远小于堆。

(3)内存地址

①栈:栈的内存地址由高到低的,声明在前面的变量地址比声明在后面的变量地址更大;
②堆:堆的内存地址由低到高的,声明在前面的变量地址比声明在后面的变量地址更小。

(4)分配不同

①栈:既有动态分配也有静态分配;
②堆:堆只能动态分配。

(5)存储内容

①栈:存放函数的返回地址、相关参数、局部变量以及寄存器内容等。参考韦东山的视频课程。一般每个链路都有自己的一个栈,每个栈里都会为调用的函数开辟一段空间,开辟空间的地址是从高到低。以下图为例,在main函数中调用到a_fun函数时,首先会为a_fun在这个栈中开辟一段N字节的空间,这个空间会存储a_fun的返回地址(即a_fun函数下一行return 0)以及局部变量。其中局部变量的计算也在这个空间中进行。当在a_fun函数中调用到b_fun函数时,也会将c_fun函数作为返回地址存储在LR寄存器中(b_fun函数在栈开辟的空间中),并存储涉及到的局部变量。静态变量是不入栈的,一般在数据段或者BSS段。
在这里插入图片描述
②堆:一般堆顶使用一个字节的空间来存放堆的大小,具体存放内容是由程序员来填充。相比于栈的应用广泛(函数调用,返回地址、存储局部变量的地址(EBP)、实参和局部变量)等,堆更适合在分配大量的内存空间的时候使用。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

算法打卡 Day25(二叉树)-修剪二叉搜索树 + 将有序数组转换为二叉搜索树 + 把二叉搜索树转换为累加树

文章目录 Leetcode 669-修剪二叉搜索树题目描述解题思路 Leetcode 108-将有序数组转换为二叉搜索树题目描述解题思路 Leetcode 538-把二叉搜索树转换为累加树题目描述解题思路 Leetcode 669-修剪二叉搜索树 题目描述 https://leetcode.cn/problems/trim-a-binary-search-tree…

elementUI——checkbox复选框监听不到change事件,通过watch监听来解决——基础积累

今天在写后台管理系统的时候,遇到一个需求,就是要求监听复选框的change事件,场景就是:两个复选框互斥,且可以取消勾选。 就是这两个复选框可以同时都不勾选,如果勾选的话,另一个一定要取消勾选。…

​如何通过Kimi强化论文写作中的数据分析?

在学术研究领域,数据分析是验证假设、发现新知识和撰写高质量论文的关键环节。Kimi,作为一款先进的人工智能助手,能够在整个论文写作过程中提供支持,从文献综述到数据分析,再到最终的论文修订。本文将详细介绍如何将Ki…

OceanBase 的ODP OBproxy 的记录

OceanBase 的ODP的路由说明一、简述为什么使用ODP的原因 (强一致性情况下) 1.分布式数据库在SQL解析这块存在本地执行计划,远程执行计划,分布式执行计划。 本地执行计划:整个SQL的表都在session所在的Observer 节点上。…

ABAP 结构体变量的嵌套INCLUDE TYPE 和 INCLUDE STRUCTURE

文章目录 创建程序语法格式程序测试AS SPFLI_NAME2 RENAMING WITH SUFFIX _NAME2 后缀变量的结构程序结构类型嵌套表和结构字段类型TYPES嵌套类型程序 创建程序 语法格式 程序测试 AS SPFLI_NAME2 RENAMING WITH SUFFIX _NAME2 后缀 变量的结构 程序 *&------------------…

Java进阶13讲__第六讲

算法: 冒泡排序 选择排序 二分查找 1. 冒泡排序 1.1 定义 1.2 代码示例 Java业务逻辑-1(冒泡排序)-CSDN博客https://blog.csdn.net/XiaomeiGuiSnJs/article/details/140880229 2. 选择排序 2.1 定义 2.2 代码示例 package cn.hdc.itWork.d5.d2;import java.uti…

【C语言】详解数组

文章目录 前言一、数组的概念二、一维数组1.一维数组的创建2.一维数组的初始化3. 一维数组的使用4.一维数组在内存中的存储 三、二维数组1.二维数组的创建2. 二维数组的初始化3. 二维数组的使用4.二维数组在内存中的存储 前言 一、数组的概念(数组是一组相同类型元素…

精准设计与高效开发:用六西格玛设计DFSS实现新能源汽车开发突破

快速变化的市场需求和激烈的竞争迫使制造企业不得不持续创新和优化产品开发流程。如何在保证产品质量的前提下,加快产品开发周期,成为许多企业亟待解决的问题。六西格玛中的DFSS(Design for Six Sigma)模型提供了一种系统的方法&a…

维信小程序禁止截屏/录屏

一、维信小程序禁止截屏/录屏 //录屏截屏,禁用wx.setVisualEffectOnCapture({visualEffect:hidden});wx.setVisualEffectOnCapture(Object object) 测试安卓手机: 用户截屏,被禁用 用户录屏,录制的是空白内容/黑色内容的视频。 二、微信小…

RS-FS-N01风速变送器简明教程(485通信类型变送器)

该文章仅供参考,编写人不对任何实验设备、人员及测量结果负责!!! 文章主要介绍变送器的硬件连接、软件配置、数据读写以温湿度计算。 1 硬件连接 2 软件配置 将变送器硬件部分正确连接后 打开“485 参数配置工具.exe” 对风速…

hello树先生——红黑树

红黑树 一.什么是红黑树二.红黑树的实现1.创建树节点结构2.插入功能的实现 三.提供一些常见二叉树接口四.进行平衡测试 一.什么是红黑树 红黑树是一种自平衡的二叉搜索树,具有以下特性: 节点颜色:每个节点要么是红色,要么是黑色。…

从模型到实践:新时代【数学建模竞赛论文】的结构、规范与创新解析

目录 1. 数学建模竞赛论文的重要作用 1.1 论文是竞赛成果的书面形式 1.2 论文是评判参赛成绩的唯一依据 1.3 论文写作是科技论文写作的基本训练 1.4 数学建模竞赛论文的综合性 1.5 数学建模竞赛论文与学术研究的联系 1.6 数学建模竞赛论文的重要性在评委眼中 1.7 数学建…

Leetcode3248. 矩阵中的蛇

Every day a Leetcode 题目来源:3248. 矩阵中的蛇 解法1:模拟 遍历字符串数组 commands,模拟🐍的移动过程。 如果最后🐍的位置为 (i, j),则编号为 (i * n) j。 代码: /** lc appleetcode…

[Hive]五、Hive 源码编译

G:\Bigdata\2.hive\大数据技术之Hive源码编译 第1章 部署Hadoop和Hive 1.1 版本测试 Hadoop3.3.6 和Hive3.1.3 运行hive客户端时报错: java.lang.NoSuchMethodError:com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;)V 查看Ha…

计算机的错误计算(八十一)

摘要 讨论双曲正弦函数 sinh(x)的计算精度问题。 例1. 计算 sinh(312.08) . 若在Python下计算,则有: 若在Excel单元格中计算,则有: 事实上,16位的正确值是 0.1712347549914620e136(ISRealsoft 提供&…

MLLM(一)| 文/图生视频任务大升级,BigModel 开源了视频模型CogVideoX

CogVideoX的体验地址:https://bigmodel.cn/console/trialcenter?modelCodecogvideox 自2021年起,智谱 AI 技术团队便开始着手布局包括 text-2-img、text-2-video、img-2-text、video-2-text 在内的多模态模型,并陆续研发并开源了CogView、Co…

0基础学习爬虫系列:Python环境搭建

1.背景 当前网络资源更新非常快,然后对应自己感兴趣的内容,每天盯着刷网站又太费时间。我在尝试借助Ai,搭建一套自己知识抓取更新提醒的系统,这样可以用极少的时间,关注到自己感兴趣的信息。 其实,这套逻辑…

C++使用日志库经验总结

1、log4cpp日志源文件路径设置 在 Visual Studio 中,C 项目的日志格式可以通过设置项目的属性来调整。如果你想要使用完整路径来显示诊断消息,可以在项目属性中的“C/C”选项卡下的“高级”属性页中找到“使用完整路径”(/FC)选项…

幂等的通用实现方案

文章目录 一、幂等的概念1.1 什么是幂等1.2 举个例子 二、幂等问题的解决方案2.1 准备:先添加2张表(账户表、充值订单表)2.2 方案1:update时将status0作为条件判断解决原理源码 2.3 方案2:乐观锁原理源码 2.4 方案3&am…

FMCW雷达介绍以及FMCW雷达测距

调频连续波雷达测距 FMCW radar: Frequency Modulated Continous Wave信号表示形式 调频连续波形式(频域/时域) 发射信号和接收信号 数学表达式 测距模型 该文章详细介绍了单target和多target场景下的FMCW雷达测距!!!…