Rework/update ARM semihosting
In 2016, ARM released the second edition of the semihosting specs
("Semihosting for AArch32 and AArch64"), adding support for 64-bits.
To ease the reuse of the semihosting logic for other platforms
(like RISC-V), the semihosting code was isolated from the ARM
target and updated to the latest specs.
The new code is already in use since January (in GNU MCU Eclipse
OpenOCD) and no problems were reported, neither for ARM nor for
RISC-V targets, after more than 7K downloads.
The 2 new files were formatted with uncrustify.
Change-Id: Ie84dbd86a547323bb8a5d24eab68fc7dad013d96
Signed-off-by: Liviu Ionescu <ilg@livius.net>
Reviewed-on: http://openocd.zylin.com/4518
Tested-by: jenkins
Reviewed-by: Matthias Welwarsky <matthias@welwarsky.de>
This commit is contained in:
committed by
Matthias Welwarsky
parent
cdf1e826eb
commit
2517bae6c1
@@ -8092,6 +8092,30 @@ interacting with remote files or displaying console messages in the
|
||||
debugger.
|
||||
@end deffn
|
||||
|
||||
@deffn Command {arm semihosting_resexit} [@option{enable}|@option{disable}]
|
||||
@cindex ARM semihosting
|
||||
Enable resumable SEMIHOSTING_SYS_EXIT.
|
||||
|
||||
When SEMIHOSTING_SYS_EXIT is called outside a debug session,
|
||||
things are simple, the openocd process calls exit() and passes
|
||||
the value returned by the target.
|
||||
|
||||
When SEMIHOSTING_SYS_EXIT is called during a debug session,
|
||||
by default execution returns to the debugger, leaving the
|
||||
debugger in a HALT state, similar to the state entered when
|
||||
encountering a break.
|
||||
|
||||
In some use cases, it is useful to have SEMIHOSTING_SYS_EXIT
|
||||
return normally, as any semihosting call, and do not break
|
||||
to the debugger.
|
||||
The standard allows this to happen, but the condition
|
||||
to trigger it is a bit obscure ("by performing an RDI_Execute
|
||||
request or equivalent").
|
||||
|
||||
To make the SEMIHOSTING_SYS_EXIT call return normally, enable
|
||||
this option (default: disabled).
|
||||
@end deffn
|
||||
|
||||
@section ARMv4 and ARMv5 Architecture
|
||||
@cindex ARMv4
|
||||
@cindex ARMv5
|
||||
|
||||
Reference in New Issue
Block a user