?? os_cpu_fpu_a.asm
字號:
;
;********************************************************************************************************
; uC/OS-II
; The Real-Time Kernel
;
;
; (c) Copyright 1992-2007, Micrium, Weston, FL
; All Rights Reserved
;
; Generic ARM Port
; VFP SUPPORT
;
; File : OS_CPU_FPU_A.ASM
; Version : V1.82
; By : Eric Shufro
;
; For : ARM7 or ARM9
; Mode : ARM or Thumb
; Toolchain : IAR's EWARM V4.11a and higher
;********************************************************************************************************
;
;********************************************************************************************************
; PUBLIC FUNCTIONS
;********************************************************************************************************
PUBLIC OS_CPU_FP_Restore
PUBLIC OS_CPU_FP_Save
;********************************************************************************************************
; CODE GENERATION DIRECTIVES
;********************************************************************************************************
RSEG CODE:CODE:NOROOT(2)
CODE32
;*********************************************************************************************************
; RESTORE VFP REGISTERS
; void OS_CPU_FP_Restore(void *pblk)
;
; Description : This function is called to restore the contents of the VFP registers during a context
; switch. It is assumed that a pointer to a storage area for the VFP registers is placed
; in the task's TCB (i.e. .OSTCBExtPtr).
; Arguments : pblk is passed to this function in R0 when called.
;
; Notes : Floating point math should NEVER be performed within an ISR as this will corrupt
; the state of the VFP registers for the last VFP task that ran. Instead, all floating
; point math should be performed within floating point enabled tasks ONLY.
;*********************************************************************************************************
OS_CPU_FP_Restore
FLDMIAS R0!, {S0-S31} ; Restore the VFP registers from pblk
BX LR ; Return to calling function
;*********************************************************************************************************
; SAVE VFP REGISTERS
; void OS_CPU_FP_Save(void *pblk)
;
; Description : This function is called to save the contents of the VFP registers during a context
; switch. It is assumed that a pointer to a storage area for the VFP registers is placed
; in the task's TCB (i.e. .OSTCBExtPtr).
;
; Arguments : pblk is passed to this function in R0 when called.
;
; Notes : Floating point math should NEVER be performed within an ISR as this will corrupt
; the state of the VFP registers for the last VFP task that ran. Instead, all floating
; point math should be performed within floating point enabled tasks ONLY.
;*********************************************************************************************************
OS_CPU_FP_Save
FSTMIAS R0!, {S0-S31} ; Save the VFP registers in pblk
BX LR ; Return to calling function
END
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -