Added opcode parser of the F.E.H.L.E.R-project for analysis of
memory access in mmu-abort handling, tracing, etc.
Change-Id: I5912fa4a4d51ee0501817c43bae05e87ac0e9b90
Added performance monitor hw-function cycle count.
Also fix for single-stepping exit, some additional register
exits and prevention of reboot failures.
Change-Id: I74196905dc39ecc14ae78366e7e1cb70ec7092f1
Polling of current target system state was done non-blocking until now.
Because of this, when the target was executing a longer time, the main-loop
was walked through several times and so unwanted state changes were
triggered. After this fix, the polling of execution state is blocking
in a while-loop until the target system hits any halting condition.
Also added some minor fixes
Change-Id: I4cbbef6eb6ff6ff8a3451affb8409a0df6a95fc5
Previously for correct termination, the PandaController called
the finish-function of the openocd wrapper, invoked a coroutine
switch and waited for the openocd wrapper to finish up and switch
coroutine again, so the PandaController could exit with correct
exitStatus. Now the openocd-wrapper directly exits with chosen
exit status.
Change-Id: I8d318a4143c53340896ccee4d059a0d79fdcfe89
In the OpenOCD config file for omap4460 an old definition of
Cortex-A9 CPUs was used. Without this fix, OpenOCD would not
start up.
Additionally this commit reduces the number of available Cortex-M
debug targets to one for the sake of simplicity.
Change-Id: Ic690bebd3d171ac0773bb0f1a8087ac96127fb6e
Normally OpenOCD reads all GP-Registers at halt, which is slow.
Restriction to only necessary Registers 1 and 15.
In the normal use case of OpenOCD this performance reduction does
not matter, because debugging does not need to be optimized for
performance. It just has to be faster than the human perception.
If we need to get the values of the registers 2 to 14, these are
fetched on demand per register.
Change-Id: I8587fbcc41c18722baebca1cec074188fe4cdebb
As the openocd-executable won't be needed, the main-function just
prints a warning, which should never be seen in fail context.
Change-Id: I8e5bbd00f152f68058f946b68201c0917db9ec9a
* If included by cpp-file, this will cause trouble. So it gets restricted
to use in c only.
* Prevent usage of "new" as variable name
* No redifinition of true and false, if included by C++
* Definition of bool fixed
Change-Id: Ic5403bd576afd9d2900a8ecfbcfdc50561ba0633
Including
* Main loop for controlling pandaboard
* Modification routines like setting halt conditions, reading
or writing Memory, Registers, etc.
* Timers
The *.hpp file is defined as *.hpp.in, because the absolute path to
config file must be set by CMake-Script (Will be introduced in later
commit)
Change-Id: I648df4916877dae550943bbb9b264b8d662689b7