From ed59dfc80aa6fc48a0894c8e46cee675f38ac949 Mon Sep 17 00:00:00 2001 From: Nicolas Pitre Date: Thu, 3 Dec 2009 17:27:13 -0500 Subject: 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 Signed-off-by: David Brownell --- src/target/arm_semihosting.h | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 src/target/arm_semihosting.h (limited to 'src/target/arm_semihosting.h') 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 * + * * + * 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 -- cgit v1.2.3