6339|27

62

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

关于WINCE50下中断号 [复制链接]

请问各位:
   1、WINCE50下是不是分物理中断号和逻辑中断号??物理中断号就是定义的跟硬件开关中断相关的中断号,逻辑中断号是物理中断号对应的由系统调用的中断号???这个理解对不对???
   2、BSP中SD驱动的注册表信息:
    [HKEY_LOCAL_MACHINE\Drivers\BuiltIn\SDHC_MAINSTONE]
    "Order"=dword:21
    "Dll"="pxa270_sdhc.dll"
    "Prefix"="SDH"
    "ControllerIRQ"=dword:17
    "ControllerISTPriority"=dword:64
    "CardDetectIRQ"=dword:20
    "CardDetectISTPriority"=dword:65
    "ClockAlwaysOn"=dword:0
    "ClockOnIfInterruptsEnabled"=dword:1
说明用到两个中断:17和20
在bsp_cfg.h(PXA270的BSP)中:
....
#define IRQ_GPIOXX_2_MMCCD               (IRQ_BULVERDE_MAX + 1)   // 32   GPIO93(卡插入,下降沿中断)
说明这个是检测card的IRQ即CardDetectIRQ  (0x20=32(十进制)) 它在这个头文件对应的物理中断号为IRQ_GPIOXX_2_MMCCD
而另外一个中断号:"ControllerIRQ"=dword:17
却没有对应的物理中断号??
bsp_cfg.h:
#define IRQ_GPIOXX_2_22                                         (IRQ_BULVERDE_MAX + 17)  // 48       

#define IRQ_GPIOXX_2_IDE2                 (IRQ_BULVERDE_MAX + 16)  // 47
#define IRQ_GPIOXX_2_IDE1                (IRQ_BULVERDE_MAX + 15)  // 46
#define IRQ_GPIOXX_2_IDE                 (IRQ_BULVERDE_MAX + 14)  // 45
#define IRQ_GPIOXX_2_RSVD2               (IRQ_BULVERDE_MAX + 13)  // 44  ** RESERVED **
#define IRQ_GPIOXX_2_PCMCIA_S0           (IRQ_BULVERDE_MAX + 12)  // 43
#define IRQ_GPIOXX_2_PCMCIA_S0_CSC       (IRQ_BULVERDE_MAX + 11)  // 42

#define IRQ_GPIOXX_2_PCMCIA_S0_CD        (IRQ_BULVERDE_MAX + 10)  // 41
#define IRQ_GPIOXX_2_PS2_KEYBOARD         (IRQ_BULVERDE_MAX + 9)   // 40  ** RESERVED **

#define IRQ_GPIOXX_2_EXPBD               (IRQ_BULVERDE_MAX + 8)   // 39   
#define IRQ_GPIOXX_2_MSINS               (IRQ_BULVERDE_MAX + 7)   // 38         

#define IRQ_GPIOXX_2_PENIRQ              (IRQ_BULVERDE_MAX + 6)   // 37
#define IRQ_GPIOXX_2_UCB1400             (IRQ_BULVERDE_MAX + 5)   // 36   GP107 (?)

#define IRQ_GPIOXX_2_ETHERNET            (IRQ_BULVERDE_MAX + 4)   // 35          GP3   (以太网,上升沿)
#define IRQ_GPIOXX_2_USBCD               (IRQ_BULVERDE_MAX + 3)   // 34          USB Cable Insert       

#define IRQ_GPIOXX_2_USIMCD              (IRQ_BULVERDE_MAX + 2)   // 33          SIM卡插入
#define IRQ_GPIOXX_2_MMCCD               (IRQ_BULVERDE_MAX + 1)   // 32   GPIO93(卡插入,下降沿中断)

