打印

请问S3C2410的直接寻址如何使用?

[复制链接]
1873|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
akeela|  楼主 | 2008-6-15 17:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用S3C2410想在Bank1地址中直接寻址一个外围设备,这是我的代码:
#define  Bank1_STARTADD                              0x08000000   //Bank1 access start address
#define  Bank1WRITE(addr,data)         (*((volatile unsigned char *) (Bank1_STARTADD + addr)) = ((unsigned short) (data)))
调用:
Bank1WRITE(0xac,0xaa);
不要说能否成功控制外围设备了,我就是测S3C2410相应的输出管脚也是没有正确的电平,好像都是一些随机的电压来的,什么0.8V,1.8V,2.2V都有,试了两个arm板都是这样,请问我的程序有问题吗?大家都是怎样调用总线的?谢谢各位了! 

相关帖子

沙发
again_gyf| | 2008-6-15 17:47 | 只看该作者

总线宽度要设置对!

不然进入异常中断的!
你把RTC那段头文件就看下就清楚了!

使用特权

评论回复
板凳
again_gyf| | 2008-6-15 17:53 | 只看该作者

UART

#define WrUTXH0(ch) (*(volatile unsigned char *)0x50000020)=(unsigned char)(ch)
#define RdURXH0()   (*(volatile unsigned char *)0x50000024)

使用特权

评论回复
地板
akeela|  楼主 | 2008-6-15 18:11 | 只看该作者

请问S3C2410的直接寻址如何使用?

总线宽度我设成16bit,但(volatile unsigned char *)输出是8bit的,按照我的理解,2410工作在小端模式,所以奇数地址送给高8位,偶数地址送给低8位,这样设置应该是没问题的,Bank1WRITE(0xac,0xaa);之后还能正确点亮一些led灯,应该不是进入异常中断吧?

使用特权

评论回复
5
akeela|  楼主 | 2008-6-15 19:17 | 只看该作者

请问S3C2410的直接寻址如何使用?

3楼是什么意思?看得不是很明白哦

使用特权

评论回复
6
l0p0c| | 2008-6-15 20:57 | 只看该作者

不是很明白!

使用特权

评论回复
7
again_gyf| | 2008-6-15 21:17 | 只看该作者

16BIT

总线地址为ADDR1-ADDR16
你的应该为
(*((volatile unsigned short *) (Bank1_STARTADD + addr)) = ((unsigned short) (data)))

使用特权

评论回复
8
农民讲习所| | 2008-6-16 09:44 | 只看该作者

不能用表量。

使用特权

评论回复
9
akeela|  楼主 | 2008-6-16 12:45 | 只看该作者

我改成short也还是不行的

To 7楼
我改成short也还是不行的
To 8楼
可否说清楚一点,不明白您的意思,谢谢!

使用特权

评论回复
10
Again_gyf| | 2008-6-17 09:42 | 只看该作者

总线上的电平你是不能测的!

你只有输出到一个锁存器锁存起来才可以!

使用特权

评论回复
11
Again_gyf| | 2008-6-17 09:44 | 只看该作者

RE

如果你以前用其他MCU做过扩展的话应该很清楚的!比如51扩展RAM,不清楚的话先去翻翻单片机的书吧!

使用特权

评论回复
12
akeela|  楼主 | 2008-6-17 19:06 | 只看该作者

re

以前都是用IO口,第一次用总线呢,改天用示波器测一下看看

使用特权

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

本版积分规则

1

主题

5

帖子

0

粉丝