9779963c6d
* 1. 新增了i2c/spi/rtc/crypto等驱动;2. 删除了部分文件中的未使用到的头文件包含; 3. 修改keil编译时pm文件atoi的头文件stdlib未包含的警告 * 修改文件格式 * BSP 1. 修改f4系列bsp的readme文件与工程文件 2. 修改f0系列源文件的版权信息、删除目前没有的库文件。 3. 其他 * 修改IAR环境下arm cortex-m33内核的syscall_iar.S文件编译错误 * 还原.gitignore文件 Co-authored-by: aisino2200 <90822414+aisino2200@users.noreply.github.com>
68 lines
1.7 KiB
ArmAsm
68 lines
1.7 KiB
ArmAsm
;/*
|
|
; * Copyright (c) 2006-2022, RT-Thread Development Team
|
|
; *
|
|
; * SPDX-License-Identifier: Apache-2.0
|
|
; *
|
|
; * Change Logs:
|
|
; * Date Author Notes
|
|
; * 2019-10-25 tyx first version
|
|
; * 2021-03-26 lxf modify bad instruction
|
|
; */
|
|
|
|
;/*
|
|
; * @addtogroup cortex-m33
|
|
; */
|
|
|
|
|
|
SECTION .text:CODE(2)
|
|
THUMB
|
|
REQUIRE8
|
|
PRESERVE8
|
|
|
|
IMPORT rt_secure_svc_handle
|
|
|
|
;/*
|
|
; * int tzcall(int id, rt_ubase_t arg0, rt_ubase_t arg1, rt_ubase_t arg2);
|
|
; */
|
|
EXPORT tzcall
|
|
tzcall:
|
|
SVC 1 ;/* call SVC 1 */
|
|
BX LR
|
|
|
|
tzcall_entry:
|
|
PUSH {R1, R4, LR}
|
|
MOV R4, R1 ;/* copy thread SP to R4 */
|
|
LDMFD R4!, {r0 - r3} ;/* pop user stack, get input arg0, arg1, arg2 */
|
|
STMFD R4!, {r0 - r3} ;/* push stack, user stack recovery */
|
|
BL rt_secure_svc_handle ;/* call fun */
|
|
POP {R1, R4, LR}
|
|
STR R0, [R1] ;/* update return value */
|
|
BX LR ;/* return to thread */
|
|
|
|
syscall_entry:
|
|
BX LR ;/* return to user app */
|
|
|
|
EXPORT SVC_Handler
|
|
SVC_Handler:
|
|
|
|
;/* get SP, save to R1 */
|
|
MRS R1, MSP ;/* get fault context from handler. */
|
|
TST LR, #0x04 ;/* if(!EXC_RETURN[2]) */
|
|
BEQ get_sp_done
|
|
MRS R1, PSP ;/* get fault context from thread. */
|
|
get_sp_done:
|
|
|
|
;/* get svc index */
|
|
LDR R0, [R1, #24]
|
|
LDRB R0, [R0, #-2]
|
|
|
|
;/* if svc == 0, do system call */
|
|
CMP R0, #0x0
|
|
BEQ syscall_entry
|
|
|
|
;/* if svc == 1, do TrustZone call */
|
|
CMP R0, #0x1
|
|
BEQ tzcall_entry
|
|
|
|
END
|