Hallo Kann man die Software, die ein R8C13 durchläuft nachträglich auslesen - also aus dem µC auslesen und wieder im HEW sichtbar machen ? Wenn ja wie ? Zweite Frage: Kann man als Programmierer des R8C13 sein Programm vor dem Auslesen schützen ? Wenn ja wie ? lg, Karsten
> also aus dem µC auslesen und wieder im HEW sichtbar machen ? Nein. Du kannst bei einigen Renesasprozessoren den Code auslesen wenn du ihn abloetet, die ID kennst und mit einem Parallelbrenner ausliesst. Ich vermute aber mal die kleinen R8C werden alleine wegen ihres kleinen Gehaeuse keinen Parallelmode haben. > Kann man als Programmierer des R8C13 sein Programm vor dem Auslesen > schützen ? Klar. Das machst du ja jetzt bereits. :-) > Wenn ja wie ? Jedesmal wenn man mit dem Prozessor redet muss man eine ID uebergeben. Die ist bei einem neuen Prozessor defaultmaessig auf ff ff ff ff ff. Da kannst du auch was anderes eingeben. Aber gut merken. .-) Olaf
Danke für deine Antworten. Wo finde ich die ID ? Ich verwende blos die Software von Elektor (12/2005). Also HEW und den Flasher (FDT 3.4). lg
> Wo finde ich die ID ?
Das weiss ich nicht mehr, zu lange her. :-)
Es kann sein das sie vom Flashtool aus einer Datei gelesen wird.
Aber pass auf! Du hast ja den Debugger und ein Flashtool. Beide wollen
mit dem Prozessor reden und beide brauchen dafuer die richtige ID.
Oh..und hast du schonmal das Datenblatt deines Prozessors gelesen? Da
sollte es einen Punkt ID Code Check Funktion geben. (Ich hab selber
gerade nur das Datenlatt zum R8C/1A hier) Da siehst du wo die IDs im
Prozessor liegen. Wenn dir das klar ist dann koenntet du zwei Dinge tun:
1. Ein kleines Programm schreiben das dir diese Bytes auf deinem Display
anzeigt fuer den Fall das du gleich Mist baust.
2. Mal schauen ob die IDs nicht im normalen Programm gesetzt werden.
Grundsaetzlich sind die IDs ja ganz normale Bytes im Programm. Die
koennen also auch bereits in deinem Binaerfile stehen was du da
reinflasht. Es kann aber sein das die Tools eine Funktion haben womit
sie diese Bytes vor dem Flashen austauschen. Ich hab z.B noch in
Erinnerung das bei einem der Flashtools von REnesas ein Fenster aufging
wo man jedesmal dieses Bytes eintippen musste. Es kann sein das dieses
Fenster nicht aufgeht wenn das Tool auf der Platte eine Datei findet
welche die ID setzt.
Wie gesagt, ist schon lange her und ich benutze normalerweise andere
Tools.
Oh..warum willst du die IDs ueberhaubt veraendern? Das macht doch nur
Sinn wenn man Projekte in Stueckzahl laufen hat. Fuer ein bisschen
basteln mit Elektor sehe ich da wenig Nutzen.
Olaf
Hi In meinem Datenblatt wird der Suchbegriff "ID Code Check" nicht gefunden. Auch über "ID" ist nichts zu finden. Warum ich die ID verändern möchte: Eigentlich möchte ich blos wissen wie das geht. Habe zZ. keine Projekte mit hohen Stückzahlen geplant. Ist auch nicht weiters wichtig. lg
Hi, also bei einem R32C und einem V850 Compiler steht es in der "fvector.h". Sieht dann zum Beispiel so aus:
1 | _asm(" .id ""\"#FFFFFFFFFFFFFF\""); |
Wobei die Hex-Werte der ID-Code ist. Das ist aber von deinem Compiler abhängig wo du diesen einstellst. Am besten du schaust mal in den ASM-Dateien oder dort wo die Interrupt Vectoren definiert werden. Du musst also eher im Compiler Manual, als im Hardware Manual nachsehen. Aber wie schon gesagt wurde, wenn du da Mist baust und den ID Code nicht mehr weißt, dann kannst du den Controller wegschmeißen. Denn ohne ID-Code kommt man dann nicht mehr drauf. Wenn man z.B. einen Fehler beim flashen des Controllers hat, kann es auch passieren, dass der ID-Code einen undefinierten Zustand annimmt. Dann ist der Controller auch nur noch Schrott. :D Außerdem es es wohl möglich den Binärcode mit einem Debugger wieder vom Controller auszulesen, vorausgesetzt du kennst den ID-Code. Allerdings ist dass dann ASM-Code und lässt sich nicht ohne den Original Code wieder nach C überführen. Außer du nutzt einen Disassembler, dann sind die Funktions und Variablen Namen einfach nur durchnummeriert und haben keine echten Namen mehr. Gruß m0nKeY
Karsten schrieb: > Wo finde ich die ID ? in den fixed interrupt vectors. Die haben 24 bit und sind als u32 definiert. Die obersten Bytes ergeben die ID. Default ist 7x 0x00 oder 0xFF. Wenn Du "ALeRASE" als ID angibst, dann wird der Controller gelöscht und die Default-ID wiederhergestellt. Dann ist zwar der Inhalt futsch, aber zumindest die Hardware wieder benutzbar. Kann aber sein, dass der R8C/1x dieses Feature noch nicht kennt, der ist ja steinalt.
om pf schrieb: > Karsten schrieb: > >> Wo finde ich die ID ? > > in den fixed interrupt vectors. Die haben 24 bit und sind als u32 > definiert. Die obersten Bytes ergeben die ID. Default ist 7x 0x00 oder > 0xFF. > > > Wenn Du "ALeRASE" als ID angibst, dann wird der Controller gelöscht und > die Default-ID wiederhergestellt. Dann ist zwar der Inhalt futsch, aber > zumindest die Hardware wieder benutzbar. > > Kann aber sein, dass der R8C/1x dieses Feature noch nicht kennt, der ist > ja steinalt. Das ist der Ort, wo die ID intern im Controller zu finden ist. Interessanter für ihn wird sein, wo man die ID im Projekt einstellt.
genau dort. Beim KPIT GNU Compiler heisst die Datei "fixed_vects.asm", bei IAR und NC30 wird's ähnlich sein. Da kommt die ID mit rein: .long (_UndefinedInstruction_ISR + 0x31000000) .long (_Overflow_ISR + 0x32000000) .long _BRK_Instruction_ISR .long (_AddressMatch_ISR + 0x33000000) .long (_SingleStep_ISR + 0x34000000) .long (_WatchdogTimer_ISR + 0x35000000) .long (0 + 0x36000000) .long (0 + 0x37000000) .long (_start + 0xBF000000) (mit der ID "1234567" als ASCII.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.