dzzwoaizi 发表于 2017-8-5 17:03
我当然知道,你是要读出来数据? 我怀疑你这样写就定义了一个数组 P[] 了,而数组的大小就是0x20000ffc,要 ...
不行啊,刚试了下,而且定义的时候直接定义的是一个指针,不是数组指针。。
toofree 发表于 2017-8-5 17:06
加个强到类型转换。比较和赋值的元素,一个是指针,一个是常数,怎么比较? ...
???什么意思????
#include <stdio.h> /* prototype declarations for I/O functions*/
#include <stm32f10x.h> /* STM32F10x definitions */
extern void SER_Init(void); /* see Serial.c */
#define RAM_Start 0x20001000
#define RAM_END 0x20001ffc
#define BCKGRND 0xAA55AA55;
unsigned int * p;
/*----------------------------------------------------------------------------
main program
*----------------------------------------------------------------------------*/
int main (void){ /* execution starts here */
SER_Init (); /* initialize the serial interface */
printf ("Hello World\n"); /* the 'printf' function call */
for (p=(unsigned int *)RAM_Start; p<=(unsigned int *)RAM_END; p++)
{
*p = BCKGRND;
}
while (1) { /* An embedded program does not stop and */
;/* ... */ /* never returns. We use an endless loop. */
} /* Replace the dots (...) with your own code.*/
}
你用的什么芯片?RAM空间从哪开始,到哪结束,有多大?
看一下你编译生成的map文件,都占用哪些内存空间了。
我设置的是STM32F103RBT,看一下这几张图,不解释,看有没有慧根了。
你能明白多少,算多少吧。
这个是不是有问题啊,直接跳过不执行。。。。。
toofree 发表于 2017-8-5 17:26
你用的什么芯片?RAM空间从哪开始,到哪结束,有多大?
看一下你编译生成的map文件,都占用哪些内存空间了 ...
我用的STM32F031芯片,RAM从0x20000000到0x20000ffc
要避开系统已使用的RAM,这些是不能随便写的。
只能写系统未使用的RAM
toofree 发表于 2017-8-5 17:24
按照你的方法试了还不行,不晓得有没可能是RAM_END有问题,但我的地址跟你的差不多类似,应该又没问题,我是STM32F031的,我那个仿真的界面的RAM地址就是0x20000000,大小:0x1000