toofree 发表于 2017-2-20 12:29:46

直接定义个RAM变量指针,指针即为RAM的地址,直接读就可以。
如:
#define START_ADDR 0x0
#define RANG_ADDR256
unsigned int *p;
unsigned int i,temp;
for (i=0;i<RANG_ADDR;i++)
{
    temp = *p;   //temp即为当前ram数据
    p++;
}

cos12a-21701 发表于 2017-2-20 12:37:35

帮顶一个.

中山无雪 发表于 2017-2-20 13:36:18

上电时RAM都是 MCU初始化的值,读取它有何意义???

若是读取复位时(一直有电)的值可能还有意义,可以定义系统复位时不初始化某部分区域的值,当发生复位时这部分的值不会发生改变,还保存着复位前的值,这时可以读取到复位前的值,一旦发生断电,这部分值不会保存,各家MCU初始化的值可能不一样,再读取就没有意义了

zbber 发表于 2017-2-20 14:09:49

可以做一个循环,从00一真读到128

johnson_gong 发表于 2017-2-20 15:25:01

楼上几位说的很有道理

zhjb1 发表于 2017-2-20 17:32:06

楼上各位说的都很有道理。读取RAM只有在低功耗的stop状态唤醒后可能有意义。片子睡着了都干了些什么?

wenyangzeng 发表于 2017-2-20 19:04:12


读RAM内容的方法:输入RAM的地址

df_flying 发表于 2017-2-20 20:52:31

RAM要么变量值 要么是拷贝过来等待执行的程序在里面,你看他干嘛?调试界面就可以看到变量值的,如果你想看哪个地址的值,可以定一个指针,在ARM范围内指过去再打印出来就行了。

watershade 发表于 2017-2-20 21:07:51

你是不是说上电时的起始地址怎么读取?
如果是,我猜想这是不必要的。如果你真的觉得有必要,那可能是你自己写的bootloader了。那更改一下S文件吧,设法把起始地址的值用汇编写到一个绝对地址里。
这个问题有些很费解

海迹天涯 发表于 2017-2-20 21:13:51

不知道哈哈
页: 1 [2] 3
查看完整版本: 如何读出单片机上电时的RAM值?