Skip to content

Commit b080a09

Browse files
Merge branch 'main' into main-arm-crx-be32
2 parents 3169c92 + d5c3c98 commit b080a09

File tree

2 files changed

+57
-0
lines changed

2 files changed

+57
-0
lines changed

portable/IAR/RXv2/port_asm.s

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,37 @@
3434
EXTERN _pxCurrentTCB
3535
EXTERN _vTaskSwitchContext
3636

37+
CFI Names cfiNames0
38+
CFI StackFrame CFA SP DATA
39+
CFI VirtualResource ?RET:32
40+
CFI Resource R1:32, R2:32, R3:32, R4:32, R5:32, R6:32, R7:32, R8:32
41+
CFI Resource R9:32, R10:32, R11:32, R12:32, R13:32, R14:32, R15:32
42+
CFI Resource SP:32
43+
CFI EndNames cfiNames0
44+
45+
CFI Common cfiCommon0 Using cfiNames0
46+
CFI CodeAlign 1
47+
CFI DataAlign 1
48+
CFI ReturnAddress ?RET CODE
49+
CFI CFA SP+4
50+
CFI ?RET Frame(CFA, -4)
51+
CFI R1 Undefined
52+
CFI R2 Undefined
53+
CFI R3 Undefined
54+
CFI R4 Undefined
55+
CFI R5 Undefined
56+
CFI R6 SameValue
57+
CFI R7 SameValue
58+
CFI R8 SameValue
59+
CFI R9 SameValue
60+
CFI R10 SameValue
61+
CFI R11 SameValue
62+
CFI R12 SameValue
63+
CFI R13 SameValue
64+
CFI R14 Undefined
65+
CFI R15 Undefined
66+
CFI EndCommon cfiCommon0
67+
3768
RSEG CODE:CODE(4)
3869

3970
_prvStartFirstTask:
@@ -91,6 +122,9 @@ _prvStartFirstTask:
91122
/*-----------------------------------------------------------*/
92123

93124
/* The software interrupt - overwrite the default 'weak' definition. */
125+
CFI Block cfiBlock0 Using cfiCommon0
126+
CFI Function ___interrupt_27
127+
CODE
94128
___interrupt_27:
95129

96130
/* Re-enable interrupts. */
@@ -151,6 +185,24 @@ ___interrupt_27:
151185
MVTIPL #configMAX_SYSCALL_INTERRUPT_PRIORITY
152186

153187
/* Select the next task to run. */
188+
CFI ?RET Frame(CFA, -8)
189+
CFI R15 Frame(CFA, -12)
190+
CFI R14 Frame(CFA, -16)
191+
CFI R13 Frame(CFA, -20)
192+
CFI R12 Frame(CFA, -24)
193+
CFI R11 Frame(CFA, -28)
194+
CFI R10 Frame(CFA, -32)
195+
CFI R9 Frame(CFA, -36)
196+
CFI R8 Frame(CFA, -40)
197+
CFI R7 Frame(CFA, -44)
198+
CFI R6 Frame(CFA, -48)
199+
CFI R5 Frame(CFA, -52)
200+
CFI R4 Frame(CFA, -56)
201+
CFI R3 Frame(CFA, -60)
202+
CFI R2 Frame(CFA, -64)
203+
CFI R1 Frame(CFA, -68)
204+
CFI CFA SP+96
205+
CFI FunCall _vTaskSwitchContext
154206
BSR.A _vTaskSwitchContext
155207

156208
/* Reset the interrupt mask as no more data structure access is required. */
@@ -194,6 +246,7 @@ ___interrupt_27:
194246
RTE
195247
NOP
196248
NOP
249+
CFI EndBlock cfiBlock0
197250

198251
/*-----------------------------------------------------------*/
199252

portable/ThirdParty/GCC/RP2040/include/portmacro.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,10 @@ extern void vPortYield( void );
149149
__asm volatile ( "mrs %0, IPSR" : "=r" ( ulIPSR )::); \
150150
( ( uint8_t ) ulIPSR ) > 0; } )
151151

152+
/* Use #define rather than inline method to make it easier for user code
153+
* to work with kernel versions both with and without xPortIsInsideInterrupt */
154+
#define xPortIsInsideInterrupt() ((BaseType_t)portCHECK_IF_IN_ISR())
155+
152156
void vYieldCore( int xCoreID );
153157
#define portYIELD_CORE( a ) vYieldCore( a )
154158

0 commit comments

Comments
 (0)