码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 嵌入式开发:嵌入式基础——代码和数据空间揭秘


      在为资源受限的系统开发软件时,强烈建议嵌入式开发人员使用跟踪代码、数据和RAM使用情况的指标。该信息总是可以在编译器生成的映射文件中找到,但它并不总是最终的和总的值。许多编译器会计算这些值,并在编译过程中将它们打印到控制台窗口。尽管显示的信息并不总是清晰的。

      例如,在为ARM Cortex-M处理器编译程序时,打印到控制台的输出将采用类似如下的形式:

      文本数据 bss dec 十六进制文件名

      0x100 0x22 0x56 377 0x178 experiment1.elf

      乍一看,这可能看起来相对令人生畏,尽管并不完全如此。脑海中浮现的问题是,这些不同的空间到底是什么意思?实际使用了多少RAM和多少闪存?要理解这一点,关键是要知道这些细分市场到底是什么,以及它们对这些总数的贡献如何。

      

     

      文本段告诉嵌入式开发人员有多少闪存空间被分配给程序的代码和常量。这可以被认为是任何使用常量类型限定符的变量、函数和作为程序的一部分生成的可执行代码。例如,下面的语句将向文本段添加四个字节。

      const uint32 _ t Data = 0x14

      数据段包含初始化变量在闪存中占用的空间量。这一部分非常重要,因为变量的初始值存储在flash中,但在系统初始化期间会复制到RAM中。这种复制过程通常被称为C向下复制。下面是一个初始化变量的例子:

      uint32 _ t Data _ Init = 0x14

      bss段包含用于任何未初始化数据的空间。这是将被赋予初始值0的数据。这些变量将再次存储在RAM中。未初始化数据的一个简单示例如下:

      uint32 _ t Data _ NoInit

      编译器输出中的其余值只是以十进制或十六进制表示法表示文本、数据和bss段的总数。不幸的是,这个结果实际上只告诉了应用程序将使用多少闪存空间。要获得正在使用的RAM量,需要将数据段和bss段相加。一旦完成,嵌入式开发人员就可以了解器件使用了多少闪存和RAM空间。

  • 相关阅读:
    6 HTTP&Tomcat&Servlet详解
    【概率论】期中复习笔记(下):大数定律与中心极限定理
    【opencv】windows10下opencv4.8.0-cuda C++版本源码编译教程
    【论文笔记】LoRA LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS
    修谱是一件好事:薪火相传,让老一辈庇护和提携后辈,造福乡里宗亲
    通过制作llama_cpp的docker镜像在内网离线部署运行大模型
    应用ceph块存储(ceph-13.2.10)
    k8s之选主机制
    一文搞懂Android JetPack组件原理之Lifecycle、LiveData、ViewModel与源码分析技巧
    如何破坏开发板iNand中的uboot?
  • 原文地址:https://blog.csdn.net/yueqian_edu/article/details/126141849
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号