阅读:1198回复:3
想启动后产生9054的Lreset#信号,请大家支着!
当初设计时是用9054的Local端Lreset#信号去初始化外围的逻辑控制芯片CPLD,但是现在发现所做的PCI卡不是很稳定。经常由于找不到卡无法启动。在正常找到卡的情况下,系统稳定,windriver什么看也正常。但是由于经常无法正常启动,CPLD无法正常复位。
所以想修改PCI9054的寄存器来触发local端的Lreset#信号,用windriver或者PCItree软件,可行吗?已经找到配置寄存器中44hPMCSR似乎是控制电源状态的。但是按照说明尝试了一下,没有成功。 请大家给点意见吧!谢谢! |
|
最新喜欢:lyjyjj |
沙发#
发布于:2002-12-31 09:54
下面的方法是网友leerom以前发的,对你会有帮助的,以下步骤即可实现软件复位了,也可以产生LRESETo#。
1)先是用READ_REGISTER_ULONG()读取9054寄存器: 6CH ―― Serial EEPROM Control, PCI Command Codes, User I/O Control, and init Control。 78H ―― Mailbox Register 0。 7CH ―― Mainbox Register 1。 2)然后是用HalGetBusDataByOffset()读取PCI配置空间: 偏移地址:3CH,读取长度:4字节 (中断配置信息) 偏移地址:48H,读取长度:4字节 偏移地址:44H,读取长度:4字节 3)再用WRITE_REGISTER_ULONG()写9054寄存器6CH: 先将软件复位位置位,再将PCI卡软件复位位清零。接着将重载配置寄存器(Reload configuration register)位置位,让PCI9054用EEPROM重载本地配置寄存器。最后将重载配置寄存器位清零。软件复位时还会写邮箱寄存器(Mailbox register),我没有用它,所以没做处理。 4)最后,用HalSetBusDataByOffset()将(2)读取的信息写回配置空间,但是我发现它只是在3CH和44H中各写了4个字节,不知为什么48H没有重写。 |
|
板凳#
发布于:2003-01-03 10:15
非常感谢,我尝试一下!
|
|
地板#
发布于:2003-01-03 10:27
请问以上方法(函数)是Windriver产生的吗?或者是Windriver产生的VC代码吗?
|
|