#define IRQ_MAINSTONEII_GPIOXX_2_MIN     IRQ_GPIOXX_2_MMCCD
#define IRQ_MAINSTONEII_GPIOXX_2_MAX     IRQ_GPIOXX_2_22
// Static SYSINTR Mapping for driver.
#define SYSINTR_OHCI            (SYSINTR_FIRMWARE+1)  // 17
#define SYSINTR_TOUCH           (SYSINTR_FIRMWARE+2)  // 18
#define SYSINTR_TOUCH_CHANGED   (SYSINTR_FIRMWARE+3)  // 19
#define SYSINTR_KEYPAD          (SYSINTR_FIRMWARE+4)  // 20
#define SYSINTR_PCCARD_CSC_S0   (SYSINTR_FIRMWARE+5)  // 21
#define SYSINTR_PCCARD_CD_S0    (SYSINTR_FIRMWARE+6)  // 22
#define SYSINTR_IDE1                (SYSINTR_FIRMWARE+7)  // 23
#define SYSINTR_IDE2                (SYSINTR_FIRMWARE+8)  // 24
#define SYSINTR_AUDIO           (SYSINTR_FIRMWARE+9)  // 25
#define SYSINTR_USBFN           (SYSINTR_FIRMWARE+10) // 26

#define SYSINTR_FFUART                (SYSINTR_FIRMWARE+13) // 29
#define SYSINTR_BFUART                (SYSINTR_FIRMWARE+12) // 28
#define SYSINTR_SFUART                (SYSINTR_FIRMWARE+11) // 27

#define        SYSINTR_ETHERNET        (SYSINTR_FIRMWARE+14) // 30
#define SYSINTR_EXPBD                (SYSINTR_FIRMWARE+15) // 31

请问::"ControllerIRQ"=dword:17
在这个头文件中对应的是#define SYSINTR_OHCI            (SYSINTR_FIRMWARE+1)  // 17
还是:                #define SYSINTR_IDE1                (SYSINTR_FIRMWARE+7)  // 23
此帖出自WindowsCE论坛

最新回复

感谢!  详情 回复 发表于 2008-11-23 01:40
点赞 关注
 

回复
举报

69

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
"ControllerIRQ"=dword:17 -----表示用的是0X17==23这个中断!
此帖出自WindowsCE论坛
 
 
 

回复

62

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
请问::"ControllerIRQ"=dword:17
在这个头文件中对应的是#define SYSINTR_OHCI            (SYSINTR_FIRMWARE+1)  // 17
还是:                #define SYSINTR_IDE1 (SYSINTR_FIRMWARE+7)  // 23

我觉得两个都不是,如果是也应该是#define SYSINTR_SD(名字不确定)           (SYSINTR_FIRMWARE+23(0x17))  

好像wince5.0根本没有#define SYSINTR_OHCI            (SYSINTR_FIRMWARE+1)  这样的定义吧,4.2的BSP才有的

在三星的5.0BSP中,2440 里面有这样定义 :#define   SDIRQ            21 然后注册表刚好使用0x15表示。——你看看我的博客里面的例子。
我觉得楼主你的中断是使用KernelIoControl来动态申请的,你使用PB 的find in file功能来查找一下。

有些信息定义了,未必会使用到,楼主可以通过find in file查阅。
此帖出自WindowsCE论坛
 
 
 

回复

83

帖子

0

TA的资源

一粒金砂(初级)

4
 

没定义也可以检测阿 检测到了SD卡 然后系统触发对应这个系统中断号的事件

    "ControllerIRQ"=dword:17
    "ControllerISTPriority"=dword:64
    "CardDetectIRQ"=dword:20
这里定义的是系统中断号
物理中断是由硬件决定的
此帖出自WindowsCE论坛
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

5
 
引用 3 楼 TheGameIsFives 的回复:

没定义也可以检测阿 检测到了SD卡 然后系统触发对应这个系统中断号的事件

    "ControllerIRQ"=dword:17
    "ControllerISTPriority"=dword:64
    "CardDetectIRQ"=dword:20
这里定义的是系统中断号
物理中断是由硬件决定的

