S3C2440A内存读写的奇怪的问题

[复制链接]
2422|8
 楼主| erp12 发表于 2009-1-7 09:17 | 显示全部楼层 |阅读模式
各位大侠:<br /><br />我在做实验的时候遇到了奇怪的问题,就是从一个缓冲区拷贝到另一个缓冲的时候发生了错误,而使用立即数直接赋值却不会错,各位大侠能告诉我原因吗??<br /><br />如:<br /><br />unsigned&nbsp;char&nbsp;lcd_buf[1500]<br /><br />for(y=0;y&lt1500;y++)<br />{<br />lcd_buf[y]=&nbsp;67;<br /><br />}<br /><br /><br />lcd_buf是全局变量,y是局部变量,以上执行的结果是对的,而下面的执行结果却是错的:<br /><br />unsigned&nbsp;char&nbsp;lcd_buf[1500]<br /><br />const&nbsp;unsigned&nbsp;char&nbsp;buf[1500]<br /><br />for(y=0;y&lt1500;y++)<br />{<br />lcd_buf[y]=&nbsp;buf[y]<br /><br />}<br /><br />lcd_bu和buf是全局变量,s和y是局部变量.<br /><br />哪位兄弟能告诉我为什么吗??<br />
hyhjjg 发表于 2009-1-7 19:56 | 显示全部楼层

加个中间变量看

实验以下看看
阿南 发表于 2009-1-8 01:03 | 显示全部楼层

将lcd_buf定义成volatile试试

  
 楼主| erp12 发表于 2009-1-8 11:13 | 显示全部楼层

都试过了,还是不行啊

以上两位兄弟的方法都试过了,可是仍旧是错的。不过还是谢谢了
l0p0c 发表于 2009-1-12 19:08 | 显示全部楼层

那你的问题就是比较奇怪了!

  
high 发表于 2009-1-13 01:15 | 显示全部楼层

试试

unsigned&nbsp;char&nbsp;lcd_buf[15]<br /><br />const&nbsp;unsigned&nbsp;char&nbsp;buf[15]
 楼主| erp12 发表于 2009-1-13 17:46 | 显示全部楼层

数组维数小的时候是正确的

数组维数小的时候是正确的,正如楼上说的。我用的开发环境是KEIL&nbsp;&nbsp;FOR&nbsp;&nbsp;ARM&nbsp;&nbsp;&nbsp;MDK&nbsp;3。40的
high 发表于 2009-1-13 18:15 | 显示全部楼层

你自己分析下list文件

编译器一般都会有一个详细的输出文件list&nbsp;code&nbsp;占用,data占用之类的细节。<br /><br />不要怀疑代码语法错误了,&nbsp;你的是系统错误。
xwj 发表于 2009-1-13 18:45 | 显示全部楼层

语句都不用加分号的???

而且,要学会用memcpy
您需要登录后才可以回帖 登录 | 注册

本版积分规则

20

主题

30

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部