diff --git a/.github/workflows/basic_test.yaml b/.github/workflows/basic_test.yaml index 5419e9f91..b1f1f0b46 100644 --- a/.github/workflows/basic_test.yaml +++ b/.github/workflows/basic_test.yaml @@ -32,6 +32,9 @@ jobs: - "3.9" - "3.10" - "3.11" + exclude: + - os: macos-latest + python-version: "3.7" steps: # Only check out HEAD. We don't need the full history. diff --git a/.github/workflows/basic_test_skipped.yaml b/.github/workflows/basic_test_skipped.yaml index b5ebc8117..b1d12d703 100644 --- a/.github/workflows/basic_test_skipped.yaml +++ b/.github/workflows/basic_test_skipped.yaml @@ -29,5 +29,8 @@ jobs: - "3.9" - "3.10" - "3.11" + exclude: + - os: macos-latest + python-version: "3.7" steps: - run: 'echo "Skipped due to path filter."' diff --git a/pyocd/rtos/provider.py b/pyocd/rtos/provider.py index a3d922804..73b09ac24 100644 --- a/pyocd/rtos/provider.py +++ b/pyocd/rtos/provider.py @@ -53,14 +53,15 @@ def __init__(self, target): self._last_run_token = -1 self._read_from_target = False - def _lookup_symbols(self, symbolList, symbolProvider): + def _lookup_symbols(self, symbolList, symbolProvider, allowPartial = False): syms = {} for name in symbolList: addr = symbolProvider.get_symbol_value(name) LOG.debug("Value for symbol %s = %s", name, hex(addr) if addr is not None else "") - if addr is None: + if addr is not None: + syms[name] = addr + elif not allowPartial: return None - syms[name] = addr return syms def init(self, symbolProvider): diff --git a/pyocd/rtos/zephyr.py b/pyocd/rtos/zephyr.py index 5f67221c9..cbde29788 100644 --- a/pyocd/rtos/zephyr.py +++ b/pyocd/rtos/zephyr.py @@ -274,9 +274,13 @@ def __init__(self, target): def init(self, symbolProvider): # Lookup required symbols. - self._symbols = self._lookup_symbols(self.ZEPHYR_SYMBOLS, symbolProvider) + self._symbols = self._lookup_symbols(self.ZEPHYR_SYMBOLS, symbolProvider, True) if self._symbols is None: return False + if len(self._symbols) != len(self.ZEPHYR_SYMBOLS): + LOG.warning("Zephyr kernel detected. Build your Zephyr application with `CONFIG_DEBUG_THREAD_INFO=y` to " + + "enable thread awareness.") + return False self._update() self._target.session.subscribe(self.event_handler, Target.Event.POST_FLASH_PROGRAM)