AT91SAM9263EK IAR
内存容量从64M扩展到128M
basic-lcd-project-at91sam9263-ek-iar\basic-lcd-project-at91sam9263-ek\at91lib\boards\at91sam9263-ek\at91sam9263\sdram.icf
/*-Memory Regions-*/
define symbol __ICFEDIT_region_SDRAM_start__ = 0x20000000;
define symbol __ICFEDIT_region_SDRAM_end__= 0x27FFFFFF;
basic-lcd-project-at91sam9263-ek-iar\basic-lcd-project-at91sam9263-ek\resources\iar\at91sam9263-ek-sdram.mac
//* psdrc->SDRAMC_CR = AT91C_SDRAMC_NC_9 | AT91C_SDRAMC_NR_13 | AT91C_SDRAMC_CAS_2 |
// AT91C_SDRAMC_NB_4_BANKS | AT91C_SDRAMC_DBW_32_BITS | AT91C_SDRAMC_TWR_2 | AT91C_SDRAMC_TRC_7 |
// AT91C_SDRAMC_TRP_2 | AT91C_SDRAMC_TRCD_2 | AT91C_SDRAMC_TRAS_5 | AT91C_SDRAMC_TXSR_8 ;
// __writeMemory32(0x85227259,0xFFFFE208,”Memory”);
__writeMemory32(0x8522725A,0xFFFFE208,”Memory”);
使用程序编译到:
编译到sram, 不调用sdram初始化,程序能够运转,内存环回,仍是64M
调用SDRAM初始化,程序能够运转,内存不环回,128M
修正配置文件无关
编译到SDRAM, 不修正配置文件,程序可运转,内存环回,64M
修正配置文件,程序能够运转,内存不环回,128M
sdram测验程序,有必要编译到Sram,
编译到SDRAM, 调用SDRAM初始化函数,仿真时程序不死机
uboot引导运转时,程序死机。
uboot运转的时分,仍然进行了SDRAM的初始化,相当于程序在SDRAM里边运转,然后又去初始化自己,显然是不能够的,所以程序死机。可是仿真的时分能够,能够理解为仿真器强制完成了这个进程,可是调用SDRAM读写函数的时分也会死机。
所以,当使用128M 内存的时分,要么编译到SRAM,调用SDRAM的初始化函数,要么修正uboot,直接初始化大内存。