当前位置: 首页 > ds >正文

STM32 - Embedded IDE - GCC - 如何在工程中定义一段 NoInit RAM 内存

导言


在这里插入图片描述
如上所示,Keil创建一段NoInit内存同样是通过图形界面来完成,IRAM2的起始地址0x2000000,大小8bytes。

NoInit的意思是程序初始化时,不会将内存清0初始化。

在这里插入图片描述
如上所示,在MEMORY段,将64K的RAM内存划一块8bytes的内存出来,重新命名为RAM_NOINIT。

MEMORY
{RAM         (rw)     : ORIGIN = 0x20000008,  LENGTH = 64K - 8RAM_NOINIT  (rw)     : ORIGIN = 0x20000000,  LENGTH = 8          FLASH       (rx)     : ORIGIN = 0x08000000,  LENGTH = 64K        
}

MEMORY的作用:

  • 定义MCU的物理内存区域;
  • 指定每个区域的起始地址和大小;
  • 告诉链接器哪些地址范围是可用的;
  • RAM_NOINIT只是一个命名的内存区域,本身没有no-init属性;
    在这里插入图片描述
    SECTIONS段的作用:
  • (NOLOAD):这才是真正的no-init属性,告诉链接器不要为这个段生成初始化代码;
  • *(.noinit):收集所有标记为.noinit段的变量;
  • >RAM_NOINIT:将这个段放置到之前定义的RAM_NOINIT内存区域

一、在.noinit段声明一个变量


在这里插入图片描述

volatile uint64_t update_flag __attribute__((section(".noinit")));

在这里插入图片描述
如上所示,RAM_NOINIT内存被占满了。
在这里插入图片描述
如上所示,在.map文件中确认变量update_flag被定义在0x20000000。

http://www.xdnf.cn/news/20012.html

相关文章:

  • 爬取m3u8视频完整教程
  • JavaWeb项目在服务器部署
  • 数据结构之----线性表其一---顺序表
  • 弱电太累,职业发展遇瓶颈?那一定不要错过这个技能!
  • 单片机(89C51)---基础知识
  • 阅兵时刻,耐达讯自动化RS485 转 Profinet 网关助力矿山冶金连接迈向辉煌
  • 【大数据技术实战】Flink+DS+Dinky 自动化构建数仓平台
  • 嵌入式 Linux 启动流程详解 (以 ARM + U-Boot 为例)
  • 【ShiMetaPi M4-R1】上手:RK3568B2|开源鸿蒙(OpenHarmony) 应用开发快速上手
  • Vue+Echarts饼图深度美化指南:打造卓越数据可视化体验
  • 深入理解 Java 集合框架:底层原理与实战应用
  • 0元部署私有n8n,免费的2CPU+16GB服务器,解锁无限制的工作流体验
  • ruoyi vue element 实现点击、返回首页收起已经展开的菜单栏
  • SpringBoot 整合 Kafka 的实战指南
  • 《用 Django 构建博客应用:从模型设计到文章管理的全流程实战》
  • 2025年11月GIS应用技术测评考试(附考试资料分享)
  • 【开题答辩全过程】以 校园安全管理系统设计与实现为例,包含答辩的问题和答案
  • Django 命令大全:从入门到精通,开发者必备指南
  • Spring Boot 事务失效的八大原因及解决方案详解
  • 什么是科技成果鉴定测试?成果鉴定测试报告带给企业什么好处?
  • 【54页PPT】基于DeepSeek的数据治理技术(附下载方式)
  • 数据库高可用全方案:Keepalived 故障切换 + LVS (DR) 模式 + MariaDB 主主同步实战案例
  • 深度学习----卷积神经网络的数据增强
  • docker 安装 redis 并设置 volumes 并修改 修改密码(三)
  • 工厂设备物联平台_HawkEye智能运维平台_璞华大数据
  • mac idea 配置了Gitlab的远程地址,但是每次pull 或者push 都要输入密码,怎么办
  • 开源与闭源的再对决:从Grok到中国力量,AI生态走向何方?
  • LeetCode 面试经典 150_矩阵_有效的数独(34_36_C++_中等)(额外数组)
  • Dify 从入门到精通(第 73/100 篇):Dify 的高级 RAG 优化(高级篇)
  • Vue 3 WebSocket通信方案:从原理到实践