Uboot有一段这样的代码,将程序从SD卡中加载到SDRAM中去:
ch = *(volatile unsigned int *)(0xD0037488);
unsigned int ret;
// 通道0
if (ch == 0xEB000000)
{
// 0:channel 0
// 49:源,代码位于扇区49,1 sector = 512 bytes
// 32:长度,拷贝32 sector,即16K
// 0x23E00000:目的,链接地址0x23E00000
ret = copy_bl2(0, 49, 32,(unsigned int *)0x23E00000, 0);
}
// 通道2
else if (ch == 0xEB200000)
{
ret = copy_bl2(2, 49, 32,(unsigned int *)0x23E00000, 0);
}
else
return;
看到这段代码时,我就郁闷为何通过判断ch的值就可以知道是用的是哪个通道?
由上表可以知道地址0xd003_7488保存了一些信息,正是当前通道的信息,再看看应该是=当前SDMMC的起始地址,那这个起始地址应该对应什么呢?
从上表可以推测相关起始地址应该指的就是那几个关于SDMMC0-3的地址
我猜这个地址在这个部分应该就是开始地址了了
转载请注明出处