semihosting: support fileio operation 66/3566/6
authorSteven Stallion <stallion@squareup.com>
Fri, 22 Jul 2016 20:43:11 +0000 (15:43 -0500)
committerPaul Fertser <fercerpav@gmail.com>
Thu, 8 Dec 2016 12:32:58 +0000 (12:32 +0000)
commitc0e7ccbd87cf491b065bf18bbdb6a73b741c2698
tree45c8c4311f61b1990a1dca7f00a499aea3d28302
parentdc0a009ef411e323f7626000dfe2c0dfd1b044e5
semihosting: support fileio operation

This patch adds support for bridging semihosting to GDB's File-I/O
remote protocol extension. For the most part operations match up 1:1,
however some require a working area to complete successfully, namely
operations that devolve to read, stat, and gettimeofday.

A new command was added to enable support for fileio named `arm
semihosting_fileio`, which ensures that the default behavior remains
intact for those that prefer it.

Finally, redundant logging was removed from the target_arch_state
function; this permits ARM targets to quiesce log output when polling
for a fileio reply. This prevents filling the logs with halt/resume
messages when using semihosting fileio.

Change-Id: Ifbb864fc2373336a501cc0332675b887b552e1ee
Signed-off-by: Steven Stallion <stallion@squareup.com>
Reviewed-on: http://openocd.zylin.com/3566
Tested-by: jenkins
Reviewed-by: Steven Stallion <sstallion@gmail.com>
Reviewed-by: Paul Fertser <fercerpav@gmail.com>
12 files changed:
doc/openocd.texi
src/target/arm.h
src/target/arm7tdmi.c
src/target/arm9tdmi.c
src/target/arm_semihosting.c
src/target/arm_semihosting.h
src/target/armv4_5.c
src/target/armv7m.c
src/target/cortex_a.c
src/target/cortex_m.c
src/target/hla_target.c
src/target/target.c