wince5.0标准BSP和和4.2升级到5.0的中断过程区别。

这是我在论坛的同主题帖子http://topic.csdn.net/u/20081028/11/97873b20-9b0c-4a84-8110-2af87aca6037.html

现在由于SD卡问题导致必须改为标准5.0BSP。以前一直以为差不多,现在发现差距不是一般大,首先从中断入手。

先看看我明白的4.2BSP开始吧

以串口为例子,看注册表

 

IF BSP_NOSERIAL !
[HKEY_LOCAL_MACHINE/Drivers/BuiltIn/UART0]
   "DeviceArrayIndex"=dword:0
   "Irq"=dword:03-----------这个和oalintr.h里面的#define SYSINTR_SERIAL (SYSINTR_FIRMWARE+3)对应
   "IoBase"=dword:50000000
   "IoLen"=dword:2C
   "Prefix"="COM"
   "Dll"="SER2440.Dll"
   "Order"=dword:0
   "Index"=dword:1
   "Priority"=dword:0
   "Port"="COM1:"
   "DeviceType"=dword:0
   "FriendlyName"="Serial Cable on COM1:"
   "Tsp"="Unimodem.dll"
   "DevConfig"=hex: 10,00, 00,00, 05,00,00,00, 10,01,00,00, 00,4B,00,00, 00,00, 08, 00, 00, 00,00,00,00

 

再看oalintr.h

  1. // These are the 'standard' interrupts
  2. #define SYSINTR_KEYBOARD        (SYSINTR_FIRMWARE+0)
  3. #define SYSINTR_TOUCH       (SYSINTR_FIRMWARE+1)
  4. #define SYSINTR_ADC     (SYSINTR_FIRMWARE+2)
  5. #define SYSINTR_SERIAL(SYSINTR_FIRMWARE+3)//跟注册表里面的"Irq"=dword:03对应
  6. //.....................
  7. // I get the follow MapIrq2SysIntr inline function from CEPC include directory. hjcho.
  8. // CEPC device drivers should get their IRQ number from the registry and use
  9. // MapIrq2SysIntr to get the appropriate SYSINTR_* number to use.
  10. // 不知道这个MapIrq2SysIntr函数是是干什么的
  11. _inline
  12. DWORD
  13. MapIrq2SysIntr(DWORD _Irq)
  14. {
  15. //    if( _Irq<=18 )
  16.       if( _Irq<=32 ) //2008.5.9 amend
  17.         return ( SYSINTR_FIRMWARE + _Irq );
  18.     else
  19.         return (0xffffffff);
  20. }
  21. // Here are the names of the values stored in the registry
  22. // 配合注册表,这点技术和标准5.0BS倒是没有多大变化
  23. #define PC_REG_IRQ_VAL_NAME         TEXT("IRQ") 
  24. #define PC_REG_IRQ_VAL_LEN          sizeof( DWORD )
  25. #define PC_REG_IOBASE_VAL_NAME      TEXT("IoBase") 
  26. #define PC_REG_IOBASE_VAL_LEN       sizeof( DWORD )
  27. #define PC_REG_IOLEN_VAL_NAME       TEXT("IoLen") 
  28. #define PC_REG_IOLEN_VAL_LEN        sizeof( DWORD )

再来看标准5.0BSP,就以SD卡为例子

注册表

[HKEY_LOCAL_MACHINE/Drivers/BuiltIn/SDHC_SMDK2440]
    "Order"=dword:21
    "Dll"="sdhc_sc2440.dll"
    "Prefix"="SDH"
   
    "DMAChannel"=dword:0            ; DMA channel to use.  Set to 0xffffffff to disable DMA
    "DMAIrq"=dword:11
    "DMA_IST_Priority"=dword:96

    "SDIOIrq"=dword:15---这个是怎么和s3c2440a_intr.h里面的#define IRQ_EINT16    44 绑定的?--看错了,应该是21,唉!
    "SDIO_IST_Priority"=dword:97
   
    "PollingTimeout"=dword:100      ; 100 ms
    "CardDetect_Thread_Priority"=dword:98
   
    "CardDetectGPIO"="G"            ; card detect on GPG8
    "CardDetectMask"=dword:100
    "CardDetectFlag"=dword:0
    "CardDetectControlMask"=dword:fffcffff
    "CardDetectControlFlag"=dword:0
    "CardDetectPullupMask"=dword:fffffeff
    "CardDetectPullupFlag"=dword:100
   
    "CardReadWriteGPIO"="H"         ; card R/W on GPH8
    "CardReadWriteMask"=dword:100
    "CardReadWriteFlag"=dword:100
    "CardReadWriteControlMask"=dword:fffcffff
    "CardReadWriteControlFlag"=dword:0
    "CardReadWritePullupMask"=dword:fffffeff
    "CardReadWritePullupFlag"=dword:100

    "HandleBusyFinishOnCommand38"=dword:1
    "DmaTransferTimeoutFactor"=dword:8
    "DmaTransferTimeoutConstant"=dword:3000

ENDIF BSP_SDHC_SC2440
; @CESYSGEN ENDIF CE_MODULES_SDBUS

//======= Header:  s3c2440a_intr.h里面是物理中断号宏定义。

 

引用 1 楼 hzdysymbol 的回复:
这两个根本就没有关联,一个是SDI的中断,EINT16应该是你SD卡检测的中断吧
SDI的中断三星的驱动中是动态申请SYSINTR号的 
“#define IRQ_SDI            21”  "SDIOIrq"=dword:15---15是十六进制的,十进制就是21
再说你指的两个都是IRQ号,哪来的关联呢?



---------呜呜,我太粗心大意了,呜呜,不好意思。太丢人了,结贴,给分。谢谢hzdysymbol

It's done!

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值