打印

S3C2440A内存读写的奇怪的问题

[复制链接]
1412|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
erp12|  楼主 | 2009-1-7 09:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位大侠:

我在做实验的时候遇到了奇怪的问题,就是从一个缓冲区拷贝到另一个缓冲的时候发生了错误,而使用立即数直接赋值却不会错,各位大侠能告诉我原因吗??

如:

unsigned char lcd_buf[1500]

for(y=0;y<1500;y++)
{
lcd_buf[y]= 67;

}


lcd_buf是全局变量,y是局部变量,以上执行的结果是对的,而下面的执行结果却是错的:

unsigned char lcd_buf[1500]

const unsigned char buf[1500]

for(y=0;y<1500;y++)
{
lcd_buf[y]= buf[y]

}

lcd_bu和buf是全局变量,s和y是局部变量.

哪位兄弟能告诉我为什么吗??

相关帖子

沙发
hyhjjg| | 2009-1-7 19:56 | 只看该作者

加个中间变量看

实验以下看看

使用特权

评论回复
板凳
阿南| | 2009-1-8 01:03 | 只看该作者

将lcd_buf定义成volatile试试

使用特权

评论回复
地板
erp12|  楼主 | 2009-1-8 11:13 | 只看该作者

都试过了,还是不行啊

以上两位兄弟的方法都试过了,可是仍旧是错的。不过还是谢谢了

使用特权

评论回复
5
l0p0c| | 2009-1-12 19:08 | 只看该作者

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

使用特权

评论回复
6
high| | 2009-1-13 01:15 | 只看该作者

试试

unsigned char lcd_buf[15]

const unsigned char buf[15]

使用特权

评论回复
7
erp12|  楼主 | 2009-1-13 17:46 | 只看该作者

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

数组维数小的时候是正确的,正如楼上说的。我用的开发环境是KEIL  FOR  ARM   MDK 3。40的

使用特权

评论回复
8
high| | 2009-1-13 18:15 | 只看该作者

你自己分析下list文件

编译器一般都会有一个详细的输出文件list code 占用,data占用之类的细节。

不要怀疑代码语法错误了, 你的是系统错误。

使用特权

评论回复
9
xwj| | 2009-1-13 18:45 | 只看该作者

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

而且,要学会用memcpy

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

20

主题

30

帖子

1

粉丝