You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by ma...@apache.org on 2022/02/27 08:25:31 UTC
[incubator-nuttx] branch master updated (fac10b6 -> b57e0b6)
This is an automated email from the ASF dual-hosted git repository.
masayuki pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx.git.
from fac10b6 stm32f103re has a dac module.but the pinmap file has no corresponding definition
new c369e47 arm/armv7-a/r: handle swi on interrupt stack
new b57e0b6 arm/armv7-a/r: check ARMV7A_DECODEFIQ on dataabort
The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
arch/arm/src/armv7-a/arm_vectors.S | 26 ++++++++++++++++++++++++++
arch/arm/src/armv7-r/arm_vectors.S | 26 ++++++++++++++++++++++++++
2 files changed, 52 insertions(+)
[incubator-nuttx] 02/02: arm/armv7-a/r: check ARMV7A_DECODEFIQ on dataabort
Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
masayuki pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx.git
commit b57e0b6118feab02d88cce39cacb745950f02a0d
Author: chao.an <an...@xiaomi.com>
AuthorDate: Sun Feb 27 12:55:08 2022 +0800
arm/armv7-a/r: check ARMV7A_DECODEFIQ on dataabort
Signed-off-by: chao.an <an...@xiaomi.com>
---
arch/arm/src/armv7-a/arm_vectors.S | 12 ++++++++++++
arch/arm/src/armv7-r/arm_vectors.S | 12 ++++++++++++
2 files changed, 24 insertions(+)
diff --git a/arch/arm/src/armv7-a/arm_vectors.S b/arch/arm/src/armv7-a/arm_vectors.S
index f3a2319..0036fba 100644
--- a/arch/arm/src/armv7-a/arm_vectors.S
+++ b/arch/arm/src/armv7-a/arm_vectors.S
@@ -423,7 +423,11 @@ arm_vectordata:
* r13 and r14
*/
+#ifdef CONFIG_ARMV7A_DECODEFIQ
mov r13, #(PSR_MODE_SVC | PSR_I_BIT | PSR_F_BIT)
+#else
+ mov r13, #(PSR_MODE_SVC | PSR_I_BIT)
+#endif
msr cpsr_c, r13 /* Switch to SVC mode */
/* Create a context structure. First set aside a stack frame
@@ -433,7 +437,11 @@ arm_vectordata:
sub sp, sp, #XCPTCONTEXT_SIZE
stmia sp, {r0-r12} /* Save the SVC mode regs */
+#ifdef CONFIG_ARMV7A_DECODEFIQ
mov r0, #(PSR_MODE_ABT | PSR_I_BIT | PSR_F_BIT)
+#else
+ mov r0, #(PSR_MODE_ABT | PSR_I_BIT)
+#endif
msr cpsr_c, r0 /* Switch back ABT mode */
/* Get the values for r15(pc) and CPSR in r3 and r4 */
@@ -443,7 +451,11 @@ arm_vectordata:
/* Then switch back to SVC mode */
+#ifdef CONFIG_ARMV7A_DECODEFIQ
mov r0, #(PSR_MODE_SVC | PSR_I_BIT | PSR_F_BIT)
+#else
+ mov r0, #(PSR_MODE_SVC | PSR_I_BIT)
+#endif
msr cpsr_c, r0
#ifdef CONFIG_BUILD_KERNEL
diff --git a/arch/arm/src/armv7-r/arm_vectors.S b/arch/arm/src/armv7-r/arm_vectors.S
index 64d1190..8c5f88c 100644
--- a/arch/arm/src/armv7-r/arm_vectors.S
+++ b/arch/arm/src/armv7-r/arm_vectors.S
@@ -377,7 +377,11 @@ arm_vectordata:
* r13 and r14
*/
+#ifdef CONFIG_ARMV7A_DECODEFIQ
mov r13, #(PSR_MODE_SVC | PSR_I_BIT | PSR_F_BIT)
+#else
+ mov r13, #(PSR_MODE_SVC | PSR_I_BIT)
+#endif
msr cpsr_c, r13 /* Switch to SVC mode */
/* Create a context structure. First set aside a stack frame
@@ -387,7 +391,11 @@ arm_vectordata:
sub sp, sp, #XCPTCONTEXT_SIZE
stmia sp, {r0-r12} /* Save the SVC mode regs */
+#ifdef CONFIG_ARMV7A_DECODEFIQ
mov r0, #(PSR_MODE_ABT | PSR_I_BIT | PSR_F_BIT)
+#else
+ mov r0, #(PSR_MODE_ABT | PSR_I_BIT)
+#endif
msr cpsr_c, r0 /* Switch back ABT mode */
/* Get the values for r15(pc) and CPSR in r3 and r4 */
@@ -397,7 +405,11 @@ arm_vectordata:
/* Then switch back to SVC mode */
+#ifdef CONFIG_ARMV7A_DECODEFIQ
mov r0, #(PSR_MODE_SVC | PSR_I_BIT | PSR_F_BIT)
+#else
+ mov r0, #(PSR_MODE_SVC | PSR_I_BIT)
+#endif
msr cpsr_c, r0
#ifdef CONFIG_BUILD_PROTECTED
[incubator-nuttx] 01/02: arm/armv7-a/r: handle swi on interrupt stack
Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
masayuki pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx.git
commit c369e471072e9204db83ad5bfbd0a621a8c69f83
Author: chao.an <an...@xiaomi.com>
AuthorDate: Sun Feb 27 12:38:22 2022 +0800
arm/armv7-a/r: handle swi on interrupt stack
Signed-off-by: chao.an <an...@xiaomi.com>
---
arch/arm/src/armv7-a/arm_vectors.S | 14 ++++++++++++++
arch/arm/src/armv7-r/arm_vectors.S | 14 ++++++++++++++
2 files changed, 28 insertions(+)
diff --git a/arch/arm/src/armv7-a/arm_vectors.S b/arch/arm/src/armv7-a/arm_vectors.S
index 237bf43..f3a2319 100644
--- a/arch/arm/src/armv7-a/arm_vectors.S
+++ b/arch/arm/src/armv7-a/arm_vectors.S
@@ -343,10 +343,24 @@ arm_vectorsvc:
mov fp, #0 /* Init frame pointer */
mov r0, sp /* Get r0=xcp */
+
+#if CONFIG_ARCH_INTERRUPTSTACK > 7
+ /* Call arm_syscall() on the interrupt stack */
+
+ setirqstack r1, r3 /* SP = interrupt stack top */
+ str r0, [sp, #-4]! /* Save the xcp address at SP-4 then update SP */
+ mov r4, sp /* Save the SP in a preserved register */
+ bic sp, sp, #7 /* Force 8-byte alignment */
+ bl arm_syscall /* Call the handler */
+ ldr sp, [r4] /* Restore the user stack pointer */
+#else
+ /* Call arm_syscall() on the user stack */
+
mov r4, sp /* Save the SP in a preserved register */
bic sp, sp, #7 /* Force 8-byte alignment */
bl arm_syscall /* Call the handler */
mov sp, r4 /* Restore the possibly unaligned stack pointer */
+#endif
/* Upon return from arm_syscall, r0 holds the pointer to the register
* state save area to use to restore the registers. This may or may not
diff --git a/arch/arm/src/armv7-r/arm_vectors.S b/arch/arm/src/armv7-r/arm_vectors.S
index d4865b0..64d1190 100644
--- a/arch/arm/src/armv7-r/arm_vectors.S
+++ b/arch/arm/src/armv7-r/arm_vectors.S
@@ -297,10 +297,24 @@ arm_vectorsvc:
mov fp, #0 /* Init frame pointer */
mov r0, sp /* Get r0=xcp */
+
+#if CONFIG_ARCH_INTERRUPTSTACK > 7
+ /* Call arm_syscall() on the interrupt stack */
+
+ ldr sp, .Lirqstacktop /* SP = interrupt stack top */
+ str r0, [sp, #-4]! /* Save the xcp address at SP-4 then update SP */
+ mov r4, sp /* Save the SP in a preserved register */
+ bic sp, sp, #7 /* Force 8-byte alignment */
+ bl arm_syscall /* Call the handler */
+ ldr sp, [r4] /* Restore the user stack pointer */
+#else
+ /* Call arm_syscall() on the user stack */
+
mov r4, sp /* Save the SP in a preserved register */
bic sp, sp, #7 /* Force 8-byte alignment */
bl arm_syscall /* Call the handler */
mov sp, r4 /* Restore the possibly unaligned stack pointer */
+#endif
/* Upon return from arm_syscall, r0 holds the pointer to the register
* state save area to use to restore the registers. This may or may not