看了下 上面定义了卡的detect 收回我的话 呵呵  
此帖出自WindowsCE论坛
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

6
 
引用 1 楼 xqhrs232 的回复:
"ControllerIRQ"=dword:17 -----表示用的是0X17==23这个中断!


这个是正解,不过没在您的代码中找到对应的中断号。名字也不对啊。
此帖出自WindowsCE论坛
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

7
 
在5.0中,我使用的是4.2的BSP包,

注册表
[HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\KEYBD]
        "DriverName"="kbdmouse.dll"
        "SysIntr"=dword:10        ; SYSINTR_FIRMWARE + 0
        "IOBase"=dword:B1600000
;        "SSPBase"=dword:B1900000
        "IICBase"=dword:B1400000

keyBD的中断是0X10,也就是16,这是对的吗?

可是USB的注册表为
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\USB]
        "Dll"="sc2440_usb_ser.Dll"
        "IoBase"=dword:B1200000
        "Irq"=dword:B   
        "IoLen"=dword:130
        "Tsp"="Unimodem.dll"
        "DeviceArrayIndex"=dword:0
        "Prefix"="COM"
        "Order"=dword:2
        "DeviceType"=dword:0
        "FriendlyName"="SC2440 USB Cable:"
; Eliminate flow control bit
        "DevConfig"=hex: 10,00,00,00,05,00,00,00,00,01,00,00,00,4B,00,00,00,00,08,00,00,00,00,00,00

中断为0X0B,为十进制11。
可是oalintr.h定义为
#define SYSINTR_USB        (SYSINTR_FIRMWARE+11) //16+11 = 27
#define SYSINTR_USBD        (SYSINTR_FIRMWARE+12)

USB使用完全没有问题。

这又是为何?
此帖出自WindowsCE论坛
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

8
 
中断为0X0B,为十进制11。
可是oalintr.h定义为
#define SYSINTR_USB (SYSINTR_FIRMWARE+11) //16+11 = 27
#define SYSINTR_USBD (SYSINTR_FIRMWARE+12)

USB使用完全没有问题。

这又是为何?
----------------0x0b 就是(SYSINTR_FIRMWARE+11)中的11,
SYSINTR_FIRMWARE在nkintr.h(不记得是不是这个名字)有定义,SYSINTR_FIRMWARE是=16的,不知道wince
为什么这么干,要加上这个。
具体的要看中断那部分汇编代码才知道。
此帖出自WindowsCE论坛
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

9
 
哪个高手能帮我分析一下注册表的设置跟实际的物理中断号和逻辑中断号之间的对应关系!!!
此帖出自WindowsCE论坛
 
 
 

回复

62

帖子

0

TA的资源

一粒金砂(初级)

10
 
引用 8 楼 wangxin_801115 的回复:
哪个高手能帮我分析一下注册表的设置跟实际的物理中断号和逻辑中断号之间的对应关系!!!


据我看来,在注册表中设置的中断,一般都在驱动中有读取注册表中断的函数
2440 5.0BSP  下的SD卡的中断就是这样的,在驱动中有读取注册表的函数,
读出来后用KernelIoControl来绑定系统定义的中断。

我不是给你看了2440 5.0下的SD代码卡分析那篇文章吗?
就不知道你的PXA的怎么搞的了。
那天晚上你给我看的代码相当的乱啊,不过我觉得这些并不难理解
——只是不知道微软的中断为什么要经过层层转换,也许我还整天想着单片机的简单方法。
此帖出自WindowsCE论坛
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

11
 
1、WINCE50下是不是分物理中断号和逻辑中断号??---
   物理中断号就是定义的跟硬件开关中断相关的中断号,逻辑中断号是物理中断号对应的由系统调用的中断号???-----
  2、BSP中SD驱动的注册表信息:
    [HKEY_LOCAL_MACHINE\Drivers\BuiltIn\SDHC_MAINSTONE]
    "Order"=dword:21
    "Dll"="pxa270_sdhc.dll"
    "Prefix"="SDH"
    "ControllerIRQ"=dword:17
    "ControllerISTPriority"=dword:64
    "CardDetectIRQ"=dword:20
    "CardDetectISTPriority"=dword:65
    "ClockAlwaysOn"=dword:0
    "ClockOnIfInterruptsEnabled"=dword:1
