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

STM32/GD32_分散加载

Q:如何将一个变量、某个源文件的函数在编译阶段就存储在用户指定的区域?

KEIL环境:.map后缀文件、.sct后缀文件

IAR环境:.map后缀文件、.icf后缀文件

【map文件】

对固件里面的变量、函数、常量等元素的存储空间进行分配的说明文件

下面看几个变量的不同状态在map的存储说明:

全局的

 》可以看到,全局变量是否占用数据空间取决于后续是否使用这个变量。

局部的

 

 

 》可以看到,对于局部变量,无论是否加static修饰,仅仅声明未被使用的变量不会占用数据空间

》被static修饰的局部变量且后续被使用才会占用空间,未被static修饰的局部变量就算后续被使用也不会占用数据空间

PS:keil对于未初始化的数组,元素个数<9时算RW-data,元素个数大于8的算ZI-data

 

程序最终生成的固件空间大小取决于code、RO(只读数据)、RW(可读写数据)

一个完整的程序由代码和数据组成;

1、只定义未使用的全局或局部变量不占用存储空间。

2、被static修饰为全生命周期的局部变量也要后续使用才会占用空间。

3、未进行初始化的数组变量被算做ZI-Data部分

【sct/icf文件】

设置RAM、FALSH存储空间的起始地址和偏移量

将函数或变量添加到用户自定义区域(配合__attribute__ 编译特性使用)

》Keil界面,默认分配状态

》IAR界面

【__attribute__ 】

__attribute__((__packed__))

__attribute__((at(addr)))

 

》可以看到,在指定的地址存储了用户需要提前存储的数据,加了packed关键字后存储空间明显缩小;对于结构体默认是以4字节对齐的方式调整

__attribute__((section("func_name")))

__attribute__((aligned(8))) 对齐方式

__attribute__((packed, aligned(8)))

相关文章:

STM32/GD32_分散加载

Q&#xff1a;如何将一个变量、某个源文件的函数在编译阶段就存储在用户指定的区域&#xff1f; KEIL环境&#xff1a;.map后缀文件、.sct后缀文件 IAR环境&#xff1a;.map后缀文件、.icf后缀文件 【map文件】 对固件里面的变量、函数、常量等元素的存储空间进行分配的说明…...

go clean

移除目标文件和缓存文件。 更多信息&#xff1a;https://golang.org/cmd/go/#hdr-Remove_object_files_and_cached_files. 只打印移除命令&#xff0c;而不会真正移除任何东西&#xff1a; go clean -n 删除编译缓存&#xff1a; go clean -cache 删除所有测试结果缓存&…...

BUUCTF [ACTF新生赛2020]swp 1

BUUCTF:https://buuoj.cn/challenges 题目描述&#xff1a; 得到的 flag 请包上 flag{} 提交。 密文&#xff1a; 下载附件&#xff0c;得到一个.tar文件。 解题思路&#xff1a; 1、使用WinRAR解压.tar文件&#xff0c;得到两个.zip文件。 解压wget.zip文件&#xff0c;得…...

【PTA题目】7-4 缩写期刊名 分数 10

7-4 缩写期刊名 分数 10 全屏浏览题目 切换布局 作者 黄龙军 单位 绍兴文理学院 科研工作者经常要向不同的期刊投稿。但不同期刊的参考文献的格式往往各不相同。有些期刊要求参考文献所发表的期刊名必须采用缩写形式&#xff0c;否则直接拒稿。现对于给定的期刊名&#xff…...

什么是 TLS/SSL 握手

TLS/SSL 握手是一个加密过程&#xff0c;每当客户端&#xff08;如浏览器&#xff09;与服务器建立连接时&#xff0c;都会在后台进行&#xff0c;此握手协议有助于客户端和服务器之间的安全连接&#xff0c;从而促进隐私、数据完整性和机密性。 TLS/SSL 握手何时发生 每当客…...

和鲸科技与国科环宇建立战略合作伙伴关系,以软硬件一体化解决方案促进科技创新

近日&#xff0c;在国科环宇土星云算力服务器产品发布会暨合作伙伴年度会上&#xff0c;和鲸科技与国科环宇正式完成战略伙伴签约仪式&#xff0c;宣布达成战略合作伙伴关系。未来&#xff0c;双方将深化合作&#xff0c;充分发挥在产品和市场方面的互补优势&#xff0c;为企事…...

[C++]六大默认成员函数详解

☃️个人主页&#xff1a;fighting小泽 &#x1f338;作者简介&#xff1a;目前正在学习C和Linux &#x1f33c;博客专栏&#xff1a;C入门 &#x1f3f5;️欢迎关注&#xff1a;评论&#x1f44a;&#x1f3fb;点赞&#x1f44d;&#x1f3fb;留言&#x1f4aa;&#x1f3fb; …...

