mirror of https://github.com/RT-Thread/rt-thread
[libcpu][drivers] cortex-r52 abnormal takeover and software rtc naming change
This commit is contained in:
parent
1cf97d8565
commit
3f1a62cfe3
|
@ -52,7 +52,11 @@ static rt_err_t alarm_set(struct rt_alarm *alarm)
|
||||||
struct rt_rtc_wkalarm wkalarm;
|
struct rt_rtc_wkalarm wkalarm;
|
||||||
rt_err_t ret;
|
rt_err_t ret;
|
||||||
|
|
||||||
|
#ifdef RT_USING_SOFT_RTC
|
||||||
|
device = rt_device_find("sw_rtc");
|
||||||
|
#else
|
||||||
device = rt_device_find("rtc");
|
device = rt_device_find("rtc");
|
||||||
|
#endif
|
||||||
|
|
||||||
if (device == RT_NULL)
|
if (device == RT_NULL)
|
||||||
{
|
{
|
||||||
|
|
|
@ -226,8 +226,8 @@ static int rt_soft_rtc_init(void)
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
/* make sure only one 'rtc' device */
|
/* make sure only one 'sw_rtc' device */
|
||||||
RT_ASSERT(!rt_device_find("rtc"));
|
RT_ASSERT(!rt_device_find("sw_rtc"));
|
||||||
|
|
||||||
#ifdef RT_USING_ALARM
|
#ifdef RT_USING_ALARM
|
||||||
rt_timer_init(&alarm_time,
|
rt_timer_init(&alarm_time,
|
||||||
|
@ -258,7 +258,9 @@ static int rt_soft_rtc_init(void)
|
||||||
/* no private */
|
/* no private */
|
||||||
soft_rtc_dev.user_data = RT_NULL;
|
soft_rtc_dev.user_data = RT_NULL;
|
||||||
|
|
||||||
rt_device_register(&soft_rtc_dev, "rtc", RT_DEVICE_FLAG_RDWR);
|
rt_device_register(&soft_rtc_dev, "sw_rtc", RT_DEVICE_FLAG_RDWR);
|
||||||
|
|
||||||
|
source_device = &soft_rtc_dev;
|
||||||
|
|
||||||
init_ok = RT_TRUE;
|
init_ok = RT_TRUE;
|
||||||
|
|
||||||
|
@ -317,7 +319,7 @@ static void cmd_rtc_sync(int argc, char **argv)
|
||||||
rt_kprintf("local time: %.*s", 25, ctime(&now));
|
rt_kprintf("local time: %.*s", 25, ctime(&now));
|
||||||
rt_kprintf("timestamps: %ld\n", (long)tv.tv_sec);
|
rt_kprintf("timestamps: %ld\n", (long)tv.tv_sec);
|
||||||
}
|
}
|
||||||
MSH_CMD_EXPORT_ALIAS(cmd_rtc_sync, rtc_sync, Update time by real rtc);
|
MSH_CMD_EXPORT_ALIAS(cmd_rtc_sync, rtc_sync, Update time by soft rtc);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif /* RT_USING_SYSTEM_WORKQUEUE */
|
#endif /* RT_USING_SYSTEM_WORKQUEUE */
|
||||||
|
|
|
@ -12,8 +12,6 @@
|
||||||
@ (c) Texas Instruments 2009-2013, All rights reserved.
|
@ (c) Texas Instruments 2009-2013, All rights reserved.
|
||||||
@
|
@
|
||||||
|
|
||||||
//#include <rtconfig.h>
|
|
||||||
|
|
||||||
.equ Mode_USR, 0x10
|
.equ Mode_USR, 0x10
|
||||||
.equ Mode_FIQ, 0x11
|
.equ Mode_FIQ, 0x11
|
||||||
.equ Mode_IRQ, 0x12
|
.equ Mode_IRQ, 0x12
|
||||||
|
@ -47,7 +45,7 @@ stack_top:
|
||||||
.text
|
.text
|
||||||
.arm
|
.arm
|
||||||
|
|
||||||
.globl _c_int00
|
.globl entry
|
||||||
|
|
||||||
.globl _reset
|
.globl _reset
|
||||||
_reset:
|
_reset:
|
||||||
|
@ -122,7 +120,7 @@ next2:
|
||||||
next3:
|
next3:
|
||||||
bl next4
|
bl next4
|
||||||
next4:
|
next4:
|
||||||
ldr lr, =_c_int00
|
ldr lr, =entry
|
||||||
bx lr
|
bx lr
|
||||||
|
|
||||||
.globl data_init
|
.globl data_init
|
||||||
|
@ -479,26 +477,38 @@ turnon_VFP:
|
||||||
str lr, [r0, #14*4] @/* Save calling PC */
|
str lr, [r0, #14*4] @/* Save calling PC */
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
.globl vector_svc
|
.globl SWI_Handler
|
||||||
vector_svc:
|
SWI_Handler:
|
||||||
push_svc_reg
|
push_svc_reg
|
||||||
bl rt_hw_trap_svc
|
bl rt_hw_trap_swi
|
||||||
b .
|
b .
|
||||||
|
|
||||||
.globl vector_pabort
|
.globl Undefined_Handler
|
||||||
vector_pabort:
|
Undefined_Handler:
|
||||||
push_svc_reg
|
push_svc_reg
|
||||||
bl rt_hw_trap_pabt
|
bl rt_hw_trap_undef
|
||||||
b .
|
b .
|
||||||
|
|
||||||
.globl vector_dabort
|
.globl SVC_Handler
|
||||||
vector_dabort:
|
SVC_Handler:
|
||||||
push_svc_reg
|
push_svc_reg
|
||||||
bl rt_hw_trap_dabt
|
b rt_hw_trap_svc
|
||||||
b .
|
b .
|
||||||
|
|
||||||
.globl vector_resv
|
.globl Prefetch_Handler
|
||||||
vector_resv:
|
Prefetch_Handler:
|
||||||
push_svc_reg
|
push_svc_reg
|
||||||
bl rt_hw_trap_resv
|
b rt_hw_trap_pabt
|
||||||
b .
|
b .
|
||||||
|
|
||||||
|
.globl Abort_Handler
|
||||||
|
Abort_Handler:
|
||||||
|
push_svc_reg
|
||||||
|
b rt_hw_trap_dabt
|
||||||
|
b .
|
||||||
|
|
||||||
|
.globl Reserved_Handler
|
||||||
|
Reserved_Handler:
|
||||||
|
push_svc_reg
|
||||||
|
b rt_hw_trap_resv
|
||||||
|
b .
|
||||||
|
|
|
@ -31,11 +31,13 @@ ABT_Stack_Size EQU 0x00000000
|
||||||
FIQ_Stack_Size EQU 0x00001000
|
FIQ_Stack_Size EQU 0x00001000
|
||||||
IRQ_Stack_Size EQU 0x00001000
|
IRQ_Stack_Size EQU 0x00001000
|
||||||
|
|
||||||
IMPORT _c_int00
|
IMPORT entry
|
||||||
IMPORT rt_hw_trap_svc
|
IMPORT rt_hw_trap_svc
|
||||||
IMPORT rt_hw_trap_pabt
|
IMPORT rt_hw_trap_pabt
|
||||||
IMPORT rt_hw_trap_dabt
|
IMPORT rt_hw_trap_dabt
|
||||||
IMPORT rt_hw_trap_resv
|
IMPORT rt_hw_trap_resv
|
||||||
|
IMPORT rt_hw_trap_swi
|
||||||
|
IMPORT rt_hw_trap_undef
|
||||||
IMPORT system_init
|
IMPORT system_init
|
||||||
IMPORT __iar_program_start
|
IMPORT __iar_program_start
|
||||||
|
|
||||||
|
@ -308,6 +310,18 @@ turnon_VFP:
|
||||||
str lr, [r0, #14*4] ;@/* Save calling PC */
|
str lr, [r0, #14*4] ;@/* Save calling PC */
|
||||||
endm
|
endm
|
||||||
|
|
||||||
|
EXPORT SWI_Handler
|
||||||
|
SWI_Handler:
|
||||||
|
push_svc_reg
|
||||||
|
bl rt_hw_trap_swi
|
||||||
|
b .
|
||||||
|
|
||||||
|
EXPORT Undefined_Handler
|
||||||
|
Undefined_Handler:
|
||||||
|
push_svc_reg
|
||||||
|
bl rt_hw_trap_undef
|
||||||
|
b .
|
||||||
|
|
||||||
EXPORT SVC_Handler
|
EXPORT SVC_Handler
|
||||||
SVC_Handler:
|
SVC_Handler:
|
||||||
push_svc_reg
|
push_svc_reg
|
||||||
|
|
|
@ -19,7 +19,8 @@
|
||||||
@ import reference for interrupt routines
|
@ import reference for interrupt routines
|
||||||
|
|
||||||
.globl Reset_Handler
|
.globl Reset_Handler
|
||||||
.globl turnon_VFP
|
.globl Undefined_Handler
|
||||||
|
.globl SWI_Handler
|
||||||
.globl SVC_Handler
|
.globl SVC_Handler
|
||||||
.globl Prefetch_Handler
|
.globl Prefetch_Handler
|
||||||
.globl Abort_Handler
|
.globl Abort_Handler
|
||||||
|
@ -28,10 +29,11 @@
|
||||||
.globl FIQ_Handler
|
.globl FIQ_Handler
|
||||||
|
|
||||||
|
|
||||||
.globl system_vectors
|
.globl system_vector
|
||||||
system_vectors:
|
system_vector:
|
||||||
b Reset_Handler
|
b Reset_Handler
|
||||||
b turnon_VFP
|
b Undefined_Handler
|
||||||
|
b SWI_Handler
|
||||||
b SVC_Handler
|
b SVC_Handler
|
||||||
b Prefetch_Handler
|
b Prefetch_Handler
|
||||||
b Abort_Handler
|
b Abort_Handler
|
||||||
|
|
|
@ -20,6 +20,7 @@
|
||||||
|
|
||||||
IMPORT Reset_Handler
|
IMPORT Reset_Handler
|
||||||
IMPORT Undefined_Handler
|
IMPORT Undefined_Handler
|
||||||
|
IMPORT SWI_Handler
|
||||||
IMPORT SVC_Handler
|
IMPORT SVC_Handler
|
||||||
IMPORT Prefetch_Handler
|
IMPORT Prefetch_Handler
|
||||||
IMPORT Abort_Handler
|
IMPORT Abort_Handler
|
||||||
|
@ -35,6 +36,7 @@
|
||||||
system_vectors:
|
system_vectors:
|
||||||
b Reset_Handler
|
b Reset_Handler
|
||||||
b Undefined_Handler
|
b Undefined_Handler
|
||||||
|
b SWI_Handler
|
||||||
b SVC_Handler
|
b SVC_Handler
|
||||||
b Prefetch_Handler
|
b Prefetch_Handler
|
||||||
b Abort_Handler
|
b Abort_Handler
|
||||||
|
|
Loading…
Reference in New Issue