Forum: Mikrocontroller und Digitale Elektronik Code Read protection / uvison3 Download setup


von Andreas (Gast)


Lesenswert?

Hallo,
ich arbeite zurzeit mit dem LPC2132 und benutzte die Keil 
Entwicklungsumgebung uvision3
Ich möchte nun gerne die Code Read Protection einsetzten.
Ich weiß, dass im Flash an Adresse 0x1FC der Wert 0x87654321 gespeichert 
werden muss.
An dieser Stelle befindet sich allerdings ein Teil meines Programmcodes.

Ich habe nun versucht die Startadresse im Flash download setup von 
uvision3 von 0x00000000 auf 0x00001000 zu ändern. Nachdem ich nun die 
Software auf den Mikrocontroller laden wollte kam folgende 
Fehlermeldung:

No algorithm found for 00000000H - 0000FFFH
Partial programming done (areas with no algorithms skipped) ...

Mein Programm funktionierte ebenfalls nicht.

Hängt das Problem damit zusammen, dass ich die Evaluation version von 
uvision3 benutzte, die ja eingeschränkte Funktionen besitzt?

Ich hoffe jemand kann mir hierbei helfen.

Gruß

Andreas

von P. O. (neop13)


Lesenswert?

hallo
bst du weiter gekommen? ein änliches Problem habe ich auch momentan.
Wie hast du die Adresse denn gesetzt?

Wenn du die Adresse vorher reservierst, dürfte er doch an die Stelle 
keinen code schreiben oder?

von Andreass (Gast)


Lesenswert?

Hallo

>Ich habe nun versucht die Startadresse im Flash download setup von
>uvision3 von 0x00000000 auf 0x00001000 zu ändern

das kann nicht gehen weil dann die Start- Vectoren nicht mehr an der 
richtigen stelle liegen.

Leider meckert der Linker nicht das er die Sachen nicht plazieren kann.
Die Vektoren liegen denn leider dann ohne Kommentar an anderer Stelle 
und es funktioniert nicht.

Die nächste Falle ist das er jetzt versucht die C Lib zwischen die 
Vektoren und der CRP zu plazieren. Irgentwie funktioniert das
bei mir auch nicht so das dann einge Befehle aus der C LIB abstürzen.

deshab habe ich auch das asm Startup file ändern müssen.

ich habe hier mal ein bischen Source für euch.
ASM

....
;FIQ_Handler     B       FIQ_Handler

; Fill up To CPR 
------------------------------------------------------------------
                FILL    0x1B0,0xDEADDEAD,4 ; defines Fill bytes bis CRC
hier mit der Hand auszählen bei mir 1b0
; Reset_Handler 
------------------------------------------------------------------

                AREA    |.text|, CODE, READONLY

                EXPORT  Reset_Handler
Reset_Handler .......


C:


#define CRP_No 0xA5A5A5A5
#define CRP1 0x12345678
#define CRP2 0x87654321
#define CRP3 0x43218765

#ifdef DEBUG
 __at (0x000001Fc) const unsigned int CodeReadProtect = CRP_No;
#endif

#ifndef DEBUG
 __at (0x000001Fc) const unsigned int CodeReadProtect = CRP1;
#endif

von P. O. (neop13)


Lesenswert?

Man man man, scheint doch ien mühsamerre weg zu sein. bin in  ASM nicht 
so fit, eher in C, aber gut

Aber es kann doch nicht so schwer sein, seinen proz (bzw. den code) zu 
schützen.

Danke für die Hilfe

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
Noch kein Account? Hier anmelden.