组合(回溯算法)

77. 组合 - 力扣&#xff08;LeetCode&#xff09; 题目描述 给定两个整数 n 和 k&#xff0c;返回范围 [1, n] 中所有可能的 k 个数的组合。 你可以按 任何顺序 返回答案。 样例输入 示例 1&#xff1a; 输入&#xff1a;n 4, k 2 输出&#xff1a; [[2,4],[3,4],[2,3],…...

力扣:1419. 数青蛙

题目&#xff1a; 代码&#xff1a; class Solution { public:int minNumberOfFrogs(string croakOfFrogs){string s "croak";int ns.size();//首先创建一个哈希表来标明每个元素出现的次数&#xff01;vector<int>hash(n); //不用真的创建一个hash表用一个数…...

java_springboot企业人事考勤请假管理信息系统rsglxx+jsp

&#xff08;1&#xff09;熟练掌握Java开发的原理和方法 &#xff08;2&#xff09;熟练学习掌握SSM框架 &#xff08;3&#xff09;熟悉软件开发的流程 &#xff08;4&#xff09;了解中内外互联网中所主流的技术 &#xff08;5&#xff09;深层次的了解计算机学科领域的知识…...

java项目之木里风景文化管理平台(ssm+vue)

项目简介 木里风景文化管理平台实现了以下功能&#xff1a; 前台功能&#xff1a;用户进入系统可以实现首页&#xff0c;旅游公告&#xff0c;景区&#xff0c;景区商品&#xff0c;景区美食&#xff0c;旅游交通工具&#xff0c;红黑榜&#xff0c;个人中心&#xff0c;后台…...

源码安装mysql

使用源码安装mysql&#xff0c;这里选择的版本是mysql5.7.35 ,系统是Centos7.6 官网下载地址&#xff1a;https://downloads.mysql.com/archives/community/ 下载源码压缩包 [rootlocalhost ~]# cd /opt[rootlocalhost opt]# wget https://downloads.mysql.com/archives/get/…...

注解方式优雅的实现Redisson分布式锁

1.前言 随着微服务的快速推进&#xff0c;分布式架构也得到蓬勃的发展&#xff0c;那么如何保证多进程之间的并发则成为需要考虑的问题。因为服务是分布式部署模式&#xff0c;本地锁Reentrantlock和Synchnorized就无法使用了&#xff0c;当然很多同学脱口而出的基于Redis的se…...

服务器安装JDK17 版本显示JDK8

服务器之前安装的是JDK8&#xff0c;后面升级JDK17后&#xff0c;发现执行 java -vsrsion 显示的是此时我的环境变量已经换成了JAVA17的路径 输入&#xff1a; vim /etc/profile 解决办法&#xff1a; 1.更新自己环境变量 bash export JAVA_HOME/usr/local/jdk-17.0.7 …...

利用MCMC 获得泊松分布

写出概率流方程如下 if state 0: if np.random.random() < min([Lambda/2, 1]):state 1else:passelif state 1:if choose_prob_state[i] < 0.5:#选择 1 -> 0&#xff0c;此时的接受概率为min[2/Lambda, 1]if np.random.random() < min([2/Lambda, 1]…...

docker-compose脚本编写及常用命令

安装 linux DOCKER_CONFIG/usr/local/lib/docker/cli-plugins sudo mkdir -p $DOCKER_CONFIG/cli-plugins sudo curl -SL https://521github.com/docker/compose/releases/download/v2.6.1/docker-compose-linux-x86_64 -o $DOCKER_CONFIG/cli-plugins/docker-compose sudo c…...

编译企业微信会话内容存档PHP版SDK扩展

1.下载SDK 如果克隆不了&#xff0c;就页面下载 git clone https://github.com/pangdahua/php7-wxwork-finance-sdk2.下载企微官网C版本的最新sdk文件 下载地址&#xff1a;https://wwcdn.weixin.qq.com/node/wework/images/sdk_20201116.rar 下载以后将解压之后的文件夹里l…...

传统算法:使用 Pygame 实现K-Means 聚类算法

使用 Pygame 模块演示了 K-Means 聚类算法的基本原理。让我逐步解释它的实现: 初始化和基本设置 Pygame 初始化: 通过 pygame.init() 初始化 Pygame。 定义颜色和屏幕大小: 定义了一些颜色常量(WHITE, BLACK, RED, GREEN, BLUE)和屏幕的宽度和高度。 创建 Pygame 窗口:…...

WebUI工作流插件超越ComfyUI

在AI绘画领域&#xff0c;Stable Diffsion是最受欢迎的&#xff0c;因为它是开源软件。 开源有两大优势&#xff0c;一是免费&#xff0c;二是适合折腾。 大量的开发者、爱好者投入无尽的热情&#xff0c;来推动Stable Diffsion的快速发展。 在图形界面方面&#xff0c;WebU…...