说明用到两个中断:17和20
在bsp_cfg.h(PXA270的BSP)中:
....
#define IRQ_GPIOXX_2_MMCCD              (IRQ_BULVERDE_MAX + 1)  // 32  GPIO93(卡插入,下降沿中断)
说明这个是检测card的IRQ即CardDetectIRQ  (0x20=32(十进制)) 它在这个头文件对应的物理中断号为IRQ_GPIOXX_2_MMCCD
按这么说CardDetectIRQ应该是系统中断

而另外一个中断号:"ControllerIRQ"=dword:17
在这个头文件中对应的是#define SYSINTR_OHCI            (SYSINTR_FIRMWARE+1)  // 17
还是:                #define SYSINTR_IDE1 (SYSINTR_FIRMWARE+7)  // 23
如果ControllerIRQ代表系统中断那么他是#define SYSINTR_IDE1 (SYSINTR_FIRMWARE+7)  // 23
如果ControllerIRQ代表硬件中断那么他是#define SYSINTR_OHCI            (SYSINTR_FIRMWARE+1)  // 17
但是依据上面那个CardDetectIRQ看,这个有可能是系统中断。你可以到驱动源代码中看看他是否是与事件关联的,而不是通过KernelIoControl申请的那个中断与事件关联,就说明它是系统中断。(前提如果你有源代码,而不是dll文件)
此帖出自WindowsCE论坛
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

12
 
感谢各位!
请问楼上:什么是系统中断什么是硬件中断???

CardDetectIRQ这个我觉得是硬件中断,因为这个跟GPIO98相关联用来检测卡是否插入的

ControllerIRQ这个中断有点象您说的系统中断,看现在的现象好象这个是传输数据时触发的中断

但是这两个中断都是通过kernelIocontrol然后再跟事件关联的(原代码是这样)

现在因为我的BSP是从WINCE42升级到WINCE50的,BSP内部根本没用过kernelIocontrol,也不支持这个函数

所以我就直接把在WINCE42下的SD驱动去掉,重新做的SD驱动,但是这个新做的驱动应该用到kernelIocontrol的地方

我就直接把以前在WINCE42下用到的中断号赋值给kernelIocontrol相应的参数了,
如下:
以前的代码
dwSDIOIrq = pHardwareContext->dwSDMMCIrq;  //从注册表读到的中断号
        if (!KernelIoControl(IOCTL_HAL_REQUEST_SYSINTR, &dwSDIOIrq, sizeof(DWORD), &(pHardwareContext->dwSysintrSDMMC), sizeof(DWORD), NULL))    //获得对应的逻辑中断号   
if (!InterruptInitialize (pHardwareContext->dwSysintrSDMMC,
                              pHardwareContext->hControllerInterruptEvent,  //申请的逻辑中断号与事件关联
                              NULL,
                              0))
现在我改为:去掉KernelIoControl这个函数
      在InterruptInitialize这个函数前面给pHardwareContext->dwSysintrSDMMC赋值
即pHardwareContext->dwSysintrSDMMC = SYSINTR_SDMMC ;(SYSINTR_SDMMC为我在WINCE42下用的中断号)
if (!InterruptInitialize (pHardwareContext->dwSysintrSDMMC,
                              pHardwareContext->hControllerInterruptEvent,  //申请的逻辑中断号与事件关联
                              NULL,
                              0))

现在的状态是可以触发中断检测到SD卡,并且可以对SD卡进行读写;可以检测到SD无线网卡(SD无线网卡提供驱动,我需要提供SDIO驱动),并且可以找到无线路由,可以设置,可以连接,但是连接上SD卡就死机,系统不死机
请问是不是我设置中断这出的问题!!谢谢!!
此帖出自WindowsCE论坛
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

