电子工程师技术服务社区
公告
登录
|
注册
首页
技术问答
厂商活动
正点原子
板卡试用
资源库
下载
文章
社区首页
问答
STM32中的CODE区是什么作用呢?
已解决
73482
个问题
已帮助
5993
位优秀工程师
STM32中的CODE区是什么作用呢?
91e09c4082713d28
2019-09-19
浏览量:2566
STM32中的CODE区是什么作用呢?
显示全部
关注问题
写回答
0
0
收起
我来回答
上传资料:
选择文件
文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
c578afb66d9dde8c
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
ALLPASS
code--程序存储区单片机存储器分ROM跟RAM之分,RAM存放中间结果,数据和经常变换的代码,ROM存放code。程序内存可以分为几个区,栈区(stack),堆区(Heap),全局区(static),文字常亮区,程序代码区。程序编译之后,全局变量,静态变量已经分配好内存空间,在函数运行时,程序需要为局部变量分配栈空间,当中断来时,也需要将函数指针入栈,保护现场,以便于中断处理完之后再回到之前执行的函数。栈是从高到低分配,堆是从低到高分配。我们一般说的堆栈指的栈。堆栈又分硬堆栈和软堆栈,硬堆栈即SP,从片内RAM的顶部向下生长。软堆栈在硬堆栈跟全局变量区之间的空间
发布于
2019-09-21
举报
评论 0
1
0
yhj416606438
存放执行代码用的,但是正真的代码大小还要包含一些初始值的变量和静态常量
发布于
2019-09-20
举报
评论 0
0
0
apleilx
stm32存储架构大略可分为,rom,ram,外设,内核几个区域。code区是51里面的概念。对应stm32的应该是rom区,指的是flash。
发布于
2019-09-20
举报
评论 0
0
0
FEItwo
Code是编译出来的机器指令,
存储数据代码的,CPU可以直接读取ROM的Code(机器指令)直接执行。flash起始地址,是真实的物理地址。
code地址,这个是逻辑的,跟编译器有关。
发布于
2019-09-20
举报
评论 0
0
0
chen0000009
用来存放代码的,这个区是放在flash里面
发布于
2019-09-23
举报
评论 0
0
0
相关问题
问题达人
换一批
文章
知识经验换现金
换一批
STM32中的CODE区是什么作用呢?
写回答
关注问题
×
我要举报该内容,理由是:
内容质量差:
内容太水、伸手党
垃圾广告信息:
广告、招聘、推广、测试内容等
偏离问答主题:
与技术无关、讨论类
与社区已有内容重复:
违规内容:
色情、暴力、血腥、敏感信息等
不友善内容:
人事攻击、挑衅辱骂、恶意行为
以上选项都不是: