Ich teste ein einfaches Timer-Beispiel in keil (8051 ), wenn ich diesen Code debugge
org 0
MOV TH0,#76
MOV TL0,#01
MOV TMOD,#01
SETB TR0
JNB TF0,$
end
Ich bekomme den Fehler
error 65 access violation at c: 0x000e no execute read permission
Bitte, ich brauche Hilfe, um dieses Problem zu lösen
Sie haben hier einen klassischen Fehler. Sie haben keine Vorkehrungen getroffen, was Ihr Programm ausführen soll, nachdem Sie die Adresse 0x000E erreicht haben.
Hier schau mal:
C:0x0000 758C4C MOV TH0(0x8C),#0x4C
C:0x0003 758A01 MOV TL0(0x8A),#0x01
C:0x0006 758901 MOV TMOD(0x89),#0x01
C:0x0009 D28C SETB TR0(0x88.4)
C:0x000B 308DFD JNB TF0(0x88.5),C:000B
C:0x000E ???? ??? ??? ???
Nur weil Sie eine "End"-Anweisung in Ihren Assembler-Quellcode einfügen, bedeutet dies nichts für den 8051-Laufzeitkern, der versucht, Anweisungen abzurufen.
Debug->Memory Map, stellen Sie sicher, dass die Memory Map richtig für Lesen/Schreiben aktiviert ist (z. B. 0x0000 bis 0xFFFF)
Spehro Pefhany