引用 38 楼 guopeixin 的回复:
引用 37 楼 liuysheng 的回复:
刚才试过,系统稳定时,频率降到了1.37MHZ,
情况还是一样,打印出来的信息也一样...
那看起来应该就是硬件设计有问题或者寄存器的配置不恰当了,gsymichael认为呢?
另外,前面提到“不过据IC验证组反馈的意见:SD控制器是没问题的,一切正常。。。 ”,那么他们是如何验证是否正常的呢?频率和电路与你的有无差别?
寄存器的配置:
带卡启动时,CARD_DETECT所对应的GPIO口的配置应该没有多大关联吧,
----我是将CARD_DETECT对应的GPI6配置通用输入模式,因为是用扫描模式,而非中断模式。
//将GPI6配成通用用途
vm_pIOPreg->PORTI_GPIOSEL=
( vm_pIOPreg->PORTI_GPIOSEL & m_dwCardDetectControlMask ) | m_dwCardDetectControlFlag;
//配置通用方向为输入
vm_pIOPreg->PORTI_GPIODIR=
( vm_pIOPreg->PORTI_GPIODIR & m_dwCardDetectControlMask ) | m_dwCardDetectControlFlag;
如上参数在platform.reg设置好的,如下:
"CardDetectGPIO"="I" ; card detect onGPI6
"CardDetectMask"=dword:1 ;SD_CDETECT[0] card detect
"CardDetectFlag"=dword:0
"CardDetectControlMask"=dword:40 ;PORTI_GPIOSEL[6] card detect
"CardDetectControlFlag"=dword:40 ;PORTI_GPIOSEL[6] card detect
有个寄存器(SD_CDETECT)专门处理CARD_DETECT,该寄存器的第0位标示是否有卡,
所以,在卡是否存在的检测过程中,我认为直接查询GPI6接的电平或查询SD_CDETECT[0],应该效果是一致的吧----寄存器的配置的影响应该是不存在的。。。