From 5cd1e36d69c454f062860fb27ba2526ac6c81db2 Mon Sep 17 00:00:00 2001 From: gdisirio Date: Wed, 28 May 2014 14:24:36 +0000 Subject: Untested ARM port related stuff. git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@6968 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- os/common/ports/ARM/compilers/GCC/irq.s | 7 +++ os/rt/ports/ARM/chcore.c | 55 ++++++++++++++++++++++++ os/rt/ports/ARM/compilers/GCC/mk/port_lpc214x.mk | 13 ++++++ 3 files changed, 75 insertions(+) create mode 100644 os/rt/ports/ARM/chcore.c create mode 100644 os/rt/ports/ARM/compilers/GCC/mk/port_lpc214x.mk (limited to 'os') diff --git a/os/common/ports/ARM/compilers/GCC/irq.s b/os/common/ports/ARM/compilers/GCC/irq.s index 8ad50ea36..8490beb8c 100644 --- a/os/common/ports/ARM/compilers/GCC/irq.s +++ b/os/common/ports/ARM/compilers/GCC/irq.s @@ -43,6 +43,13 @@ IrqHandler: ldr lr, =_port_irq_common bx r0 + .weak _port_irq_common +_port_irq_common: + // This exit sequence is usually replaced by the RTOS + // specific one. + ldmfd sp!, {r0-r3, r12, lr} + subs pc, lr, #4 + #endif /** @} */ diff --git a/os/rt/ports/ARM/chcore.c b/os/rt/ports/ARM/chcore.c new file mode 100644 index 000000000..f57710185 --- /dev/null +++ b/os/rt/ports/ARM/chcore.c @@ -0,0 +1,55 @@ +/* + ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, + 2011,2012,2013 Giovanni Di Sirio. + + This file is part of ChibiOS/RT. + + ChibiOS/RT 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 3 of the License, or + (at your option) any later version. + + ChibiOS/RT 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, see . +*/ + +/** + * @file ARM/chcore.c + * @brief ARM port code. + * + * @addtogroup ARM_CORE + * @{ + */ + +#include "ch.h" + +/*===========================================================================*/ +/* Module local definitions. */ +/*===========================================================================*/ + +/*===========================================================================*/ +/* Module exported variables. */ +/*===========================================================================*/ + +/*===========================================================================*/ +/* Module local types. */ +/*===========================================================================*/ + +/*===========================================================================*/ +/* Module local variables. */ +/*===========================================================================*/ + +/*===========================================================================*/ +/* Module local functions. */ +/*===========================================================================*/ + +/*===========================================================================*/ +/* Module exported functions. */ +/*===========================================================================*/ + +/** @} */ diff --git a/os/rt/ports/ARM/compilers/GCC/mk/port_lpc214x.mk b/os/rt/ports/ARM/compilers/GCC/mk/port_lpc214x.mk new file mode 100644 index 000000000..1f91d144d --- /dev/null +++ b/os/rt/ports/ARM/compilers/GCC/mk/port_lpc214x.mk @@ -0,0 +1,13 @@ +# List of the ChibiOS/RT Cortex-M3 STM32F1xx port files. +PORTSRC = ${CHIBIOS}/os/rt/ports/ARM/chcore.c + +PORTASM = $(CHIBIOS)/os/common/ports/ARM/compilers/GCC/vectors.s \ + $(CHIBIOS)/os/common/ports/ARM/compilers/GCC/irq.s \ + $(CHIBIOS)/os/common/ports/ARM/compilers/GCC/crt0.s \ + $(CHIBIOS)/os/rt/ports/ARM/compilers/GCC/chcoreasm.s + +PORTINC = ${CHIBIOS}/os/common/ports/ARM/devices/LPC214x \ + ${CHIBIOS}/os/rt/ports/ARM \ + ${CHIBIOS}/os/rt/ports/ARM/compilers/GCC + +PORTLD = ${CHIBIOS}/os/common/ports/ARM/compilers/GCC/ld -- cgit v1.2.3