From b10c0a1a853398abab5f9d4255c9d8dc1ae7f51b Mon Sep 17 00:00:00 2001 From: Chris Reed Date: Sun, 23 Jul 2023 15:56:27 -0500 Subject: [PATCH] coresight: adiv5 discovery: increment invalid AP count on exception If an exception is raised when probing an AP, increment the invalid AP count. The scan loop is cleaned up a bit too. --- pyocd/coresight/discovery.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/pyocd/coresight/discovery.py b/pyocd/coresight/discovery.py index 923cb59b3..becb2533c 100644 --- a/pyocd/coresight/discovery.py +++ b/pyocd/coresight/discovery.py @@ -121,22 +121,24 @@ def _find_aps(self): return ap_list = [] - apsel = 0 invalid_count = 0 - while apsel < self.MAX_APSEL: + for apsel in range(self.MAX_APSEL): try: isValid = AccessPort.probe(self.dp, apsel) if isValid: ap_list.append(apsel) invalid_count = 0 - elif not self.session.options.get('scan_all_aps'): + else: invalid_count += 1 - if invalid_count == self.session.options.get('adi.v5.max_invalid_ap_count'): - break except exceptions.Error as e: LOG.error("Error probing AP#%d: %s", apsel, e, exc_info=self.session.log_tracebacks) - apsel += 1 + invalid_count += 1 + + # Stop scanning if we've seen a maximum number of invalid APs, unless `scan_all_aps` is set. + if not self.session.options.get('scan_all_aps') \ + and invalid_count >= self.session.options.get('adi.v5.max_invalid_ap_count'): + break # Update the AP list once we know it's complete. self.dp.valid_aps = ap_list