• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

STM32中的CODE区是什么作用呢?

91e09c4082713d28 2019-09-19 浏览量:2566
STM32中的CODE区是什么作用呢?
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • STM32的ROM被划分为三个部分:RO-data区,RW-data区(初始化为非0的全局变量),Code区;RO-data是只读数据:常量就是属于该区的,RW-data是初始化为非0的全局变量,在程序运行的时候,这块数据就会拷贝到RAM里面的静态区的数据段里面,Code是编译出来的机器指令。由于STM32的ROM是NorFlash,因此CPU可以直接读取ROM的Code(机器指令)直接执行。所以一般情况下,单片机不需要像Linux那样将Flash中的数据拷贝进入内存,而是直接就运行在ROM上。当发生了函数调用的时候,栈区就会被使用到;当使用到了全局变量或者static局部变量以后,静态区的数据就会被访问到;当使用malloc动态分配了内存的时候,堆区的内存空间就会被使用到。

    • 发布于 2019-09-20
    • 举报
    • 评论 0
    • 1
    • 0

其他答案 数量:5
  • code--程序存储区单片机存储器分ROM跟RAM之分,RAM存放中间结果,数据和经常变换的代码,ROM存放code。程序内存可以分为几个区,栈区(stack),堆区(Heap),全局区(static),文字常亮区,程序代码区。程序编译之后,全局变量,静态变量已经分配好内存空间,在函数运行时,程序需要为局部变量分配栈空间,当中断来时,也需要将函数指针入栈,保护现场,以便于中断处理完之后再回到之前执行的函数。栈是从高到低分配,堆是从低到高分配。我们一般说的堆栈指的栈。堆栈又分硬堆栈和软堆栈,硬堆栈即SP,从片内RAM的顶部向下生长。软堆栈在硬堆栈跟全局变量区之间的空间
    • 发布于2019-09-21
    • 举报
    • 评论 0
    • 1
    • 0

  • 存放执行代码用的,但是正真的代码大小还要包含一些初始值的变量和静态常量
    • 发布于2019-09-20
    • 举报
    • 评论 0
    • 0
    • 0

  • stm32存储架构大略可分为,rom,ram,外设,内核几个区域。code区是51里面的概念。对应stm32的应该是rom区,指的是flash。
    • 发布于2019-09-20
    • 举报
    • 评论 0
    • 0
    • 0

  • Code是编译出来的机器指令,​存储数据代码的,CPU可以直接读取ROM的Code(机器指令)直接执行。​flash起始地址,是真实的物理地址。code地址,这个是逻辑的,跟编译器有关。
    • 发布于2019-09-20
    • 举报
    • 评论 0
    • 0
    • 0

  • 用来存放代码的,这个区是放在flash里面
    • 发布于2019-09-23
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

STM32中的CODE区是什么作用呢?