有谁熟悉 2440? 驱动问题!

鹏晨   2008-11-28 15:28 楼主
在s3c2440中Memroy Controller是什么作用(和cpu之间的关系?),我有外部一芯片(姑且假设)有一脚接的是 Memroy Controller上的NGCS4作为片选(地址:0x20000000),
****我想问下,我在驱动里面怎样控制这个这个信号?********
(就是怎麽样实现 在驱动程序里面给NGCS4片选信号,给一个1或者0的信号)
我见过一个(相关)例子是先声明一个物理地址,然后映射到虚拟控件,在个原先的那个地址变量赋值为片选信号对应的地址数值,来实现片选,
我是第一次做驱动,所以对于硬件操作的实现,感觉搞不定,还望各位大哥帮忙!

回复评论 (23)

自己先顶了...
点赞  2008-11-28 15:35
硬件自动会选中它的,当你访问它所在的地址空间。。。就是说,你的2000000地址就是它控制的,只要访问这个地址,这个CS就会被拉低,不需要你人为干预的
点赞  2008-11-28 15:50
这个..现在知道了 谢谢楼上,
那在驱动程序里面怎样实现访问?
  (就是在代码里面怎么写?)
---------------很急,会的兄弟,千万留言!!!
点赞  2008-11-28 16:35
就是通过一般的指针操作完成的

*(volatile unsigned int*)0x20000000 = XXXX

可能还有其他写法,但归更到底是这样的
点赞  2008-11-28 16:37
如果使用了MMU
那么先用p = MmapIOSpace(0x20000000,size),得到虚拟地址
然后用p访问就可以了
点赞  2008-11-28 16:39

7楼 nsz 

是的...
点赞  2008-11-28 16:52
引用: 引用楼主 YZZ2086 的帖子:
在s3c2440中Memroy Controller是什么作用(和cpu之间的关系?),我有外部一芯片(姑且假设)有一脚接的是 Memroy Controller上的NGCS4作为片选(地址:0x20000000),
****我想问下,我在驱动里面怎样控制这个这个信号?********
(就是怎麽样实现 在驱动程序里面给NGCS4片选信号,给一个1或者0的信号)
我见过一个(相关)例子是先声明一个物理地址,然后映射到虚拟控件,在个原先的那个地址变量赋值为片选信号对应的地址…


三星的硬件都帮做好了,只要往里面写就可以了。自动的。

越高级的芯片操作就越傻瓜的
点赞  2008-11-28 17:01
谢谢楼上点金式的回答,...跪谢!!
再问下,你的意思是不是这样子: 现在 Memroy Controller上的NGCS4(作为外接某一个芯片的片选信号)的地址:0x20000000就是物理地址,要做的就是先用p = MmapIOSpace(0x20000000,size)的方法得到虚拟地址, 然后,使它为低(*****这里具体要怎么做?******),为低后,(因为,NGCS4对应128的地址空间),就可以进行下一不的操作了??
点赞  2008-11-28 17:04
引用: 引用 7 楼 gooogleman 的回复:
引用楼主 YZZ2086 的帖子:

在s3c2440中Memroy Controller是什么作用(和cpu之间的关系?),我有外部一芯片(姑且假设)有一脚接的是 Memroy Controller上的NGCS4作为片选(地址:0x20000000),
****我想问下,我在驱动里面怎样控制这个这个信号?********
(就是怎麽样实现 在驱动程序里面给NGCS4片选信号,给一个1或者0的信号)
我见过一个(相关)例子是先声明一个物理地址,然后映射到虚拟控件,在个原先的那个地址变量…



我是新手不好意思??
点赞  2008-11-28 17:05
建议楼主找个BSP的代码找个什么button驱动,或者eboot代码看看
看了有疑惑就贴代码,比较有针对性。
点赞  2008-11-28 17:06
我是被逼急了的! 这个问题都是提炼了很久的,因为我不想浪费大家的时间,而且我也没那么多的时间, 如果研习代码(我也看了一些),能应急的化我就不来传说中的eeworld了, 这个为题卡着我了》。。。
点赞  2008-11-28 17:12
引用: 引用 11 楼 YZZ2086 的回复:
我是被逼急了的! 这个问题都是提炼了很久的,因为我不想浪费大家的时间,而且我也没那么多的时间, 如果研习代码(我也看了一些),能应急的化我就不来传说中的eeworld了, 这个为题卡着我了》。。。


看代码是必然的过程。
不看,即使有人指导,自己也不知道咋回事
点赞  2008-11-28 17:42
现在不是程序本身的问题了,因为我做的这个驱动程序,我已经大体明白,只是不知道与寻址、映射、怎样代码实现链接等问题了,这个看代码,估计恼火,如果现在有时间的话,还是要好好看看...其实我现在也在看,不过多了一首准备了把,因为,我觉得我的这个问题要是 看代码 慢慢来的化 估计会很慢!!
点赞  2008-11-28 17:53
关键还是要理解啊,不理解别人跟你讲也没有用
最好回去研究一下微机原理,看一下3/8译码器,估计就知道片选是怎么回事了
点赞  2008-11-28 23:06
引用: 引用 14 楼 hzdysymbol 的回复:
关键还是要理解啊,不理解别人跟你讲也没有用
最好回去研究一下微机原理,看一下3/8译码器,估计就知道片选是怎么回事了

大哥, 片选当然知道,但是写驱动,总要一些,在程序上的是实现,第一次做有点茫然,时间有紧的很 所以就来eeworld楼,指望高手指点的吗??
点赞  2008-11-29 08:54
是不是在选择了 片选之后 NGCS4对应的0x20000000---0x28000000间的地址都可以用,我现在在外部芯片有八个数据输入端,那么我就可以随便在0x20000000---0x28000000里面选八个地址,然后映射到虚拟空间,然后做对应操作???
点赞  2008-11-29 10:15
CS知道了,那你清楚了它和地址线之间的关系吗?
如果清楚的话不应该问出上面的问题来啊
地址是多少要看你的硬件地址线是怎么连接的,你随便在0x20000000---0x28000000选地址,只能保证你用这个地址的时候CS是选上的,那别的地址线的状态的要求呢?
点赞  2008-11-29 10:22
那我们怎么知道 硬件地址线 对应的地址呢?
点赞  2008-12-1 10:25
引用: 引用 18 楼 YZZ2086 的回复:
那我们怎么知道 硬件地址线 对应的地址呢?


回去看看单片机C语言的书籍,微机原理等。

其实2440的 片选 nGcs是地址的最高位
点赞  2008-12-1 12:55
12下一页
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复