summaryrefslogtreecommitdiff
path: root/nuttx
diff options
context:
space:
mode:
Diffstat (limited to 'nuttx')
-rw-r--r--nuttx/TODO14
-rw-r--r--nuttx/arch/arm/src/stm32/stm32_vectors.S10
2 files changed, 19 insertions, 5 deletions
diff --git a/nuttx/TODO b/nuttx/TODO
index 0e551c370..85a1f6f8c 100644
--- a/nuttx/TODO
+++ b/nuttx/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/nuttx/arch/arm/src/stm32/stm32_vectors.S b/nuttx/arch/arm/src/stm32/stm32_vectors.S
index 6ecd92b74..b624e09c9 100644
--- a/nuttx/arch/arm/src/stm32/stm32_vectors.S
+++ b/nuttx/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
************************************************************************************/