浏览代码

在配置文件“rtconfig.h”中增加硬浮点FPU的配置项,
浮点经常会用到,所以默认使用硬浮点。

勤为本 7 年之前
父节点
当前提交
574e22bdbd
共有 3 个文件被更改,包括 8 次插入0 次删除
  1. 2 0
      bsp/ls1cdev/drivers/board.c
  2. 2 0
      bsp/ls1cdev/rtconfig.h
  3. 4 0
      libcpu/mips/loongson_1c/stackframe_fpu.h

+ 2 - 0
bsp/ls1cdev/drivers/board.c

@@ -94,8 +94,10 @@ void rt_hw_board_init(void)
 	/* init operating system timer */
 	rt_hw_timer_init();
 
+#ifdef RT_USING_FPU
     /* init hardware fpu */
     rt_hw_fpu_init();
+#endif
 
 	rt_kprintf("current sr: 0x%08x\n", read_c0_status());
 }

+ 2 - 0
bsp/ls1cdev/rtconfig.h

@@ -75,6 +75,8 @@
 #define RT_UART_RX_BUFFER_SIZE	64
 // </section>
 
+#define RT_USING_FPU
+
 // <section name="RT_USING_CONSOLE" description="Using console" default="true" >
 #define RT_USING_CONSOLE
 // <integer name="RT_CONSOLEBUF_SIZE" description="The buffer size for console output" default="128" />

+ 4 - 0
libcpu/mips/loongson_1c/stackframe_fpu.h

@@ -37,6 +37,7 @@
     .macro SAVE_FPU
     .set push
     .set noreorder
+#ifdef RT_USING_FPU
     move k1, sp                     /* 保存现场 */
     and k0, k1, 0xFFFFFFF8          /* 8字节对齐 */    
     PTR_SUBU sp, k0, PT_FPU_SIZE    /* 计算栈底 */
@@ -57,6 +58,7 @@
     s.d $f28, PT_FPU_R28(sp)
     s.d $f30, PT_FPU_R30(sp)
     move sp, k1                     /* 恢复现场 */
+#endif
     .set reorder
     .set pop
     .endm
@@ -65,6 +67,7 @@
     .macro RESTORE_FPU
     .set push
     .set noreorder
+#ifdef RT_USING_FPU
     move k1, sp                     /* 保存现场 */
     and k0, k1, 0xFFFFFFF8          /* 8字节对齐 */
     PTR_SUBU sp, k0, PT_FPU_SIZE    /* 计算栈底*/
@@ -85,6 +88,7 @@
     l.d $f28, PT_FPU_R28(sp)
     l.d $f30, PT_FPU_R30(sp)
     move sp, k1                     /* 恢复现场 */
+#endif
     .set reorder
     .set pop
     .endm