这是我在论坛的同主题帖子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
再来看标准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 的回复:
---------呜呜,我太粗心大意了,呜呜,不好意思。太丢人了,结贴,给分。谢谢hzdysymbol
It's done!