野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 13636|回复: 3

代码运行模式

[复制链接]
发表于 2016-5-16 16:46:58 | 显示全部楼层 |阅读模式
请教大家一个问题,我们一个工程里面定义了好多变量和好多函数,函数在运行过程中堆栈也会消耗很多RAM空间,我想请问一下有没有这样一种模式,将代码在flash中运行,不占用RAM空间,这样做的话,我就可以把更多的RAM空间给要使用的变量。
如果是变量我知道可以这样:
const int a = 0;在PC上的话,表示这个变量是不可变的,如果在STM32上面表示变量a,存放于flash中,而不是RAM中,只能够读取,不能够写。
如果现在我把一个函数加上const是否有同样的意义和功效呢,如下:
const int func_a(int *p)
{
...
...
...
}
我这样做的话,是不是就可以让func_a始终在flash中运行,不使用ram空间。请大家和火哥指点指点。
回复

使用道具 举报

发表于 2016-5-16 18:41:17 | 显示全部楼层
stm32的程序代码本来就是存储在flash,变量才是存储到栈
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-5-16 20:49:52 | 显示全部楼层
也就是说代码运行的时候是在flash里面运行的对吧,只不过在函数调用的时候相关局部变量信息是存在内存里面的对吧,也就是说代码本来就是在flash中运行,RAM的话,是拿来存放变量和堆栈的,请问这样理解对吗
回复 支持 反对

使用道具 举报

发表于 2016-5-17 06:55:39 | 显示全部楼层
是这样的..
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2025-1-12 03:46 , Processed in 0.031255 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表