summaryrefslogtreecommitdiff
path: root/src/target/arm_semihosting.h
diff options
context:
space:
mode:
authorNicolas Pitre <nico@fluxnic.net>2009-12-03 17:27:13 -0500
committerDavid Brownell <dbrownell@users.sourceforge.net>2009-12-03 18:42:01 -0800
commited59dfc80aa6fc48a0894c8e46cee675f38ac949 (patch)
tree2f0e0d1f3efb989f5b43f794536cce04bbd3e622 /src/target/arm_semihosting.h
parentf62c035c5277871193fa9904f430cf57221c0b89 (diff)
downloadopenocd+libswd-ed59dfc80aa6fc48a0894c8e46cee675f38ac949.tar.gz
openocd+libswd-ed59dfc80aa6fc48a0894c8e46cee675f38ac949.tar.bz2
openocd+libswd-ed59dfc80aa6fc48a0894c8e46cee675f38ac949.tar.xz
openocd+libswd-ed59dfc80aa6fc48a0894c8e46cee675f38ac949.zip
basic ARM semihosting support
Semihosting enables code running on an ARM target to use the I/O facilities on the host computer. The target application must be linked against a library that forwards operation requests by using the SVC instruction that is trapped at the Supervisor Call vector by the debugger. The "hosted" library version provided with CodeSourcery's Sourcery G++ Lite for ARM EABI is one example. This is currently available for ARM9 processors, but any ARM variant should be able to support this with little additional work. Tested using binaries compiled with Sourcery G++ Lite 2009q1-161 and ARM RVCT 3.0. [dbrownell@users.sourceforge.net: doc tweaks, NEWS] Signed-off-by: Nicolas Pitre <nico@marvell.com> Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Diffstat (limited to 'src/target/arm_semihosting.h')
-rw-r--r--src/target/arm_semihosting.h28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/target/arm_semihosting.h b/src/target/arm_semihosting.h
new file mode 100644
index 00000000..6b9ac566
--- /dev/null
+++ b/src/target/arm_semihosting.h
@@ -0,0 +1,28 @@
+/***************************************************************************
+ * Copyright (C) 2009 by Marvell Technology Group Ltd. *
+ * Written by Nicolas Pitre <nico@marvell.com> *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ * This program is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
+ * GNU General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU General Public License *
+ * along with this program; if not, write to the *
+ * Free Software Foundation, Inc., *
+ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
+ ***************************************************************************/
+
+#ifndef ARM_SEMIHOSTING_H
+#define ARM_SEMIHOSTING_H
+
+extern int semihosting_active;
+
+int arm_semihosting(struct target *target, int *retval);
+
+#endif