內(nèi)存擴(kuò)展測(cè)試
內(nèi)存容量從64M擴(kuò)展到128M
本文引用地址:http://butianyuan.cn/article/201611/320037.htmbasic-lcd-project-at91sam9263-ek-iarbasic-lcd-project-at91sam9263-ekat91libboardsat91sam9263-ekat91sam9263sdram.icf
/*-Memory Regions-*/
define symbol __ICFEDIT_region_SDRAM_start__ = 0x20000000;
define symbol __ICFEDIT_region_SDRAM_end__= 0x27FFFFFF;
basic-lcd-project-at91sam9263-ek-iarbasic-lcd-project-at91sam9263-ekresourcesiarat91sam9263-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");
應(yīng)用程序編譯到:
編譯到sram, 不調(diào)用sdram初始化,程序可以運(yùn)行,內(nèi)存環(huán)回,還是64M
調(diào)用SDRAM初始化,程序可以運(yùn)行,內(nèi)存不環(huán)回,128M
修改配置文件無(wú)關(guān)
編譯到SDRAM, 不修改配置文件,程序可運(yùn)行,內(nèi)存環(huán)回,64M
修改配置文件,程序可以運(yùn)行,內(nèi)存不環(huán)回,128M
sdram測(cè)試程序,必須編譯到Sram,
編譯到SDRAM, 調(diào)用SDRAM初始化函數(shù),仿真時(shí)程序不死機(jī)
uboot引導(dǎo)運(yùn)行時(shí),程序死機(jī)。
uboot運(yùn)行的時(shí)候,依然進(jìn)行了SDRAM的初始化,相當(dāng)于程序在SDRAM里面運(yùn)行,然后又去初始化自己,顯然是不可以的,所以程序死機(jī)。但是仿真的時(shí)候可以,可以理解為仿真器強(qiáng)制完成了這個(gè)過(guò)程,但是調(diào)用SDRAM讀寫(xiě)函數(shù)的時(shí)候也會(huì)死機(jī)。
所以,當(dāng)應(yīng)用128M 內(nèi)存的時(shí)候,要么編譯到SRAM,調(diào)用SDRAM的初始化函數(shù),要么修改uboot,直接初始化大內(nèi)存。
評(píng)論