Skip to content

Commit 3f1a62c

Browse files
kurisaWRbb666
authored andcommitted
[libcpu][drivers] cortex-r52 abnormal takeover and software rtc naming change
1 parent 1cf97d8 commit 3f1a62c

File tree

6 files changed

+70
-36
lines changed

6 files changed

+70
-36
lines changed

components/drivers/rtc/dev_alarm.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,11 @@ static rt_err_t alarm_set(struct rt_alarm *alarm)
5252
struct rt_rtc_wkalarm wkalarm;
5353
rt_err_t ret;
5454

55+
#ifdef RT_USING_SOFT_RTC
56+
device = rt_device_find("sw_rtc");
57+
#else
5558
device = rt_device_find("rtc");
59+
#endif
5660

5761
if (device == RT_NULL)
5862
{

components/drivers/rtc/dev_soft_rtc.c

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -226,8 +226,8 @@ static int rt_soft_rtc_init(void)
226226
{
227227
return 0;
228228
}
229-
/* make sure only one 'rtc' device */
230-
RT_ASSERT(!rt_device_find("rtc"));
229+
/* make sure only one 'sw_rtc' device */
230+
RT_ASSERT(!rt_device_find("sw_rtc"));
231231

232232
#ifdef RT_USING_ALARM
233233
rt_timer_init(&alarm_time,
@@ -258,7 +258,9 @@ static int rt_soft_rtc_init(void)
258258
/* no private */
259259
soft_rtc_dev.user_data = RT_NULL;
260260

261-
rt_device_register(&soft_rtc_dev, "rtc", RT_DEVICE_FLAG_RDWR);
261+
rt_device_register(&soft_rtc_dev, "sw_rtc", RT_DEVICE_FLAG_RDWR);
262+
263+
source_device = &soft_rtc_dev;
262264

263265
init_ok = RT_TRUE;
264266

@@ -317,7 +319,7 @@ static void cmd_rtc_sync(int argc, char **argv)
317319
rt_kprintf("local time: %.*s", 25, ctime(&now));
318320
rt_kprintf("timestamps: %ld\n", (long)tv.tv_sec);
319321
}
320-
MSH_CMD_EXPORT_ALIAS(cmd_rtc_sync, rtc_sync, Update time by real rtc);
322+
MSH_CMD_EXPORT_ALIAS(cmd_rtc_sync, rtc_sync, Update time by soft rtc);
321323
#endif
322324

323325
#endif /* RT_USING_SYSTEM_WORKQUEUE */

libcpu/arm/cortex-r52/start_gcc.S

Lines changed: 37 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,6 @@
1212
@ (c) Texas Instruments 2009-2013, All rights reserved.
1313
@
1414

15-
//#include <rtconfig.h>
16-
1715
.equ Mode_USR, 0x10
1816
.equ Mode_FIQ, 0x11
1917
.equ Mode_IRQ, 0x12
@@ -47,7 +45,7 @@ stack_top:
4745
.text
4846
.arm
4947

50-
.globl _c_int00
48+
.globl entry
5149

5250
.globl _reset
5351
_reset:
@@ -122,7 +120,7 @@ next2:
122120
next3:
123121
bl next4
124122
next4:
125-
ldr lr, =_c_int00
123+
ldr lr, =entry
126124
bx lr
127125

128126
.globl data_init
@@ -479,26 +477,38 @@ turnon_VFP:
479477
str lr, [r0, #14*4] @/* Save calling PC */
480478
.endm
481479

482-
.globl vector_svc
483-
vector_svc:
484-
push_svc_reg
485-
bl rt_hw_trap_svc
486-
b .
487-
488-
.globl vector_pabort
489-
vector_pabort:
490-
push_svc_reg
491-
bl rt_hw_trap_pabt
492-
b .
493-
494-
.globl vector_dabort
495-
vector_dabort:
496-
push_svc_reg
497-
bl rt_hw_trap_dabt
498-
b .
499-
500-
.globl vector_resv
501-
vector_resv:
502-
push_svc_reg
503-
bl rt_hw_trap_resv
504-
b .
480+
.globl SWI_Handler
481+
SWI_Handler:
482+
push_svc_reg
483+
bl rt_hw_trap_swi
484+
b .
485+
486+
.globl Undefined_Handler
487+
Undefined_Handler:
488+
push_svc_reg
489+
bl rt_hw_trap_undef
490+
b .
491+
492+
.globl SVC_Handler
493+
SVC_Handler:
494+
push_svc_reg
495+
b rt_hw_trap_svc
496+
b .
497+
498+
.globl Prefetch_Handler
499+
Prefetch_Handler:
500+
push_svc_reg
501+
b rt_hw_trap_pabt
502+
b .
503+
504+
.globl Abort_Handler
505+
Abort_Handler:
506+
push_svc_reg
507+
b rt_hw_trap_dabt
508+
b .
509+
510+
.globl Reserved_Handler
511+
Reserved_Handler:
512+
push_svc_reg
513+
b rt_hw_trap_resv
514+
b .

libcpu/arm/cortex-r52/start_iar.S

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,13 @@ ABT_Stack_Size EQU 0x00000000
3131
FIQ_Stack_Size EQU 0x00001000
3232
IRQ_Stack_Size EQU 0x00001000
3333
34-
IMPORT _c_int00
34+
IMPORT entry
3535
IMPORT rt_hw_trap_svc
3636
IMPORT rt_hw_trap_pabt
3737
IMPORT rt_hw_trap_dabt
3838
IMPORT rt_hw_trap_resv
39+
IMPORT rt_hw_trap_swi
40+
IMPORT rt_hw_trap_undef
3941
IMPORT system_init
4042
IMPORT __iar_program_start
4143
@@ -308,6 +310,18 @@ turnon_VFP:
308310
str lr, [r0, #14*4] ;@/* Save calling PC */
309311
endm
310312

313+
EXPORT SWI_Handler
314+
SWI_Handler:
315+
push_svc_reg
316+
bl rt_hw_trap_swi
317+
b .
318+
319+
EXPORT Undefined_Handler
320+
Undefined_Handler:
321+
push_svc_reg
322+
bl rt_hw_trap_undef
323+
b .
324+
311325
EXPORT SVC_Handler
312326
SVC_Handler:
313327
push_svc_reg

libcpu/arm/cortex-r52/vector_gcc.S

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@
1919
@ import reference for interrupt routines
2020

2121
.globl Reset_Handler
22-
.globl turnon_VFP
22+
.globl Undefined_Handler
23+
.globl SWI_Handler
2324
.globl SVC_Handler
2425
.globl Prefetch_Handler
2526
.globl Abort_Handler
@@ -28,10 +29,11 @@
2829
.globl FIQ_Handler
2930

3031

31-
.globl system_vectors
32-
system_vectors:
32+
.globl system_vector
33+
system_vector:
3334
b Reset_Handler
34-
b turnon_VFP
35+
b Undefined_Handler
36+
b SWI_Handler
3537
b SVC_Handler
3638
b Prefetch_Handler
3739
b Abort_Handler

libcpu/arm/cortex-r52/vector_iar.S

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020

2121
IMPORT Reset_Handler
2222
IMPORT Undefined_Handler
23+
IMPORT SWI_Handler
2324
IMPORT SVC_Handler
2425
IMPORT Prefetch_Handler
2526
IMPORT Abort_Handler
@@ -35,6 +36,7 @@
3536
system_vectors:
3637
b Reset_Handler
3738
b Undefined_Handler
39+
b SWI_Handler
3840
b SVC_Handler
3941
b Prefetch_Handler
4042
b Abort_Handler

0 commit comments

Comments
 (0)