File tree Expand file tree Collapse file tree 3 files changed +22
-1
lines changed
targets/TARGET_RENESAS/TARGET_RZ_A1XX/TARGET_RZ_A1H/device Expand file tree Collapse file tree 3 files changed +22
-1
lines changed Original file line number Diff line number Diff line change 25
25
26
26
#include " hal/lp_ticker_api.h"
27
27
#include " mbed_critical.h"
28
+ #if defined(TARGET_CORTEX_A)
29
+ #include " rtx_core_ca.h"
30
+ #else // Cortex-M
28
31
#include " rtx_core_cm.h"
32
+ #endif
29
33
extern " C" {
30
34
#include " rtx_lib.h"
35
+ #if defined(TARGET_CORTEX_A)
36
+ #include " irq_ctrl.h"
37
+ #endif
31
38
}
32
39
33
40
#if (defined(NO_SYSTICK))
@@ -58,7 +65,7 @@ SysTimer::SysTimer(const ticker_data_t *data) :
58
65
59
66
void SysTimer::setup_irq ()
60
67
{
61
- #if (defined(NO_SYSTICK))
68
+ #if (defined(NO_SYSTICK) && !defined (TARGET_CORTEX_A) )
62
69
NVIC_SetVector (mbed_get_m0_tick_irqn (), (uint32_t )SysTick_Handler);
63
70
NVIC_SetPriority (mbed_get_m0_tick_irqn (), 0xFF ); /* RTOS requires lowest priority */
64
71
NVIC_EnableIRQ (mbed_get_m0_tick_irqn ());
@@ -148,6 +155,8 @@ void SysTimer::_set_irq_pending()
148
155
149
156
#if (defined(NO_SYSTICK))
150
157
NVIC_SetPendingIRQ (mbed_get_m0_tick_irqn ());
158
+ #elif (TARGET_CORTEX_A)
159
+ IRQ_SetPending (mbed_get_a9_tick_irqn ());
151
160
#else
152
161
SCB->ICSR = SCB_ICSR_PENDSTSET_Msk;
153
162
#endif
Original file line number Diff line number Diff line change 26
26
#define OS_TICK_H
27
27
28
28
#include <stdint.h>
29
+ #if defined(TARGET_CORTEX_A )
30
+ #include "irq_ctrl.h"
31
+ #endif
29
32
30
33
/// IRQ Handler.
31
34
#ifndef IRQHANDLER_T
@@ -68,4 +71,9 @@ uint32_t OS_Tick_GetCount (void);
68
71
/// \return OS Tick overflow status (1 - overflow, 0 - no overflow).
69
72
uint32_t OS_Tick_GetOverflow (void );
70
73
74
+ /// Get Cortex-A9 OS Timer interrupt number
75
+ /// \returns Cortex-A9 OS Timer interrupt number (134)
76
+ #if defined(TARGET_CORTEX_A )
77
+ IRQn_ID_t mbed_get_a9_tick_irqn (void );
78
+ #endif
71
79
#endif /* OS_TICK_H */
Original file line number Diff line number Diff line change @@ -193,5 +193,9 @@ uint32_t OS_Tick_GetOverflow (void)
193
193
return (IRQ_GetPending (OSTM_IRQn ));
194
194
}
195
195
196
+ // Get Cortex-A9 OS Timer interrupt number
197
+ IRQn_ID_t mbed_get_a9_tick_irqn (){
198
+ return OSTMI0TINT_IRQn ;
199
+ }
196
200
#endif
197
201
You can’t perform that action at this time.
0 commit comments