mbed-os/workspace_tools/debugger/pyOCD/board/board.py

60 lines
1.9 KiB
Python

"""
mbed CMSIS-DAP debugger
Copyright (c) 2006-2013 ARM Limited
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
"""
from pyOCD.target import TARGET
from pyOCD.transport import TRANSPORT
from pyOCD.interface import INTERFACE
from pyOCD.flash import FLASH
import logging
class Board():
"""
This class associates a target, a flash, a transport and an interface
to create a board
"""
def __init__(self, target, flash, interface, transport = "cmsis_dap"):
if isinstance(interface, str) == False:
self.interface = interface
else:
self.interface = INTERFACE[interface].chooseInterface(INTERFACE[interface])
self.transport = TRANSPORT[transport](self.interface)
self.target = TARGET[target](self.transport)
self.flash = FLASH[flash](self.target)
return
def init(self):
"""
Initialize the board: interface, transport and target
"""
logging.debug("init board %s", self)
self.interface.init()
self.transport.init()
self.target.init()
def uninit(self):
"""
Uninitialize the board: inetrface, transport and target.
This function resets the target
"""
logging.debug("uninit board %s", self)
self.target.resume()
self.transport.uninit()
self.interface.close()
def getInfo(self):
return self.interface.getInfo()