Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cortex-m: step over breakpoint #1604

Open
wants to merge 31 commits into
base: develop
Choose a base branch
from

Conversation

flit
Copy link
Member

@flit flit commented Aug 5, 2023

Implement step over breakpoint for the CortexM class.

This patch handles single and range step over both software breakpoints and bkpt instructions in the original code. Resume will also automatically skip over a bkpt instruction, but does not handle software breakpoints. This is because there is no event available outside the gdbserver that can be used to reinstall a temporarily-removed software breakpoint when the core halts.

The basic_test.py functional test is extended to cover all step over breakpoint combinations.

Fixes #1537

flit and others added 21 commits May 22, 2023 08:11
…1562)

self.reset() have a 0.5 second sleep when using hw reset.
other reset types should not require any additional sleep.
by removing this sleep it is possible to aquire targets where
the application disable the swd port.

Co-authored-by: Johan Carlsson <johan.carlsson@teenage.engineering>
Support C-style assignment expressions, such that variables can be
assigned to in the middle of other expressions. Just as in C, the
value of an assignment expression is the value assigned to the variable.
While this syntax isn't documented in the Open-CMSIS-Pack specification,
it is used in the Keil.LPC800_DFP pack and therefore is implicitly
supported by debug sequences.

The patch replaces the assign_stmt AST node with assign_expr, with the
lowest precedence (same precedence as in C).
… no current session (pyocd#1565)

If Session.current_session is accessed without a valid current session,
an empty Session is created and retained via a strong reference. This
mostly happens when session options are read prior to the main session
being created.

Since the ._current_session attribute is a weakref, the options session
instance would previously be collected immediately after use, leading
to repeated creation of options sessions in some cases.
- Rename "User documentation" heading to "User guide"
- Move API architecture to be first under "Python API"
Signed-off-by: Sadik.Ozer <sadik.ozer@analog.com>
…sed board info (pyocd#1591)

If a CMSIS-DAP probe supports the v2.1 board and target info, but the
board also has builtin board ID based data, then use the test binary
name from the builtin data with the probe-supplied data.
…yocd#1593)

If an exception is raised when probing an AP, increment the invalid
AP count. The scan loop is cleaned up a bit too.
…mily (pyocd#1594)

The IMXRT family class isn't needed for pack-based targets any more
now that pyOCD supports the debug sequences present in the IMXRT packs.
…cd#1595)

- Fix performance regression for CMSIS-DAPv2 on certain machines
running Microsoft Windows by using a real multithreaded queue with
blocking support for passing data from receive thread.
- Re-raise exceptions that occur in the receive thread from .read().
- A few other small improvements.
Search only for the length of control block ID.

Fixes pyocd#1533
@flit flit changed the base branch from main to develop August 5, 2023 22:09
kaidegit and others added 7 commits August 13, 2023 14:11
* fix hc32f030 flash size
* fix hc32l13x series ram size and enable double buffering
Signed-off-by: Peter van der Perk <peter.vanderperk@nxp.com>
Co-authored-by: iannxp <ian.baak@nxp.com>
…1638)

* Add support for mps2_an521

* Generate reset when loading to Ram

* Add support for soft-bkpt-as-hard
Resuming over software breakpoints is not implemented yet because it
requires an event when the core is halted which is currently not
available outside the gdbserver.

For pyocd#1537
Some targets, notably the NXP LPC55S69, reading erased flash sectors
will result in a memory fault. This change makes the flash erase
and program test in basic_test.py compatible with such targets by
skipping the erased sector readback verify.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Cannot step over software breakpoint
10 participants