000
04.05.2004, 10:23 Uhr
~Unwissende
Gast
|
Hallo, ich finde einfach den Fehler nicht... der Debugger meckert wegen einer Access Violation (0xC0000005) wenn ich den Button "Test abbrechen" auf der GUI drücke. Lasse ich die *.exe laufen kommt folgende Fehlermeldung: "Die Anweisung in 0x00403a4b" verweist auf Speicher in 0x00000314. Der Vorgang "read" konnte nicht auf dem Speicher durchgeführt werden. Der Debugger meldet sich bei folgendem Quelltextstück:
C++: |
void msp2_brd::Get(UINT32 offset, UINT32 *val) { UINT32 *raddr; UINT32 tst;
raddr = FPGA_address; raddr += offset/4;
*val = *raddr; //nach dieser Zeile Fehlermeldung: Unbehandelte Ausnahme 0xC0000005 tst = *val; } FPGA_address gehört natürlich auch zur Klasse msp2_brd:
|
C++: |
class msp2_brd { protected: // is board initialised bool initialised;
// Base adress for direct memory access in loacal area for PLX registers; UINT32 *BAR0_address;
// Base adress for direct memory access; UINT32 *base_address;
// Range for memory access; UINT32 range;
// Base adress for direct memory access in loacal area for FPGA registers; UINT32 *FPGA_address;
// PCI board handler HANDLE pci_hd;
public: msp2_brd(); ~msp2_brd();
virtual void Read(UINT32 offset, UINT32* dst, UINT32 anz); virtual void Write(UINT32* src, UINT32 offset, UINT32 anz); virtual void WriteRead(UINT32* w_p, UINT32* r_p, UINT32 anz); virtual void Get(UINT32 offset, UINT32 *val); virtual void Put(UINT32 offset, UINT32 val); virtual void Info(HANDLE* hWD, UINT32* adr, UINT32* rng); virtual void GetBaseAdr(UINT32* adr1, UINT32* adr2, UINT32* adr3); };
|
|