p是怎么定义的?
把p 定义改成uint8_t*p;
然后赋值改为*p= (uint8_t)i;
试试看
zhao.zhao 发表于 2017-8-6 09:59
把p 定义改成uint8_t*p;
然后赋值改为*p= (uint8_t)i;
试试看
我的是uint32_t的,定义八位肯定不对吧,指的地址是32位的
*p一次获得4个字节的值,p++指向地址按字节计算应该在4个字节之后;而for循环中写的地址看上去是以字节为单位的
zhao.zhao 发表于 2017-8-6 16:35
*p一次获得4个字节的值,p++指向地址按字节计算应该在4个字节之后;而for循环中写的地址看上去是以字节为单 ...
这个我单步过了,是正常的写的地址。。。还有,感觉没懂你的意思
单步看p的值,还有直接内存操作,你可能会改变堆栈里的一些重要信息,导致程序死机
我也复制下来试试
看得内存地址是不是读写正常。。。
这是完整的那个函数。。。
我刚试过,完全没问题,不过我试的是个小程序,全局变量很少,堆栈也不大,在写之前,0x20001000-0x20001fff内全部为0,执行后都是55 AA 55 AA ...... 完全符合小模式存储规律。运行过了后,初始化LCD显示屏,串口,串口发送接收数据,显示数据,定时器都工作的很好。