又是一篇关于GD32堆栈的梳理+FreeRTOS的空间

news2024/10/5 14:05:31

GD32F103CB:SRAM 20K(0x5000)

这篇文章主要想讲清楚几个事情:

1、启动文件Stack_Size、Heap_Size的大小设置有啥影响;

2、FreeRTOS的内存:FreeRTOSConfig.h文件configTOTAL_HEAP_SIZE;


问题2,好解释,先来说它

FreeRTOS任务里面的内存的开销都是从ucHeap里面进行,实际上它就是个全局变量,它存在ZI-data里面(ZI-data介绍文章):未初始化或者初始化为0的变量空间。如图:ZI-data=15836里面有10k是ucHeap。

查看map文件,搜索ucHeap可以看大它的存储地址


先讲结论:Heap_Size在我的代码中不起作用,Stack_Size则最终决定栈顶的地址。

先看启动文件关于栈Stack_Size、堆Heap_Size的设置

程序需要的SRAM分配完后,地址落在0x200030b8

启动文件:Stack_Size 设置0x1000:栈顶=0x200030b8+0x1000

启动文件:Stack_Size设置0x0500:栈顶=0x200030b8+0x0500

Heap_size设多少都没反应;(应该是程序中没用到例如malloc,编译后,优化删除了)

推出GD32的SRAM的分配流程:

(1)从0x2000000开始往上,一个一个变量分配地址;

(2)分配ucHeap从0x200008b8开始,因为它有10K(0x2800),所以到0x200030b8分配完;

(3)接下来是分配栈STACK,从0x200030b8开始,栈的大小启动文件设定的0x1000,所以栈顶地址是0x200040b8

总结:先按照程序的变量分配SRAM,分配完后,才根据stack设定的大小确定栈顶地址initial_sp的大小。栈顶地址不能比SRAM最大地址大,因为GD32F103CB它有20K,对应0x5000地址。

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

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

相关文章

Linux[高级管理]——Squid代理服务器的部署和应用(传统模式详解)

🏡作者主页:点击! 👨‍💻Linux高级管理专栏:点击! ⏰️创作时间:2024年6月24日11点11分 🀄️文章质量:95分 目录 ————前言———— Squid功能 Squ…

仓库选址问题【数学规划的应用(含代码)】阿里达院MindOpt

本文主要讲述使用MindOpt工具优化仓库选址的数学规划问题。 视频讲解👈👈👈👈👈👈👈👈👈 一、案例场景 仓库选址问题在现代物流和供应链管理中具有重要的应用。因为仓库…

AI 时代程序员生存指南 —— 一名普通程序员的ChatGPT 一周年回顾

ChatGPT 发布一周年了,切实改变了我的工作方式和职业路径,趁着周末写下这篇文章,我希望以一名普通程序员的视角,带大家回顾一下过去一年大模型领域的发展情况,以及个人的所思所想。文章会分为四个部分,从初…

AWS云计算平台:全方位服务与实践案例

摘要 在数字化浪潮的推动下,云计算已成为企业转型的强大引擎。AWS作为云计算的先锋,不仅提供了一系列强大的基础设施服务,更是在人工智能领域不断探索和创新。本文将带您领略AWS的全方位服务,并透过实际案例,感受其在…

文心一言 VS 讯飞星火 VS chatgpt (291)-- 算法导论21.3 4题

四、假设想要增加一个 PRINT-SET(x) 操作,它是对于给定的结点 x 打印出 x 所在集合的所有成员,顺序可以任意。如何对一棵不相交集合森林的每个结点仅增加一个属性,使得 PRINT-SET(x) 所花费的时间同 x 所在集合元素的个数呈线性关系&#xff…

新手必备!短视频剪辑常用的18个技巧——剪映篇

导入素材:这里我们可以选择自己拍摄好的素材(图片、视频或录制好的音频),按照顺序导入剪辑区剪辑。这一步是剪辑的基础,确定剪辑的大体思路与成片框架!别忽略了,剪映官方素材库提供的素材&#…

Mysql序列

💝💝💝首先,欢迎各位来到我的博客,很高兴能够在这里和您见面!希望您在这里不仅可以有所收获,同时也能感受到一份轻松欢乐的氛围,祝你生活愉快! 💝&#x1f49…

SSL证书不安全问题处理方案

正常使用情况: verifyFalse:代表不使用SSL证书校验、 以上方式在coze中使用失败 response requests.get(url, verifyFalse).text替换方案:使用httpx import httpx with httpx.Client(verifyFalse) as client:response client.get(url)参考…

