diff --git a/TODO b/TODO index 0e551c370a..85a1f6f8c8 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 6ecd92b74c..b624e09c9f 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 ************************************************************************************/