{"action":"created","issue":{"url":"https://api.github.com/repos/mbedmicro/pyOCD/issues/216","labels_url":"https://api.github.com/repos/mbedmicro/pyOCD/issues/216/labels{/name}","comments_url":"https://api.github.com/repos/mbedmicro/pyOCD/issues/216/comments","events_url":"https://api.github.com/repos/mbedmicro/pyOCD/issues/216/events","html_url":"https://github.com/mbedmicro/pyOCD/pull/216","id":120833715,"number":216,"title":"Architectural refactoring","user":{"login":"flit","id":3116536,"avatar_url":"https://avatars.githubusercontent.com/u/3116536?v=3","gravatar_id":"","url":"https://api.github.com/users/flit","html_url":"https://github.com/flit","followers_url":"https://api.github.com/users/flit/followers","following_url":"https://api.github.com/users/flit/following{/other_user}","gists_url":"https://api.github.com/users/flit/gists{/gist_id}","starred_url":"https://api.github.com/users/flit/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/flit/subscriptions","organizations_url":"https://api.github.com/users/flit/orgs","repos_url":"https://api.github.com/users/flit/repos","events_url":"https://api.github.com/users/flit/events{/privacy}","received_events_url":"https://api.github.com/users/flit/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":7,"created_at":"2015-12-07T18:07:58Z","updated_at":"2015-12-22T20:16:47Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/mbedmicro/pyOCD/pulls/216","html_url":"https://github.com/mbedmicro/pyOCD/pull/216","diff_url":"https://github.com/mbedmicro/pyOCD/pull/216.diff","patch_url":"https://github.com/mbedmicro/pyOCD/pull/216.patch"},"body":"Fairly significant changes to re-architect pyOCD's target and Cortex-M related code.\r\n\r\n- Created new pyOCD.coresight submodule. It has DebugPort and AccessPort classes, as well as classes for CortexM, FPB, DWT, breakpoints, and ROM table parsing.\r\n- CortexM class moved to pyOCD.coresight and simplified by using other coresight component classes such as AHB_AP and the breakpoints classes.\r\n- New CoreSightTarget subclass of Target that owns the DebugPort, AccessPort, and CortexM classes. It supports multiple cores. The existing target classes are now subclasses of CoreSightTarget rather than CortexM.\r\n- Factored breakpoints code that was in CortexM into a BreakpointsManager class and related classes.\r\n- CoreSight ROM tables are parsed during init, although they are not yet used to construct objects.\r\n- Additional CPU states are supported: reset, lockup, and sleep.\r\n- Debug resources are disabled and debug is powered down upon disconnect.\r\n- Memory reads are filtered to hide software breakpoints.\r\n\r\nThis changeset also includes some miscellaneous changes, as well:\r\n- pyocd-tool can execute arbitrary Python expressions via a \"$<python code>\" syntax.\r\n- Added \"core\" command to pyocd-tool to select the current core.\r\n- SVD files are associated with targets and the registers can be accessed via pyocd-tool.\r\n- hidapi USB backend was improved to fix issues with multiple connected boards and when another process already has a board open."},"comment":{"url":"https://api.github.com/repos/mbedmicro/pyOCD/issues/comments/166719248","html_url":"https://github.com/mbedmicro/pyOCD/pull/216#issuecomment-166719248","issue_url":"https://api.github.com/repos/mbedmicro/pyOCD/issues/216","id":166719248,"user":{"login":"flit","id":3116536,"avatar_url":"https://avatars.githubusercontent.com/u/3116536?v=3","gravatar_id":"","url":"https://api.github.com/users/flit","html_url":"https://github.com/flit","followers_url":"https://api.github.com/users/flit/followers","following_url":"https://api.github.com/users/flit/following{/other_user}","gists_url":"https://api.github.com/users/flit/gists{/gist_id}","starred_url":"https://api.github.com/users/flit/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/flit/subscriptions","organizations_url":"https://api.github.com/users/flit/orgs","repos_url":"https://api.github.com/users/flit/repos","events_url":"https://api.github.com/users/flit/events{/privacy}","received_events_url":"https://api.github.com/users/flit/received_events","type":"User","site_admin":false},"created_at":"2015-12-22T20:16:47Z","updated_at":"2015-12-22T20:16:47Z","body":"Thanks @c1728p9 for reviewing and all your comments, sorry it took a while to get back to this. Also thanks for testing. I've seen the gdb test failure, but wasn't sure if it was something I broke or the fact I was running on OS X. Not sure why the LPC targets would fail… will look into that.\r\n\r\n@tgarc yeah, it's a lot of commits… But a lot of the commits have actually already been merged via other pull requests. In those cases the work was originally done on this branch, then I moved it to another branch and created a PR. I chose not to rebase this branch because there were quite complicated differences to resolve, especially regarding the new pyDAPAccess submodule."}}