你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。
chrome
firefox
safari
ie8及以上
ST
意法半导体官网
STM32
中文官网
ST
全球论坛
登录/注册
首页
技术问答
话题
资源
创客秀
视频
标签
每日签到
STM32团队2
论坛吐槽优化专区
升级测试
如何读出单片机上电时的RAM值?
[复制链接]
帅到没朋友
提问时间:2017-1-25 18:19 /
阅读主题, 点击返回1楼
赞
0
收藏
2
评论
27
分享
发布时间:2017-1-25 18:19
请先
登录
后回复
27个回答
toofree
回答时间:2017-2-20 12:29:46
a0a.1 32b0c
直接定义个RAM变量指针,指针即为RAM的地址,直接读就可以。
如:
#define START_ADDR 0x0
#define RANG_ADDR 256
unsigned int *p;
unsigned int i,temp;
for (i=0;i<RANG_ADDR;i++)
{
temp = *p; //temp即为当前ram数据
p++;
}
评分
参与人数
1
ST金币
+2
收起
理由
zero99
+ 2
查看全部评分
赞
0
评论
回复
支持
反对
cos12a-21701
回答时间:2017-2-20 12:37:35
a1024a.1 32b0c
帮顶一个.
赞
0
评论
回复
支持
反对
中山无雪
回答时间:2017-2-20 13:36:18
a0a.1 32b0c
上电时RAM都是 MCU初始化的值,读取它有何意义???
若是读取复位时(一直有电)的值可能还有意义,可以定义系统复位时不初始化某部分区域的值,当发生复位时这部分的值不会发生改变,还保存着复位前的值,这时可以读取到复位前的值,一旦发生断电,这部分值不会保存,各家MCU初始化的值可能不一样,再读取就没有意义了
点评
队长shiwo
有点道理
发表于 2017-2-20 14:48
评分
参与人数
1
ST金币
+2
收起
理由
zero99
+ 2
查看全部评分
赞
1
评论
回复
支持
1
反对
0
zbber
回答时间:2017-2-20 14:09:49
a0a.1 32b0c
可以做一个循环,从00一真读到128
评分
参与人数
1
ST金币
+2
收起
理由
zero99
+ 2
赞一个!
查看全部评分
赞
0
评论
回复
支持
反对
johnson_gong
回答时间:2017-2-20 15:25:01
a0a.1 32b0c
楼上几位说的很有道理
赞
0
评论
回复
支持
反对
zhjb1
回答时间:2017-2-20 17:32:06
a0a.1 32b0c
楼上各位说的都很有道理。读取RAM只有在低功耗的stop状态唤醒后可能有意义。片子睡着了都干了些什么?
赞
0
评论
回复
支持
反对
wenyangzeng
回答时间:2017-2-20 19:04:12
a0a.1 32b0c
读RAM内容的方法:输入RAM的地址
评分
参与人数
1
ST金币
+2
收起
理由
zero99
+ 2
查看全部评分
赞
0
评论
回复
支持
反对
df_flying
回答时间:2017-2-20 20:52:31
a0a.1 32b0c
RAM要么变量值 要么是拷贝过来等待执行的程序在里面,你看他干嘛?调试界面就可以看到变量值的,如果你想看哪个地址的值,可以定一个指针,在ARM范围内指过去再打印出来就行了。
评分
参与人数
1
ST金币
+2
收起
理由
zero99
+ 2
查看全部评分
赞
0
评论
回复
支持
反对
watershade
回答时间:2017-2-20 21:07:51
a0a.1 32b0c
你是不是说上电时的起始地址怎么读取?
如果是,我猜想这是不必要的。如果你真的觉得有必要,那可能是你自己写的bootloader了。那更改一下S文件吧,设法把起始地址的值用汇编写到一个绝对地址里。
这个问题有些很费解
评分
参与人数
1
ST金币
+2
收起
理由
zero99
+ 2
查看全部评分
赞
0
评论
回复
支持
反对
海迹天涯
回答时间:2017-2-20 21:13:51
a0a.1 32b0c
不知道哈哈
赞
0
评论
回复
支持
反对
1
2
3
/ 3 页
下一页
所属标签
相似问题
关于
意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号
手机版
快速回复
返回顶部
返回列表
如:
#define START_ADDR 0x0
#define RANG_ADDR 256
unsigned int *p;
unsigned int i,temp;
for (i=0;i<RANG_ADDR;i++)
{
temp = *p; //temp即为当前ram数据
p++;
}
评分
查看全部评分
若是读取复位时(一直有电)的值可能还有意义,可以定义系统复位时不初始化某部分区域的值,当发生复位时这部分的值不会发生改变,还保存着复位前的值,这时可以读取到复位前的值,一旦发生断电,这部分值不会保存,各家MCU初始化的值可能不一样,再读取就没有意义了
点评
评分
查看全部评分
评分
查看全部评分
读RAM内容的方法:输入RAM的地址
评分
查看全部评分
评分
查看全部评分
如果是,我猜想这是不必要的。如果你真的觉得有必要,那可能是你自己写的bootloader了。那更改一下S文件吧,设法把起始地址的值用汇编写到一个绝对地址里。
这个问题有些很费解
评分
查看全部评分