天嵌 ARM开发社区

 找回密码
 注册
查看: 1639|回复: 3

请问2440的SDRAM问题

[复制链接]
xiaowang123 发表于 2010-1-12 11:55:46 | 显示全部楼层 |阅读模式
在开发板中,SDRAM是按32为数据读取 的,那么应该地址按4字节跳,那么在程序中,为什么又可以按字节读取和按半字读取?
亚瑟王 发表于 2010-1-12 14:07:18 | 显示全部楼层
就算是32位的数据,左右移之后,就可以对8位和16位进行操作了。
 楼主| xiaowang123 发表于 2010-1-12 14:19:27 | 显示全部楼层
void copy_2th_tosdram(void)
{
   unsigned int *pdwsrc=(unsigned int *)2048;
unsigned int *pdwdest=(unsigned int *)0x30004000;
  while(pdwsrc<(unsigned int *)4096
    {
   *pdwdest=*pdwsrc;
  pdwdest++;
  pdwsrc++;
  }

}

该代码功能实现把2440内部RAM的2048开始到4K结束的代码复制到SDRAM0x30004000开始地方运行。
在程序中,定义了指向无符号整形数据的指针变量;
那么在赋值时候,是按半字赋值复制转移,而指针自加时加1,按字节相加。
那么不是会出现错误吗?
嗨哟偶2440的SDRAM接法,A1\A0不接,读出来是整个字,这好像不好解释这段程序?
tyblly 发表于 2010-1-12 15:21:01 | 显示全部楼层
LZ你理解错了
这段程序赋值的时候是按照 字(不是你说的半字)复制转移的
而指针加1的时候,也是按照 字 (不是字节)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号-2 )

GMT+8, 2024-10-6 22:30 , Processed in 1.031289 second(s), 18 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表