- 论坛徽章:
- 0
|
因为我的系统做成了16bit总线,所以要在sdram(原来默认是32bit)中修改初始化。见附录中的loader源码中的init.c文件。我有个地方不明白,就是
/*Init SDRAM*/
AT91C_BASE_SDRC->SDRC_CR = 0x2188c159;(我改成9,原为5)
AT91C_BASE_SDRC->SDRC_MR = 0x02;
*pSDRAM = 0;
AT91C_BASE_SDRC->SDRC_MR = 0x04;
*pSDRAM = 0;
*pSDRAM = 0;
*pSDRAM = 0;
*pSDRAM = 0;
*pSDRAM = 0;
*pSDRAM = 0;
*pSDRAM = 0;
*pSDRAM = 0;
AT91C_BASE_SDRC->SDRC_MR = 0x03;
*(pSDRAM + 0x80) = 0;
AT91C_BASE_SDRC->SDRC_TR= 0x2e0;
*pSDRAM = 0;
AT91C_BASE_SDRC->SDRC_MR = 0;
*pSDRAM = 0;
为什么函数对SDRC_MR(sdram模式寄存器)进行多次赋值?我想仅仅把DWB数据总线宽度设定为16bit就行了? |
|