123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177 |
- 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
|