我想对flash am29lv040B进行擦除,但发的擦除命令并没有执行,不知道原因在哪个地方了,请大家 帮我看看。
//==================================================== #include "xparameters.h" #include "xcache_l.h" #include "stdio.h" #include "xutil.h" //==================================================== int main (void) {
int i=0; int j=0; char*cmdAddr= (char*)XPAR_GENERIC_EXTERNAL_MEMORY_MEM0_BASEADDR; XCache_EnableICache(0x80000000); XCache_EnableDCache(0x80000000); print("-- Entering main() --\r"); xil_printf("enter erase\n "); { cmdAddr[0x555] = 0xaa; cmdAddr[0x2aa] = 0x55; cmdAddr[0x555] = 0x80; cmdAddr[0x555] = 0xaa; cmdAddr[0x2aa] = 0x55; cmdAddr[0x555] = 0x10; xil_printf("%08x \n",cmdAddr); //此处可以正常输出为0x05000000,flash的基址 for(i=0;i<500000000;i++); // 大约20多秒的延时,以便擦除完成 } for(i=0;i<2*1024;i++) //输出前2K个字节与原来的进行比较,看是否擦除了。 { //事实上并没有擦除。不知为何 xil_printf(" %02x ",cmdAddr); if((i+1)%16==0) xil_printf("\n "); } print("-- Exiting main() --\r\n"); return 0; }
//======================================================= MHS文件: //======================================================
//emc BEGIN opb_emc PARAMETER INSTANCE = Generic_External_Memory PARAMETER HW_VER = 2.00.a PARAMETER C_MAX_MEM_WIDTH = 8 PARAMETER C_MEM0_WIDTH = 8 PARAMETER C_SYNCH_MEM_0 = 0 PARAMETER C_OPB_CLK_PERIOD_PS = 15151 PARAMETER C_NUM_BANKS_MEM = 1 PARAMETER C_INCLUDE_DATAWIDTH_MATCHING_0 = 1 PARAMETER C_TCEDV_PS_MEM_0 = 150000 PARAMETER C_TWC_PS_MEM_0 = 150000 PARAMETER C_TAVDV_PS_MEM_0 = 150000 PARAMETER C_TWP_PS_MEM_0 = 60000 PARAMETER C_THZCE_PS_MEM_0 = 70000 PARAMETER C_TLZWE_PS_MEM_0 = 0 PARAMETER C_MEM0_BASEADDR = 0x05000000 PARAMETER C_MEM0_HIGHADDR = 0x0507ffff BUS_INTERFACE SOPB = opb PORT OPB_Clk = sys_clk_s PORT Mem_DQ = fpga_0_Generic_External_Memory_Mem_DQ PORT Mem_A = fpga_0_Generic_External_Memory_Mem_A # PORT Mem_BEN = fpga_0_Generic_External_Memory_Mem_BEN #datasheet 中没有这一位 PORT Mem_WEN = fpga_0_Generic_External_Memory_Mem_WEN PORT Mem_OEN = fpga_0_Generic_External_Memory_Mem_OEN PORT Mem_CEN = fpga_0_Generic_External_Memory_Mem_CEN # PORT Mem_RPN = fpga_0_Generic_External_Memory_Mem_RPN #不知道这个做什么的 #对读出并没有影响,对擦除呢?? END |