When testing picberry's operation for a PIC32MX3 family device, the program hung after printing Timeout occurred checking device status! to the terminal. Since the program never gets to this else block, it must be getting stuck in line 305.
I believe I've tracked down the issue to the pic32::GetPEResponse() function located in pic32.cpp. Specifically, the do-while loop within that function apparently waits for the Processor Access Bit to be set. If the device is not connected, however, this loop never breaks.
// Check if Processor Access bit (bit 18) is set
do {
response = XferData(32, 0x0004c000);
} while(!( (response >> 18) & 0x01 ));
One solution to this would be to implement a timeout flag that would allow the do-while loop to break and/or return 0x00000000. Then, the function which called it could continue (with a device_id of 0x00000000) which would then return false, ultimately triggering the "ERROR: unknown/unsupported device or programmer not connected." message to be printed.
SBC used: Raspberry Pi Zero W
picberry Version: v0.2
Shell output (first line is the command used):
as you might have imagined, the project is not actively maintained anymore. Feel free, however, to open a merge request with the solution you proposed (which I think is correct).
When testing picberry's operation for a PIC32MX3 family device, the program hung after printing
Timeout occurred checking device status!
to the terminal. Since the program never gets to this else block, it must be getting stuck in line 305.I believe I've tracked down the issue to the
pic32::GetPEResponse()
function located inpic32.cpp
. Specifically, thedo-while
loop within that function apparently waits for the Processor Access Bit to be set. If the device is not connected, however, this loop never breaks.One solution to this would be to implement a timeout flag that would allow the
do-while
loop to break and/or return0x00000000
. Then, the function which called it could continue (with adevice_id
of0x00000000
) which would then returnfalse
, ultimately triggering the "ERROR: unknown/unsupported device or programmer not connected." message to be printed.SBC used: Raspberry Pi Zero W picberry Version: v0.2 Shell output (first line is the command used):