Code Protection på PIC

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
squiz3r
Inlägg: 5424
Blev medlem: 5 september 2006, 20:06:22
Ort: Lund
Kontakt:

Code Protection på PIC

Inlägg av squiz3r »

Hej. Jag försökte programmera en PIC12F629 med CP (code protection), så jag skrev "_CP_ON" i CONFIG snutten. Sedan programmerade jag PIC'en, och den fungerar bra. Men när Wispen verifierade koden så skrev den "Verifying program memory.................OK!" och det skulle den väll inte kunna göra om CP va aktiverat? Ska man göra något mer än att skriva det i CONFIG snutten?

Mvh
Användarvisningsbild
Micke_s
EF Sponsor
Inlägg: 6741
Blev medlem: 15 december 2005, 21:31:34
Ort: Malmö

Inlägg av Micke_s »

Nä. Det ska räcka.
Kan det vara så att inte wisp:en resetar mellan, testa att läsa den efter reset igen.
Användarvisningsbild
squiz3r
Inlägg: 5424
Blev medlem: 5 september 2006, 20:06:22
Ort: Lund
Kontakt:

Inlägg av squiz3r »

Jag har testat att programmera om den igen, och då kunde den också läsa, sen stängde jag av strömmen, startade igen och programmerade en gång till och den kunde ändå läsa..

Finns det något annat sätt att läsa än att programmera den? Man måste ju kunna få in det i datorn som en hex fil på nått sätt? Går det med en Wisp628A?

Mvh
Användarvisningsbild
Micke_s
EF Sponsor
Inlägg: 6741
Blev medlem: 15 december 2005, 21:31:34
Ort: Malmö

Inlägg av Micke_s »

Du ska inte programmera om den bara utlästa datan. har för mig att man bara får 0x00 elle 0xff ut. Du kör nog en chip erase i början, viket resettar hela kretsen inkl config register.
Fredrick
Inlägg: 342
Blev medlem: 9 januari 2004, 23:12:33

Inlägg av Fredrick »

När jag läser försöker läsa en skyddad PIC så fungerar det alldeles utmärkt bara det att HEX filen inte innehåller något.
Användarvisningsbild
Icecap
Inlägg: 26659
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Jaha, "någon" har inte insett hur sekvensen är.

1: Radera hela kretsen.
2: Verifiera att den är raderat (utför inte av alla prog. enheter)
3: Programmera in programdatan.
4: Verifiera prog. data.
5: Prog. CONFIG.
6: Klart.

CP blir alltså aktiverat EFTER verifieringen.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 47013
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Inlägg av TomasL »

Det går att verifiera en kodskyddad krets, det är bara övre eller undre "nibble" som är maskad (kommer inte ihåg vilken), (iallafall på de äldre picarna), har iofs inte kikat så noga på den biten, men det finns ett AN som beskriver programmering och verifieringsbiten i detalj, samt checksummeberäkningen.
Användarvisningsbild
squiz3r
Inlägg: 5424
Blev medlem: 5 september 2006, 20:06:22
Ort: Lund
Kontakt:

Inlägg av squiz3r »

Icecap: Okej, Då va det ju inte så konstigt att det blev så :).

Finns det något annat sätt att kolla om man kan läsa det?

Mvh
Användarvisningsbild
Icecap
Inlägg: 26659
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Javisst, det är bara att läsa kretsen efter avslutat programmering och se de läste data, har för mig att de bara är FF.
Fredrick
Inlägg: 342
Blev medlem: 9 januari 2004, 23:12:33

Inlägg av Fredrick »

Ja igenom att försöka läsa hela PIC´ens minne och sedan kolla på HEX filen
Användarvisningsbild
squiz3r
Inlägg: 5424
Blev medlem: 5 september 2006, 20:06:22
Ort: Lund
Kontakt:

Inlägg av squiz3r »

Men problemet är att jag inte vet hur man läser hela minnet :).. Ingen som har en beskrivande länk eller något?

Mvh
bearing
Inlägg: 11677
Blev medlem: 2 mars 2006, 01:01:45
Ort: Ängelholm

Inlägg av bearing »

I alla mjukvaror måste det ju finnas möjlighet att läsa. När mjukvaran läser läser den väl alltid hela eftersom den inte kan veta om det finns något längst bak eller inte.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Kod: Markera allt

C:\Documents and Settings\janne>xwisp2w
 xwisp2 version 1.9.4 for Windows (Jan 16 2008, Open Watcom C/C++ 1.70)
 (c) Copyright 2002,2008, R. Hamerling. All rights reserved.
BAUD b    : set baudrate b              PAUSE "m" : print "m", wait for Enter
BEEP      : beep at end of operation    PORT x    : use port x (name or number)
CHECK     : buffer against target       PROTECT x : x = ON, OFF or FILE
DELAY d   : programming delay (0.1 ms)  PUT       : buffer to target
DTR x     : x = ON or OFF               READ f    : get, save f
DUMP      : display hex image           RTS x     : x = ON or OFF
DUPLEX m  : m = HALF or FULL (Wisp628)  RUN       : put target in run mode
ERASE     : erase target                SAVE f    : buffer to file
FORCE x   : override target with x      SELECT x  : x = one or more of +-CDFI
FULL      : full memory check/verify    TARGET x  : x = ? or chip name or AUTO
FUSES x   : x = FILE, IGNORE or value   TIME      : show current time
GET       : target to buffer            VERBOSE   : enable screen logging
GO f      : erase, write f, check, run  VERIFY f  : load f, check
HELP      : display these screens       WAIT n    : wait n milliseconds
LOAD f    : file f to buffer            WRITE f   : load f, put
LOG f     : log to file f
PASS m    : enable passthrough
            m = B6T, B6I, AUXT, AUXI
Press 'Enter' to continue:
Notera "READ" ovan !

Du kan även prova att RTFM : http://www.robh.nl/xwisp2.html där det bl.a står :

Kod: Markera allt

There are also several compound commands available which combine two
or more primitive operations, such as:

    * Write performs a Load file to buffer followed by a Put buffer to target.
    * Read performs a Get target to buffer followed by a Save buffer to file.
    * Verify performs a file to buffer followed by a Check buffer against target.
    * Go performs an Erase of the target, a Write of the file to the target, a
      Check of buffer against target and finally a Run to restart the target device.
Och lite längre ner :

Kod: Markera allt

READ   <file>
    The Read command reads the contents of target memory into the
    memory buffer and writes it to the <file> in Intel hex format. The hex
    file will contain only entries for those locations which do not contain the
    'erased' value (code: 0x3FFF/0xFFFF, data: 0xFF).
Ärligt talat tycker jag du kan försöka *lite* bättre innan du kastar dig över EF...
Användarvisningsbild
oJsan
EF Sponsor
Inlägg: 1541
Blev medlem: 11 november 2005, 21:36:51
Ort: Umeå
Kontakt:

Inlägg av oJsan »

*Stilla fundering* Tänk den dagen när alla "is RTFM" och använder google till all informationsinhämtning, då behöver inte forumet finnas längre... :(
Användarvisningsbild
squiz3r
Inlägg: 5424
Blev medlem: 5 september 2006, 20:06:22
Ort: Lund
Kontakt:

Inlägg av squiz3r »

Tack sodjan, Den sidan borde jag förståss kollat på först :oops:. Jag satt länge och sökte på google på allt möjligt jag kunde komma på men hittade inget.. Kollade sedan på forumet men hittade inget där heller..

Tack alla!

Mvh. Daniel
Skriv svar