Code Protection på PIC
Code Protection på PIC
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
Mvh
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
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
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.
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:
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.
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).