在调试一个代码时,编译能顺利编过。可是,就是不能执行。找了半天才发现,原来是浮点问题。由于6410支持硬件浮点,找了很久,才弄清楚怎么使用硬件浮点。
1.RVDS2.2 选择VFP2
2.在初始化时,配置协处理器来打开和配置浮点部件。
VFPEnable EQU (0x40000000)
;------------------------------------
; Enable VFP via Coprocessor Access Control Register
;------------------------------------
mrc p15, 0, r0, c1, c0, 2
orr r0, r0, #0x00F00000
mcr p15, 0, r0, c1, c0, 2
;------------------------------------
; Add following: SISO added
; Enable FPEXC enable bit to enable VFP
;------------------------------------
MOV r1, #0
MCR p15, 0, r1, c7, c5, 4
MOV r0,#VFPEnable
FMXR FPEXC, r0 ; FPEXC = r0
nop
; nop
; nop
; nop
; nop