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

嵌入式程序存储结构

        最近有同事说资源不够用了,这里的资源说的是RAM(内存),但是硬件资源就这么点,怎么解决呢?实际上资源是够用的,只是分配不合理罢了,作为软硬通吃的全栈工程师,这点难不倒我。

        我们知道,所有的程序只有两部分结构,指令和变量,指令是让控制器知道要干啥,而变量(数据)是那个被干的对象(操作数),程序是指令和变量的合集,那么他们在CPU系统里面如何存储,存在哪里?下面这张图总结的很好,

        对于小型的嵌入式CPU(51单片机,M核单片机等),没有足够的RAM,程序一般运行在flash中,即.text内容不需要搬运到RAM,对于高端一点的CPU(如R核,A核单片机),运行的功能比较多,系统资源也比较多的场景,可以将.text搬运到RAM运行,一般的跑大型操作系统的设备程序都是运行在内存中。

        在资源(flash和RAM)紧张的平台上,根据上面的图我们就可以对程序进行一定的优化,合理安排变量的类型,将资源合理的分布在flash和RAM里。

 

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

相关文章:

  • HW中常态化反钓鱼训练的具体战略部署
  • 【网络】每天掌握一个Linux命令 - netperf
  • 6. TypeScript 函数
  • 提升集装箱及金属包装容器制造交付效率:数字化项目管理系统的核心优势
  • 异常谋杀案--Java异常处理篇
  • 工程论文: TORL: Scaling Tool-Integrated RL
  • StackOverflowError
  • (javaSE)继承和多态:成员变量,super,子类构造方法,super和this,初始化, protected 继承方式 final关键字 继承与组合
  • Dify-7: RAG 知识系统
  • 什么是项目进度管理?项目进度管理有哪些核心功能?
  • LLM 系列(二) :基础概念篇
  • 力扣-347.前K个高频元素
  • 控制器轨迹生成
  • 编程项目学习,怎么快速掌握
  • 菜鸟带新鸟--EPlan2022创建自己的标识字母
  • 创建和运行线程
  • *res = append(*res, temp) 为什么要使用 temp 作为临时存储值
  • Hydra 工具小白入门教程指导篇
  • 18.进程间通信(四)
  • Python_day51
  • Future与CompletableFuture:异步编程对比
  • v4l2_subdev 与 /dev/videoX 的关联
  • Git不能更新以及提交代码,提示链接超时,本地凭证无问题
  • 6.11 MySQL面试题 日志 性能 架构
  • 深入理解TCP以及三次握手与四次挥手
  • 面对多个项目并行,协作机制如何建立?
  • Java 8 Stream 流详细教程 - 全面指南
  • 重塑未来的力量:人工智能的技术演进与产业变革
  • git的5种分支分别是干嘛的,git常用指令
  • git的常用方法