?? prog.c
字號:
#include <stdio.h>main(){ int i; unsigned char a = 0; unsigned int burstl = 132; // Burst length unsigned int offset = 0x0; // Memory offset in the target system volatile unsigned int *mes = 0x20000000; volatile unsigned int *mem = 0x40000000; volatile unsigned int *p = 0xD0000000;//0x40010000;//0xD0000000; // Pointer to local data volatile unsigned int *p2= p + (burstl & 0xFFFFFFF0) + 0x20; // Pointer to read back data volatile unsigned int *dma = 0x80000500; // DMA controller volatile unsigned int *pci_apb = 0x80000400; //PCI Master controller volatile unsigned int *pci_ahb = 0xe4000000; //AHB address the PCI Master // Generate test data for(i=0;i<burstl;i++){ *(p+i) = (unsigned int)i; } *(p+i) = 0xafafafaf; // Append testdata with "AFAFAFAF" mem = p + i + 1; // Address to write simulation result // Start DMA write *(dma+1) = p; // AHB address *(dma+2) = 0x44000000 + offset; // PCI address *(dma+3) = burstl; // burst length *dma = 0x87; // 0x87 = Write // Wait for DMA to be ready do{ i=10;while(i--); }while((*dma & 0x4) == 0); // Start DMA read *(dma+1) = p2; *(dma+2) = 0x44000000 + offset; *(dma+3) = burstl; *dma = 0x85; // Wait for DMA to be ready do{ i=10;while(i--); }while((*dma & 0x4) == 0); // *(dma+1) = p2 + (burstl & 0xFFFFFFF0) + 0x20;// *(dma+2) = 0x44000000 + offset + 16;// *(dma+3) = 2;// *dma = 0x85;//// do{// i=10;while(i--);// }while((*dma & 0x4) == 0); // Compare data *mem = 0x0E; for(i=0;i<burstl;i++){ if (*(p+i) != *(p2+i)){ *mem = 0x1E; } }// Some single PCI accesses // *pci_apb = 0x40000000;// *(mem + 1) = *(pci_ahb + 127);//// // mem = 0x40011000;// *pci_apb = 0x40000000;// // for(i=0;i<burstl;i++){// *(mem + i) = *(pci_ahb + i);// }// // *(mem + burstl + 1) = 0x0E;// for(i=0;i<burstl;i++){// if (*(p+i) != *(mem+i)){// *(mem + burstl + 1) = 0x1E;// }// } // End simulation with error i=100;while(i--); *mes = 0x1; while(1==1);}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -