24fc6e6ebb
You need to turn on RT_VFP_LAZY_STACKING in rtconfig.h. By default, RTT will turn on VFP for all threads and stack all the VFP registers. When doing lazy stacking, VFP will only be turned on for the thread who issued VFP instructions. Currently, if a thread turned on VFP, it cannot be turned off. RTT will never know what time the thread doesn't need VFP any more. The thread might could turn off the VFP for it self in proper time.
45 lines
1.0 KiB
NASM
45 lines
1.0 KiB
NASM
;-------------------------------------------------------------------------------
|
|
; sys_intvecs.asm
|
|
;
|
|
; (c) Texas Instruments 2009-2013, All rights reserved.
|
|
;
|
|
|
|
.sect ".intvecs"
|
|
.arm
|
|
|
|
;-------------------------------------------------------------------------------
|
|
; import reference for interrupt routines
|
|
|
|
.ref _c_int00
|
|
.ref _dabort
|
|
.ref IRQ_Handler
|
|
|
|
.def resetEntry
|
|
|
|
;-------------------------------------------------------------------------------
|
|
; interrupt vectors
|
|
|
|
resetEntry
|
|
b _c_int00
|
|
b turnon_VFP
|
|
svcEntry
|
|
b svcEntry
|
|
prefetchEntry
|
|
b prefetchEntry
|
|
b _dabort
|
|
reservedEntry
|
|
b reservedEntry
|
|
b IRQ_Handler
|
|
ldr pc,[pc,#-0x1b0]
|
|
|
|
.sect ".text"
|
|
turnon_VFP
|
|
; Enable FPV
|
|
STMDB sp!, {r0}
|
|
fmrx r0, fpexc
|
|
orr r0, r0, #0x40000000
|
|
fmxr fpexc, r0
|
|
LDMIA sp!, {r0}
|
|
subs pc, lr, #4
|
|
;-------------------------------------------------------------------------------
|