diff options
author | Attila Veghelyi <works@veghelyiattila.hu> | 2024-06-25 20:25:31 +0200 |
---|---|---|
committer | Attila Veghelyi <works@veghelyiattila.hu> | 2024-06-25 20:25:31 +0200 |
commit | 5f686d5179d6a23a37378550b8c1122453d240c1 (patch) | |
tree | 423d6dbd1fa19a6487abb67c8da1c102ea9748b5 /progP18.c | |
parent | 2ec9ceca347f2052a0884e115a5198e5ea716262 (diff) | |
download | OpenProgrammer-5f686d5179d6a23a37378550b8c1122453d240c1.tar.gz OpenProgrammer-5f686d5179d6a23a37378550b8c1122453d240c1.zip |
Stop the process when device ID is unknownhotfix/fix-original
Diffstat (limited to 'progP18.c')
-rw-r--r-- | progP18.c | 18 |
1 files changed, 9 insertions, 9 deletions
@@ -324,7 +324,7 @@ struct ID18{ {0x990B,"18F57Q83 rev%c%d\r\n",0xFFFF}, }; -void PIC18_ID(int id) +static bool PIC18_ID(int id) { char s[128]; int i; @@ -332,18 +332,18 @@ void PIC18_ID(int id) if(PIC18LIST[i].revmask!=0xFFFF&&PIC18LIST[i].id==(id&~PIC18LIST[i].revmask)){ sprintf(s,PIC18LIST[i].device,id&PIC18LIST[i].revmask); PrintMessage(s); - return; + return true; } else if(PIC18LIST[i].revmask==0xFFFF&&PIC18LIST[i].id==(id&0xFFFF)){ int MJrev=(id>>22)&0x3F; int MNrev=(id>>16)&0x3F; sprintf(s,PIC18LIST[i].device,MJrev+'A',MNrev); PrintMessage(s); - return; + return true; } } - sprintf(s,"%s",strings[S_nodev]); //"Unknown device\r\n"); - PrintMessage(s); + PrintMessage(strings[S_nodev]); //"Unknown device\r\n"); + return false; } void DisplayCODE18F(int dim){ @@ -496,7 +496,7 @@ void Read18Fx(int dim,int dim2,int options) for(z=0;bufferI[z]!=TBLR_INC_N&&z<DIMBUF;z++); if(z<DIMBUF-3){ PrintMessage2(strings[S_DevID2],bufferI[z+3],bufferI[z+2]); //"DevID: 0x%02X%02X\r\n" - PIC18_ID(bufferI[z+2]+(bufferI[z+3]<<8)); + if (!PIC18_ID(bufferI[z+2]+(bufferI[z+3]<<8))) return; } //****************** read code ******************** PrintMessage(strings[S_CodeReading1]); //code read ... @@ -792,7 +792,7 @@ void Write18Fx(int dim,int dim2,int wbuf,int eraseW1,int eraseW2,int options) for(z=0;bufferI[z]!=TBLR_INC_N&&z<DIMBUF;z++); if(z<DIMBUF-3){ PrintMessage2(strings[S_DevID2],bufferI[z+3],bufferI[z+2]); //"DevID: 0x%02X%02X\r\n" - PIC18_ID(bufferI[z+2]+(bufferI[z+3]<<8)); + if (!PIC18_ID(bufferI[z+2]+(bufferI[z+3]<<8))) return; } j=0; //****************** erase memory ******************** @@ -1758,7 +1758,7 @@ void Read18FKx(int dim,int dim2,int options) } PrintMessage1("DevID: 0x%04X\r\n",devID); PrintMessage1("RevID: 0x%04X\r\n",devREV); - PIC18_ID(devID+(devREV<<16)); + if(!PIC18_ID(devID+(devREV<<16))) return; PrintMessage("Device Configuration Information:\r\n"); for(z+=3;bufferI[z]!=ICSP8_READ&&z<DIMBUF;z++); if(z<DIMBUF-2){ @@ -2139,7 +2139,7 @@ void Write18FKx(int dim,int dim2,int options,int nu1,int nu2, int nu3) } PrintMessage1("DevID: 0x%04X\r\n",devID); PrintMessage1("RevID: 0x%04X\r\n",devREV); - PIC18_ID(devID+(devREV<<16)); + if(!PIC18_ID(devID+(devREV<<16))) return; PrintMessage("Device Configuration Information:\r\n"); for(z+=3;bufferI[z]!=ICSP8_READ&&z<DIMBUF;z++); if(z<DIMBUF-2){ |