From 0b6910fe7cc6040bb46e612552907d91c5b59412 Mon Sep 17 00:00:00 2001 From: patacongo Date: Sat, 23 Mar 2013 23:06:51 +0000 Subject: [PATCH] Fix an compilation error recently introduced into stm32_vectors.S git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5780 42af7a65-404d-4744-a932-0658087f49c3 --- TODO | 14 +++++++++++++- arch/arm/src/stm32/stm32_vectors.S | 10 ++++++---- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/TODO b/TODO index 0e551c370af..85a1f6f8c8f 100644 --- a/TODO +++ b/TODO @@ -10,7 +10,7 @@ nuttx/ (1) Memory Managment (mm/) (3) Signals (sched/, arch/) (2) pthreads (sched/) - (5) Kernel Build + (6) Kernel Build (2) C++ Support (6) Binary loaders (binfmt/) (16) Network (net/, drivers/net) @@ -425,6 +425,18 @@ o Kernel Build Priority: Low-Medium. Right now, I do not know if these syscalls are a real performance issue or not. + Title: ARMv6/7-M SYSCALL PERFORMANCE IMPROVEMENT + Description: Currently the code issues an SVCall to go from user- to kernel-mode + and another go return to user-mode. The second is unnecessary: + If there were a stub in user-space that just set the unprivileged + mode in the CONTROL register and returned, then the dispatch_syscall() + function could just jump to the stub instead of using second SVCall. + Hmmm... would this expose a security whole by executing in user-space + with privileges? That already happens when the userspace memory + allocators are called. + Status: Open + Priority: Low (unless performance becomes an issue). + o C++ Support ^^^^^^^^^^^ diff --git a/arch/arm/src/stm32/stm32_vectors.S b/arch/arm/src/stm32/stm32_vectors.S index 6ecd92b74ce..b624e09c9fa 100644 --- a/arch/arm/src/stm32/stm32_vectors.S +++ b/arch/arm/src/stm32/stm32_vectors.S @@ -52,8 +52,6 @@ * arch/arm/src/armv7-m/up_vectors.S) */ -#ifndef CONFIG_ARMV7M_CMNVECTOR - /************************************************************************************ * Preprocessor Definitions ************************************************************************************/ @@ -77,12 +75,16 @@ * Global Symbols ************************************************************************************/ - .globl __start - .syntax unified .thumb .file "stm32_vectors.S" +/* Check if common ARMv7 interrupt vectoring is used (see arch/arm/src/armv7-m/up_vectors.S) */ + +#ifndef CONFIG_ARMV7M_CMNVECTOR + + globl __start + /************************************************************************************ * Macros ************************************************************************************/