阅读:1290回复:5
关于MC9328mxl的SD卡部分驱动。
各位大虾:
请教一下,在MC9328MXL中,当我在EBOOT中设置MMCSD部分的任意一个寄存器时,EBOOT程序死掉了,为什么? 谢谢! |
|
论坛版主
|
沙发#
发布于:2005-05-11 15:11
你在EBOOT的哪里设这些寄存器?OEMPLATFORMINIT?注意看看你的EBOOT代码,有的继续用实地址,有的又切换成了虚拟地址,不要用错了
|
|
板凳#
发布于:2005-05-11 15:32
谢谢1楼的大侠!
我是在EBOOT中去驱动SD卡,是在可以串口调试的时候开始初始化MMCSD,我用的全部是实地址。 代码如下: pMMCSD = MMCSD_Reg_Address ; pMMCSD->STR_STP_CLK = SET_VALUE(MMCSD_STR_STP_CLK_STOP_CLK, 0) | SET_VALUE(MMCSD_STR_STP_CLK_START_CLK, 0) | SET_VALUE(MMCSD_STR_STP_CLK_MMCSD_ENABLE, 0) | SET_VALUE(MMCSD_STR_STP_CLK_MMCSD_RESET, 1) | SET_VALUE(MMCSD_STR_STP_CLK_ENDIAN, 0); MMCSD_Reg_Address的地址是0x00214000。 当运行上面设置STR_STP_CLK时,就死掉了。 why? |
|
论坛版主
|
地板#
发布于:2005-05-11 16:29
:)
你用的BSP是MOTO给的那个吧 为了共享代码,它在EBOOT里面切换成了虚拟地址,你只要换成OEMADDRESSTABLE里面映射成的虚拟地址就可以了。 |
|
地下室#
发布于:2005-05-11 17:09
谢谢wxl_50685330兄:
我用的是MOTO给的BSP,本来在BSP中有SD卡的驱动,但是我要把它改到EBOOT中,实现EBOOT下载程序到SD卡中。我不知道是否可以直接用BSP包中的驱动。目前我没有办法直接用此驱动,主要在EBOOT中不能用到类。我的理解对吗? 十分感谢! |
|
论坛版主
|
5楼#
发布于:2005-05-12 13:28
嗯,BSP里面的驱动只是整个SD卡工作所需驱动的和硬件相关的一部分,你想用其中的代码恐怕不是很容易,如果想下载到SD卡的话可以通过直接操作硬件读写来完成,也就是实现对SD卡的读写,这个过程你可以参考BSP里的驱动,主要是参考他对硬件的操作部分。
但这样做有一个问题,如果你得SD卡被格式化成一定的文件系统,那么你需要配合文件系统来做,你又不能利用文件系统驱动,这个有点儿麻烦,需要你自己解析文件系统,按他的格式存放你下载的OS IMAGE。这个也是可行的。 |
|