Sida 1 av 2
Code Protection på PIC
Postat: 25 januari 2008, 19:10:50
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
Postat: 25 januari 2008, 19:34:09
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.
Postat: 25 januari 2008, 19:48:48
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
Postat: 25 januari 2008, 20:02:49
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.
Postat: 25 januari 2008, 20:20:32
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.
Postat: 25 januari 2008, 20:42:54
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.
Postat: 25 januari 2008, 20:43:38
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.
Postat: 25 januari 2008, 21:05:12
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
Postat: 25 januari 2008, 21:07:04
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.
Postat: 25 januari 2008, 21:07:38
av Fredrick
Ja igenom att försöka läsa hela PIC´ens minne och sedan kolla på HEX filen
Postat: 25 januari 2008, 21:51:51
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
Postat: 25 januari 2008, 23:38:41
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.
Postat: 26 januari 2008, 01:43:43
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...
Postat: 26 januari 2008, 09:24:15
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...

Postat: 26 januari 2008, 10:02:58
av squiz3r
Tack sodjan, Den sidan borde jag förståss kollat på först

. 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