Docker容器化平台及其优势和应用场景介绍

Docker是一种开源的容器化平台&#xff0c;它基于操作系统级别虚拟化技术&#xff0c;可以将应用程序及其依赖项打包成一个独立的容器&#xff0c;提供轻量级、一致性、可移植性的应用环境。Docker的基本概念和优势如下&#xff1a; 镜像(Image)&#xff1a;Docker容器的基础&…...

基于RT-Thread与TOF传感器的智能电动滑板主动刹车系统设计

1. 项目概述&#xff1a;从情怀出发的硬件升级之旅几年前&#xff0c;我和几个同学在导师的带领下&#xff0c;捣鼓出了一个基于 Arduino Uno 的电动滑板。那会儿真是干劲十足&#xff0c;白天画图、晚上调代码&#xff0c;傍晚就踩着滑板在校园里飞驰。这个滑板后来成了我的“…...

5分钟极速汉化:让Android Studio告别英文困扰的终极方案

5分钟极速汉化&#xff1a;让Android Studio告别英文困扰的终极方案 【免费下载链接】AndroidStudioChineseLanguagePack AndroidStudio中文插件(官方修改版本&#xff09; 项目地址: https://gitcode.com/gh_mirrors/an/AndroidStudioChineseLanguagePack 还在为Androi…...

TensorFlow+GCP+Firebase构建生产级AI Web应用

1. 项目概述&#xff1a;这不是一个“AI玩具”&#xff0c;而是一套可上线、可运维、可迭代的生产级Web应用工作流你有没有遇到过这样的情况&#xff1a;用TensorFlow训练好一个模型&#xff0c;本地Jupyter里跑得飞起&#xff0c;准确率98%&#xff0c;但一想到要把它变成网页…...

保姆级教程:用Stata处理2000-2021年A股上市公司控制变量(附完整代码与数据)

Stata实战&#xff1a;A股上市公司控制变量构建全流程解析 第一次接触实证研究时&#xff0c;最让我头疼的不是模型设定&#xff0c;而是数据清洗。记得研一那年&#xff0c;导师扔给我一份从CSMAR导出的原始数据&#xff0c;要求两周内完成控制变量构建。面对密密麻麻的Excel表…...

JMeter精准控制1 QPS的底层原理与三种实战方案

1. 这不是“设个线程数”就能搞定的事很多人第一次用Jmeter做压测&#xff0c;看到“我要每秒发1个请求”&#xff0c;第一反应是&#xff1a;开1个线程&#xff0c;Ramp-up时间设为1秒&#xff0c;循环次数设无限——结果一跑起来&#xff0c;发现TPS忽高忽低&#xff0c;有时…...

Linux驱动开发:proc接口原理、实现与调试实战

1. 项目概述&#xff1a;为什么需要了解proc接口&#xff1f;在Linux驱动开发这条路上&#xff0c;很多开发者朋友都曾有过这样的困惑&#xff1a;我的驱动模块加载成功了&#xff0c;设备也识别了&#xff0c;但怎么才能直观地看到它内部的工作状态、配置参数&#xff0c;或者…...

我用了半年只留下这一个!2026做讲座视频总结的神器我真心安利给大家

作为天天测各种AI工具的内容博主&#xff0c;我一半的工作时间都在处理音视频素材——整理讲座录音、剪知识总结视频、整理访谈素材&#xff0c;前前后后踩了快十个转写工具的坑&#xff0c;今天直接给结论&#xff1a;听脑AI是目前同类工具里最值得内容创作者尝试的方案&#…...

如何重新定义华硕笔记本性能管理:探索G-Helper的轻量化解决方案

如何重新定义华硕笔记本性能管理&#xff1a;探索G-Helper的轻量化解决方案 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivobook, Ze…...

别再被‘一亿像素’忽悠了!聊聊手机CMOS尺寸、像素和Remosaic那些事儿

手机CMOS尺寸、像素与成像质量的真相&#xff1a;别再被数字游戏迷惑 每次打开手机厂商的发布会&#xff0c;总能看到各种令人眼花缭乱的参数轰炸——"一亿像素"、"超大底传感器"、"超清画质"。这些营销术语让普通消费者一头雾水&#xff0c;甚至…...

大数据搬运工 · Sqoop

&#x1f69b; 在「关系型数据库」与「Hadoop 大仓库」之间 &#xff5c; 批量、高效、并行运输数据&#x1f4a1; 生活比喻&#xff1a; 想象你的学校图书馆&#xff08;关系型数据库&#xff09;有一大堆超重的图书&#xff0c;而学校新建的“超级储藏大楼”&#xff08;Hado…...