气膜移动宴会厅:现代化宴会解决方案—轻空间

随着社会经济的发展和人们生活水平的提高,各类宴会、庆典和活动的需求日益增加。然而,传统的宴会厅受限于固定的地点和昂贵的建设成本,无法灵活应对不同规模和地点的需求。在此背景下,气膜移动宴会厅作为一种创新的解决方案&#…

定制课程引领,师资培训助力——树莓集团政企合作育人新篇章

树莓集团通过定制课程和师资培训两种方式,为高校提供了更加全面、系统、专业的教育资源。这些资源不仅提高了学生的专业素养和实践能力,也促进了教师的专业发展。 一、定制课程 1、行业需求导向:树莓集团根据数字产业及相关行业的发展趋势和…

Ubuntu系统中创建桌面快捷方式和添加Favorites

一. Ubuntu系统中创建软件的桌面快捷方式 Ubuntu桌面创建某个软件的桌面快捷方式,一个直观的方法。 方法1. 在图像界面下,一层一层地打开文件目录软件快捷方式/usr/share/applications/ 方法2. 或者在终端运行$ nautilus /usr/share/applications/ …

点心甜品商城小程序店铺是怎样开展的

很多人非常喜欢甜品点心,包括在宴会、送礼、家庭聚会等场景也有应用度,该赛道也存在头部品牌,其余则是以地区为主的线下店,线上则主要以外卖及电商快递等方式经营。 除了线下店和其它平台进驻外,商家还需要多渠道获客…

华为仓颉编程语言:未来的期待与挑战

在刚刚过去的华为开发者大会(HDC)上,除了发布鸿蒙新一代操作系统外,备受期待的仓颉编程语言也正式亮相。对于这一新语言的发布,业界和程序员社区给予了高度关注。本文将深入探讨仓颉编程语言的特点、应用前景及其面临的…

Linux系统上部署Whisper。

Whisper是一个开源的自动语音识别(ASR)模型,最初由OpenAI发布。要在本地Linux系统上部署Whisper,你可以按照以下步骤进行: 1. 创建虚拟环境 为了避免依赖冲突,建议在虚拟环境中进行部署。创建并激活一个新…

16位诺奖经济学奖得主联名信:特朗普就是“通胀炸弹”

经济学家警告特朗普“不负责任的财政预算将重燃通胀”,尤其是其对外国商品征收普遍关税和驱逐移民的政策,可能会对美国乃至全球经济产生灾难性长期影响。但华尔街分析师称,两党如今都是贸易保护主义者,通胀注定会回升,…

STM32 HAL库 外部中断 实现按键控制LED亮灭

目录 1、为什么使用GPIO外部中断控制LED亮灭? 2、NVIC嵌套向量中断控制器 3、EXTI外部中断 4、项目的硬件排线 5、STM32CUBE_MX配置 6、HAL库代码 7、实际效果 1、为什么使用GPIO外部中断控制LED亮灭? 实现LED亮灭控制有很多方式,其中…

【机器学习】在【PyCharm中的学习】:从【基础到进阶的全面指南】

目录 第一步:基础准备 1.1 Python基础 1.1.1 学习Python的基本语法 变量和数据类型: 1.1.2 控制流 条件语句: 循环语句: 1.1.3 函数和模块 函数: 模块: 1.2 安装PyCharm 1.2.1 下载并安装 第二…

听说网络安全行业是IT行业最后的红利?

前言 2023年网络安全行业的前景看起来非常乐观。根据当前的趋势和发展,一些趋势和发展可能对2023年网络安全行业产生影响: 5G技术的广泛应用:5G技术的普及将会使互联网的速度更快,同时也将带来更多的网络威胁和安全挑战。网络安全…

tr、cut、split、grep -E

目录 tr命令:替换和删除 cut命令:快速裁剪 split命令:文件拆分 文件合并 面试题 1.现在有一个日志文件,有5个G,能不能快速的打开 2.cat合并和paste合并之间的区别? 3.统计当前主机的连接状态&#…

初学51单片机之长短键应用定时炸弹及扩展应用

51单片机RAM区域划分 51单片机的RAM分为两个部分,一块是片内RAM,一块是片外RAM。 data: 片内RAM从 0x00 ~0x7F 寻址范围(0-127) 容量共128B idata: 片外RAM从 0x00~0xFF 寻址范围(0-255) 容量共256B pdata&am…