178 lines
6.4 KiB
Plaintext
178 lines
6.4 KiB
Plaintext
|
|
|
|
|
|
ARM Macro Assembler Page 1
|
|
|
|
|
|
1 00000000 ;/*
|
|
2 00000000 ; * Copyright (c) 2006-2022, RT-Thread Development Team
|
|
3 00000000 ; *
|
|
4 00000000 ; * SPDX-License-Identifier: Apache-2.0
|
|
5 00000000 ; *
|
|
6 00000000 ; * Change Logs:
|
|
7 00000000 ; * Date Author Notes
|
|
8 00000000 ; * 2019-10-25 tyx first version
|
|
9 00000000 ; */
|
|
10 00000000
|
|
11 00000000 AREA |.text|, CODE, READONLY, ALIGN=
|
|
2
|
|
12 00000000 THUMB
|
|
13 00000000 REQUIRE8
|
|
14 00000000 PRESERVE8
|
|
15 00000000
|
|
16 00000000 IMPORT rt_secure_svc_handle
|
|
17 00000000
|
|
18 00000000 ;/*
|
|
19 00000000 ; * int tzcall(int id, rt_ubase_t arg0, rt_ubase_t arg1,
|
|
rt_ubase_t arg2);
|
|
20 00000000 ; */
|
|
21 00000000 tzcall PROC
|
|
22 00000000 EXPORT tzcall
|
|
23 00000000 DF01 SVC 1 ;call SVC 1
|
|
24 00000002 4770 BX LR
|
|
25 00000004
|
|
26 00000004 ENDP
|
|
27 00000004
|
|
28 00000004 tzcall_entry
|
|
PROC
|
|
29 00000004 B512 PUSH {R1, R4, LR}
|
|
30 00000006 460C MOV R4, R1 ; copy thread SP to
|
|
R4
|
|
31 00000008 CC0F LDMFD R4!, {r0 - r3} ; pop user stack
|
|
, get input arg0, a
|
|
rg1, arg2
|
|
32 0000000A E924 000F STMFD R4!, {r0 - r3} ; push stack, us
|
|
er stack recovery
|
|
33 0000000E F7FF FFFE BL rt_secure_svc_handle ; call fun
|
|
|
|
34 00000012 E8BD 4012 POP {R1, R4, LR}
|
|
35 00000016 6008 STR R0, [R1] ; update return val
|
|
ue
|
|
36 00000018 4770 BX LR ; return to thread
|
|
37 0000001A
|
|
38 0000001A ENDP
|
|
39 0000001A
|
|
40 0000001A syscall_entry
|
|
PROC
|
|
41 0000001A 4770 BX LR ; return to user ap
|
|
p
|
|
42 0000001C
|
|
43 0000001C ENDP
|
|
44 0000001C
|
|
45 0000001C ;/*
|
|
46 0000001C ; * void SVC_Handler(void);
|
|
47 0000001C ; */
|
|
48 0000001C SVC_Handler
|
|
|
|
|
|
|
|
ARM Macro Assembler Page 2
|
|
|
|
|
|
PROC
|
|
49 0000001C EXPORT SVC_Handler
|
|
50 0000001C
|
|
51 0000001C ; get SP, save to R1
|
|
52 0000001C F3EF 8108 MRS R1, MSP ;get fault context
|
|
from handler
|
|
53 00000020 F01E 0F04 TST LR, #0x04 ;if(!EXC_RETURN[2])
|
|
|
|
54 00000024 D001 BEQ get_sp_done
|
|
55 00000026 F3EF 8109 MRS R1, PSP ;get fault context
|
|
from thread
|
|
56 0000002A get_sp_done
|
|
57 0000002A
|
|
58 0000002A ; get svc index
|
|
59 0000002A 6988 LDR R0, [R1, #24]
|
|
60 0000002C F810 0C02 LDRB R0, [R0, #-2]
|
|
61 00000030
|
|
62 00000030 ;if svc == 0, do system call
|
|
63 00000030 2800 CMP R0, #0x0
|
|
64 00000032 D0FE BEQ syscall_entry
|
|
65 00000034
|
|
66 00000034 ;if svc == 1, do TrustZone call
|
|
67 00000034 2801 CMP R0, #0x1
|
|
68 00000036 D0FE BEQ tzcall_entry
|
|
69 00000038
|
|
70 00000038 ENDP
|
|
71 00000038
|
|
72 00000038 ALIGN
|
|
73 00000038
|
|
74 00000038 END
|
|
Command Line: --debug --xref --diag_suppress=9931 --cpu=Cortex-M33 --fpu=FPv5-S
|
|
P --depend=.\build\keil\obj\syscall_rvds.d -o.\build\keil\obj\syscall_rvds.o -I
|
|
D:\1_tool_prog\2_MDK\pack\Keil\STM32H5xx_DFP\1.1.0\Drivers\CMSIS\Device\ST\STM3
|
|
2H5xx\Include --predefine="__UVISION_VERSION SETA 536" --predefine="STM32H563xx
|
|
SETA 1" --list=syscall_rvds.lst ..\..\..\libcpu\arm\cortex-m33\syscall_rvds.S
|
|
|
|
|
|
|
|
ARM Macro Assembler Page 1 Alphabetic symbol ordering
|
|
Relocatable symbols
|
|
|
|
.text 00000000
|
|
|
|
Symbol: .text
|
|
Definitions
|
|
At line 11 in file ..\..\..\libcpu\arm\cortex-m33\syscall_rvds.S
|
|
Uses
|
|
None
|
|
Comment: .text unused
|
|
SVC_Handler 0000001C
|
|
|
|
Symbol: SVC_Handler
|
|
Definitions
|
|
At line 48 in file ..\..\..\libcpu\arm\cortex-m33\syscall_rvds.S
|
|
Uses
|
|
At line 49 in file ..\..\..\libcpu\arm\cortex-m33\syscall_rvds.S
|
|
Comment: SVC_Handler used once
|
|
get_sp_done 0000002A
|
|
|
|
Symbol: get_sp_done
|
|
Definitions
|
|
At line 56 in file ..\..\..\libcpu\arm\cortex-m33\syscall_rvds.S
|
|
Uses
|
|
At line 54 in file ..\..\..\libcpu\arm\cortex-m33\syscall_rvds.S
|
|
Comment: get_sp_done used once
|
|
syscall_entry 0000001A
|
|
|
|
Symbol: syscall_entry
|
|
Definitions
|
|
At line 40 in file ..\..\..\libcpu\arm\cortex-m33\syscall_rvds.S
|
|
Uses
|
|
At line 64 in file ..\..\..\libcpu\arm\cortex-m33\syscall_rvds.S
|
|
Comment: syscall_entry used once
|
|
tzcall 00000000
|
|
|
|
Symbol: tzcall
|
|
Definitions
|
|
At line 21 in file ..\..\..\libcpu\arm\cortex-m33\syscall_rvds.S
|
|
Uses
|
|
At line 22 in file ..\..\..\libcpu\arm\cortex-m33\syscall_rvds.S
|
|
Comment: tzcall used once
|
|
tzcall_entry 00000004
|
|
|
|
Symbol: tzcall_entry
|
|
Definitions
|
|
At line 28 in file ..\..\..\libcpu\arm\cortex-m33\syscall_rvds.S
|
|
Uses
|
|
At line 68 in file ..\..\..\libcpu\arm\cortex-m33\syscall_rvds.S
|
|
Comment: tzcall_entry used once
|
|
6 symbols
|
|
|
|
|
|
|
|
ARM Macro Assembler Page 1 Alphabetic symbol ordering
|
|
External symbols
|
|
|
|
rt_secure_svc_handle 00000000
|
|
|
|
Symbol: rt_secure_svc_handle
|
|
Definitions
|
|
At line 16 in file ..\..\..\libcpu\arm\cortex-m33\syscall_rvds.S
|
|
Uses
|
|
At line 33 in file ..\..\..\libcpu\arm\cortex-m33\syscall_rvds.S
|
|
Comment: rt_secure_svc_handle used once
|
|
1 symbol
|
|
340 symbols in table
|