13
 
请问楼上:什么是系统中断什么是硬件中断???

——硬件中断就是物理中断,就是芯片手册上定义的,系统中断就是微软自己经过一番转换得到的中断(你看看NKintr.h——不知道写错没有,总之差不多了)这里有一些系统中断的相关信息。

从楼上代码看出,我的分析是完全正确的。

——PXA和2440也是一样的。
此帖出自WindowsCE论坛
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

14
 
引用 11 楼 wangxin_801115 的回复:
if (!KernelIoControl(IOCTL_HAL_REQUEST_SYSINTR, &dwSDIOIrq, sizeof(DWORD), &(pHardwareContext->dwSysintrSDMMC), sizeof(DWORD), NULL))    //获得对应的逻辑中断号

现在我改为:去掉KernelIoControl这个函数



检查OAL层与IOCTL_HAL_REQUEST_SYSINTR映射的函数,看看它做了哪些处理,可能区别就在这个地方
此帖出自WindowsCE论坛
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

15
 
引用 12 楼 gooogleman 的回复:
请问楼上:什么是系统中断什么是硬件中断???

——硬件中断就是物理中断,就是芯片手册上定义的,系统中断就是微软自己经过一番转换得到的中断(你看看NKintr.h——不知道写错没有,总之差不多了)这里有一些系统中断的相关信息。

从楼上代码看出,我的分析是完全正确的。

——PXA和2440也是一样的。


