原创 vxworks关于卡上I0地址和内存地址的映射

2006-12-6 23:19 5729 11 9 分类: MCU/ 嵌入式
       在系统开发中,X86体系使用较多。X86体系中经常遇到的问题就是如何把PCI总线上设备的资源映射到系统中,准确的说是:把PCI总线上的物理资源映射成CPU的本地资源。有两种处理方式:动态寻找和静态指定。静态指定适合硬件完全可以确定的情况,动态寻找主要用在系统中硬件不能确定的情况。静态指定。系统中使用卡的数目已知,卡上的IO地址和内存地址固定已知,可以直接在syslib.C文件中修改。比如卡上IO空间的基地址为0x3000,大小为Oxl00, 内存空间基地址为0xee000000, 大小为0xl00000, 在syslib.C文件中找到PHYS_MEM_DESC结构,在其中加上对卡IO空间和内存空间的说明如下:
#define INIT_STATE_MASK (|VM_STATE_MASK_ WRITABLE | VM_STATE_MASK_CACHEABLE)
#define INIT_STATE (VM_STATE_VALID | VM_STATE_WRITABLE |VM_SlTATE_CACHABLE_NOT)
PHYS_MEM_DESC sysPhysMemDesc={
.....
{
(void )0xee000000, //映射到cpu端的基地址
(void )0xee000000, //卡上内存的基地址
0x1000, //卡上内存的大小为4k
INIT_STATE_MASK//卡上内存初始化状态的掩码
INIT_STATE //卡上内存的状态
},
...
}
     这样系统在每次启动后都会把该结构中指定的IO空间和内存空间放到内存映射表中,驱动程序可以直接使用这些地址读写。
     动态寻找。系统中使用的卡的数量不确定,需要在系统启动时才可确认,这样的情况下使用动态寻找 动态寻找要确定资源的类型(IO或内存),大小和基地址。一般把这段代码放到一个文件里,然后在syslib.c(位于$(HOME)arget/conilg/bsp_type/下)中把这段代码包含进去。在该文件中的硬件初始化函数void sysHwInit(void)调用该代码映射PCI资源的一般过程大概如下:扫描PCI总线,找到总线上的感兴趣的硬件,然后查询该硬件上的资源信息,最后培植该硬件的资源信息让VxWorks系统知道.
如何支持SELECT()
   在驱动程序中支持sdect()机制可以让任务同时等待从多个设备来的输入并设置等待某个设备输入的超时时间。在驱动程序中添加select机制很容易,selectLib库提供了这方面的支持。驱动程序要做的工作如下:首先,在设备描述结构里声明一个SEL_WAKEUP_UST结构并在设备创建函数里调用唤醒表初始化函数selWakeupListInit()来初始化该结构;当函数ioctl()被调用时(参数为FIOSELECT),应该用节点增加函数selNodeAdd0把函数ioctl()中的参数SEL_WAKEUP_LIST加到链表SEL_WAKEUP_LIST中;然后用唤醒类型函数selWakeupType检查任务是读设备还是写设备;最后当设备准备好以后,调用唤醒函数sel_Wakeup来确定调用任务目前是否阻塞,这样可避免设备准备好而调用任务由于其它原因而挂起,或者调用selWakeupAIl()函数来唤醒所有等待该设备的任务。
PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

用户54598 2006-12-20 08:58

学习学习

相关推荐阅读
shenyandetongxing_551209819 2010-02-25 21:34
MyEclipse 建立第一个工程
1.打开MyEclipse--新建个工程File--New--Project--WebProject 2.在ProjectName中输入hello--Finish 3.然后为工程添加struts框架,...
shenyandetongxing_551209819 2010-02-06 22:42
人力资源管理软件(技术储备)
JAVA的SSH开发框架Struts、Spring、Hibernate在各层的作用1、Struts 负责 web层ActionFormBean 接收网页中表单提交的数据,然后通过Action 进行处理...
shenyandetongxing_551209819 2010-02-06 02:51
个人资源管理软件(需求)
先提提需求吧,这是重中之重,这不是简单就能完成的,需要不断的修改和完善。既然是个人资源管理就要首先搞清楚个人资源包括哪些部分:1  人脉资源,也就是我们常说的关系,人是社会型动物就不可能生活在真空里,...
shenyandetongxing_551209819 2010-02-06 02:33
HR软件设计开始(关注个人资源管理与分析)
最近对HR很感兴趣,上网搜了一下,HR的软件也不少,其中风头正劲的用友公司做的挺多,但是看了看都是针对企业级的。但自己平常的工作和进步帮助不大。想整一个关于人力资源、人际关系进行总结、分析的软件,让自...
shenyandetongxing_551209819 2010-02-06 02:30
对HR和B/S模式的东西感兴趣
最近对HR很感兴趣,上网搜了一下,HR的软件也不少,其中风头正劲的用友公司做的挺多,但是看了看都是针对企业级的。但自己平常的工作和进步帮助不大。想整一个关于人力资源、人际关系进行总结、分析的软件,让自...
shenyandetongxing_551209819 2008-10-01 16:18
由于工作原因,改行!!
已经好久没有上我的博客了,还有很多朋友支持我,很欣慰:)现在由于工作原因很长一段时间内将挥泪告别嵌入式。现在如果有做PKI或PMI的跟我一起交流啊:)...
我要评论
1
11
关闭 站长推荐上一条 /3 下一条