关于底层操作函数

yoyo_xmu   2009-12-30 09:27 楼主
*PBODR(vxImmrGet()) &= 0xfcff;
*PBPAR(vxImmrGet()) &= 0xfffffcff;
*PBDIR(vxImmrGet()) |= 0x00000300;
SCCR();

上面这些函数是什么意思, 网上也没有搜到!
哪里有关于这类函数的说明的文档?

谢谢

回复评论 (10)

我的理解是:
直接对内存地址进行位操作,

点赞  2009-12-30 09:40
那这些函数一般在哪里能找到呢?
点赞  2009-12-30 11:54
vxImmrGet()的作用This routine returns the IMMR register value

如果有vxworks6.x的源码它的定义在target/src/arch/ppc/vxALib.s中
点赞  2009-12-30 13:53
友情帮顶下、
点赞  2009-12-30 16:02
引用: 引用 3 楼 chngok 的回复:
vxImmrGet()的作用This routine returns the IMMR register value

如果有vxworks6.x的源码它的定义在target/src/arch/ppc/vxALib.s中


vxImmrGet 返回的是内存管理寄存器当前指针的值? 还是这段寄存器开始的位置?菜鸟不懂敢请大侠
点赞  2009-12-30 16:24
vxImmrGet - Returns the CPM DP Ram base address for CPM device drivers

引用: 引用楼主 jqx_ah 的回复:
*PBODR(vxImmrGet()) &= 0xfcff;
*PBPAR(vxImmrGet()) &= 0xfffffcff;
*PBDIR(vxImmrGet()) |= 0x00000300;

这几行是配置IO端口口寄存器;

引用: 引用楼主 jqx_ah 的回复:
SCCR();

这个就不太清楚了,是串口初始化或相关寄存器配置么?
点赞  2009-12-31 19:22
PBODR对应的是cpu寄存器,
点赞  2010-1-1 12:38
vxImmrGet()应该是获取powerpc 的IMMR(Internal Memory Mapped Registers)的值,这个寄存器保存着所有powerpc CPU寄存器所映射的内存基地址,PBODR,PBPAR,PBDIR应该是这几个寄存器的偏移量,基地址+偏移量 就是这个寄存器的实际访问地址.
点赞  2010-1-3 18:12
帮你查了一下,SCCR()应该是系统始终相关的操作
点赞  2010-1-4 13:48
引用: 引用 8 楼 trigunlih 的回复:
vxImmrGet()应该是获取powerpc 的IMMR(Internal Memory Mapped Registers)的值,这个寄存器保存着所有powerpc CPU寄存器所映射的内存基地址,PBODR,PBPAR,PBDIR应该是这几个寄存器的偏移量,基地址+偏移量 就是这个寄存器的实际访问地址.


关于IMMR这个解释比较直接了,很简洁。
如果还想更多了解来龙去脉,请在860的datasheet中搜索IMMR。。
点赞  2010-1-9 20:18
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复