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