物理中断号和逻辑中断号的转换是可以在OAL层的代码里自己实现的(至少对于IRQ_GPIOXX_2_##的中断,也就是IRQ_GPIOXX_2的子中断是肯定可以的,这个的已经实现了)
http://blog.eeworld.net/snow_haoxue/archive/2008/10/21/3117624.aspx这篇文章里记录了我开发的整个过程,其中关于中断部分就是针对于IRQ_GPIOXX_2的子中断直到系统逻辑中断机制的建立过程
此帖出自WindowsCE论坛
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

16
 
引用 11 楼 wangxin_801115 的回复:

CardDetectIRQ这个我觉得是硬件中断,因为这个跟GPIO98相关联用来检测卡是否插入的

ControllerIRQ这个中断有点象您说的系统中断,看现在的现象好象这个是传输数据时触发的中断 (这个可能是DMA中断的系统中断)
但是这两个中断都是通过kernelIocontrol然后再跟事件关联的(原代码是这样) (这样的话,这两个中断又像是硬件中断,可是硬件中断的话,中断值有点大呀,我用2410,他的中断一个是17,一个是21(都是十进制))


你说可以读出来sd,那说明中断没问题吧。至于死机,这个你最好在驱动中加些调试信息,看看在哪死的。
此帖出自WindowsCE论坛
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

17
 
以前的代码:
dwSDIOIrq = pHardwareContext->dwSDMMCIrq;  //从注册表读到的中断号
if (!KernelIoControl(IOCTL_HAL_REQUEST_SYSINTR, &dwSDIOIrq, sizeof(DWORD), &(pHardwareContext->dwSysintrSDMMC), sizeof(DWORD), NULL))    //获得对应的逻辑中断号  
if (!InterruptInitialize (pHardwareContext->dwSysintrSDMMC,
                              pHardwareContext->hControllerInterruptEvent,  //申请的逻辑中断号与事件关联 ,dwSDIOIrq这个应该是无线sd的硬件中断、dwSysintrSDMMC这个应该是系统中断                              NULL,
                              0))

现在我改为:去掉KernelIoControl这个函数 (我也是这么做的,但是你要在bsp的中断初始化中加入静态连接
1.用这个函数静态的设置中断,OALIntrStaticTranslate(SYSINTR_SDIOIrq, IRQ_SDIOIrq);
2.驱动中dwSDIOIrq=IRQ_SDIOIrq;dwSysintrSDMMC=SYSINTR_SDIOIrq;(加在KernelIoControl位置附近)
3.驱动中去掉驱动中的KernelIoControl。
我就是给你个例子,这里你一定要搞清哪个硬件中断和哪个系统中断是真正对应的再用。我这里的对应关系,不一定就是你想要得。具体你要看你的bsp,而且所有的KernelIoControl申请的中断,你都改成这样才可以。

      
此帖出自WindowsCE论坛
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

18
 
非常感谢!我觉得也可能是在IST中一直有中断触发,所以主线程中事件被反复触发导致的
现在正在打印信息验证这个问题

可是还有个问题
我看OALIntrStaticTranslate这个函数好象只有WINCE50的BSP才有

我的BSP是否支持这个函数

虽然我的BSP现在算是WINCE50的
但是其实是在WINCE42下的BSP,升级到WINCE50下的(直接拿到WINCE50下编译)

另外如果是中段的问题,为什么SD卡的识别和读写都正常呢??
此帖出自WindowsCE论坛
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

19
 
OALIntrStaticTranslate你先试着用用吧,编译一下看看就知道能不能用。

是不是中断的问题,你在程序里多家几条调试信息,看看程序到哪有问题再说
此帖出自WindowsCE论坛
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

20
 
我现在正在编译
但是我看了一下我的BSP和WINCE50BSP对中断处理的区别

在WINCE50下
bsp_cfg.h文件中
定义了物理中断和逻辑中断:
#define IRQ_GPIOXX_2_22                                         (IRQ_BULVERDE_MAX + 17)  // 48       
#define IRQ_GPIOXX_2_IDE2                 (IRQ_BULVERDE_MAX + 16)  // 47
....
#define SYSINTR_OHCI            (SYSINTR_FIRMWARE+1)  // 17
#define SYSINTR_TOUCH           (SYSINTR_FIRMWARE+2)  // 18
在intr.c中
通过     OALIntrStaticTranslate(SYSINTR_OHCI, IRQ_USBOHCI);
        OALIntrStaticTranslate(SYSINTR_TOUCH, IRQ_GPIOXX_2_UCB1400);        // GP107
使物理和逻辑中断号对应上
在BSPIntrEnableIrq函数中对物理中断号进行处理
        switch(irq)
                {
                  case IRQ_GPIOXX_2_MMCCD:                                               
                        g_pGPIORegs->GPDR2 &= ~XLLP_BIT_29;                        // enable input
                        g_pGPIORegs->GFER2 |= XLLP_BIT_29;                        // enable falling interrupt
                        g_pGPIORegs->GRER2 |= XLLP_BIT_29;                        // enable rising interrupt
                        break;
                }........

可是在WINCE42下的BSP(即我现在在WINCE50下用的BSP)对中断处理是
在oalintr.h只定义了逻辑中断号:
#define SYSINTR_KEYPAD                                (SYSINTR_FIRMWARE+0)
#define SYSINTR_TOUCH                                (SYSINTR_FIRMWARE+1)
在cfwBvd1.c中对逻辑中断号进行处理
case SYSINTR_SDMMC:
                        //lpWriteDebugStringFunc(TEXT("INT EN SYSINTR_SDMMC\r\n"));
                        INTC_MMC_INT_EN(v_pICReg->icmr);
                        break;
在intbvd1.c中:定义了中断向量表,使逻辑中断号与物理中断号对应上pFunc pIRQISR[MaxNumISRs] =
{
        NoDefinedISR,             // SSP3 - ID 0
        NoDefinedISR,             // Baseband - 1
        USBNONOHCIISR,            // USB Host Event - 2
       ....
}

这样的话请问我还需要用OALIntrStaticTranslate对应成逻辑中断号吗??
我的BSP也没有物理中断号啊,而且对中断号的处理也是对逻辑中断号的处理
不知道我理解的对不对
谢谢CBEMA 啦!!!
此帖出自WindowsCE论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表