注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

还东国的博客

行之苟有恒,久久自芬芳

 
 
 

日志

 
 

嵌入式开发实战3——uboot源码的修改之六编译(含SuperViVi雷同错误)  

2012-06-24 13:46:25|  分类: ARM开发 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
 

嵌入式开发实战3——uboot源码的修改之六编译

经过了漫长的前期的源码修改,终于在上上周把UBOOT的源码搞定,可是由于种种原因,耽误到了昨天才开始编译,弄到了很晚,其实主要还是编译的时间长的原因。特别是越到后期,时间越长,所以只好今天再总结。

将修改后的UBOOT源码整体拷贝到UBUNTU中,调用下面的命令:

Make distclean

Make mini2440_config

Make


结果又遇到了首次编译的错误,“mkconfig permission denied ”,直接chmod 777 mkconfig,就可以了。(见前期博文“嵌入式开发实战3——uboot源码的修改之一  ”和“嵌入式开发实战2——uboot的烧写和测试 ”)。
开始编译,第一个错误如下:
arm-linux-objcopy -O srec hello_world hello_world.srec 2>/dev/null
arm-linux-objcopy -O binary hello_world hello_world.bin 2>/dev/null
make[1]: Leaving directory `/home/ping/uboot-test/u-boot-2009.11/u-boot-2009.11/examples/standalone'
make -C examples/api all
make[1]: Entering directory `/home/ping/uboot-test/u-boot-2009.11/u-boot-2009.11/examples/api'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/home/ping/uboot-test/u-boot-2009.11/u-boot-2009.11/examples/api'
make -C cpu/arm920t start.o
make[1]: Entering directory `/home/ping/uboot-test/u-boot-2009.11/u-boot-2009.11/cpu/arm920t'
start.S:225:1: error: unterminated #ifndef
make[1]: Leaving directory `/home/ping/uboot-test/u-boot-2009.11/u-boot-2009.11/cpu/arm920t'
make[1]: Entering directory `/home/ping/uboot-test/u-boot-2009.11/u-boot-2009.11/cpu/arm920t'
arm-linux-gcc   -D__ASSEMBLY__ -g  -Os   -fno-common -ffixed-r8 -msoft-float  -D__KERNEL__ -DTEXT_BASE=0x33F80000 -I/home/ping/uboot-test/u-boot-2009.11/u-boot-2009.11/include -fno-builtin -ffreestanding -nostdinc -isystem /opt/FriendlyARM/toolschain/4.4.3/lib/gcc/arm-none-linux-gnueabi/4.4.3/include -pipe  -DCONFIG_ARM -D__ARM__ -marm  -mabi=aapcs-linux -mno-thumb-interwork -march=armv4   -o start.o start.S -c
In file included from /home/ping/uboot-test/u-boot-2009.11/u-boot-2009.11/include/config.h:2,
                 from start.S:28:
/home/ping/uboot-test/u-boot-2009.11/u-boot-2009.11/include/configs/mini2440.h:280:1: warning: "PHYS_FLASH_SIZE" redefined
/home/ping/uboot-test/u-boot-2009.11/u-boot-2009.11/include/configs/mini2440.h:229:1: warning: this is the location of the previous definition
/home/ping/uboot-test/u-boot-2009.11/u-boot-2009.11/include/configs/mini2440.h:281:1: warning: "CONFIG_SYS_MAX_FLASH_SECT" redefined
/home/ping/uboot-test/u-boot-2009.11/u-boot-2009.11/include/configs/mini2440.h:230:1: warning: this is the location of the previous definition
/home/ping/uboot-test/u-boot-2009.11/u-boot-2009.11/include/configs/mini2440.h:282:1: warning: "CONFIG_ENV_ADDR" redefined
/home/ping/uboot-test/u-boot-2009.11/u-boot-2009.11/include/configs/mini2440.h:231:1: warning: this is the location of the previous definition
start.S:225:1: error: unterminated #ifndef
make[1]: *** [start.o] Error 1
make[1]: Leaving directory `/home/ping/uboot-test/u-boot-2009.11/u-boot-2009.11/cpu/arm920t'
make: *** [cpu/arm920t/start.o] Error 2
打开/home/ping/uboot-test/u-boot-2009.11/u-boot-2009.11/cpu/arm920t下的start.S这个文件,找到225行,发现错误的原因是“#ifndef CONFIG_SKIP_RELOCATE_UBOOT”这一行没有注释掉,将其注释掉,再重新执行:make distclean---make mini2440_config—make
过了会儿出现第二个错误:
/home/ping/uboot-test/u-boot-2009.11/u-boot-2009.11/include/configs/mini2440.h:280:1: warning: "PHYS_FLASH_SIZE" redefined
/home/ping/uboot-test/u-boot-2009.11/u-boot-2009.11/include/configs/mini2440.h:229:1: warning: this is the location of the previous definition
/home/ping/uboot-test/u-boot-2009.11/u-boot-2009.11/include/configs/mini2440.h:281:1: warning: "CONFIG_SYS_MAX_FLASH_SECT" redefined
/home/ping/uboot-test/u-boot-2009.11/u-boot-2009.11/include/configs/mini2440.h:230:1: warning: this is the location of the previous definition
/home/ping/uboot-test/u-boot-2009.11/u-boot-2009.11/include/configs/mini2440.h:282:1: warning: "CONFIG_ENV_ADDR" redefined
/home/ping/uboot-test/u-boot-2009.11/u-boot-2009.11/include/configs/mini2440.h:231:1: warning: this is the location of the previous definition
In file included from /home/ping/uboot-test/u-boot-2009.11/u-boot-2009.11/include/s3c2410.h:69,
                 from speed.c:40:
/home/ping/uboot-test/u-boot-2009.11/u-boot-2009.11/include/s3c24x0.h:499: error: expected specifier-qualifier-list before '+' token
make[1]: *** [speed.o] Error 1
make[1]: Leaving directory `/home/ping/uboot-test/u-boot-2009.11/u-boot-2009.11/cpu/arm920t/s3c24x0'
make: *** [cpu/arm920t/s3c24x0/libs3c24x0.a] Error 2
发现是拷贝代码S3C24X0_REG32 GPJUP;时,将DIFF中的+忘记没有清除。直接清除,再重复报第三个错误:
timer.c:42:30: error: missing binary operator before token "defined"
timer.c: In function 'READ_TIMER':
timer.c:52: warning: implicit declaration of function 's3c24x0_get_base_timers'
timer.c:52: warning: initialization makes pointer from integer without a cast
timer.c:54: error: dereferencing pointer to incomplete type
timer.c: In function 'timer_init':
timer.c:62: warning: initialization makes pointer from integer without a cast
timer.c:67: error: dereferencing pointer to incomplete type
timer.c:79: error: dereferencing pointer to incomplete type
timer.c:81: error: dereferencing pointer to incomplete type
timer.c:82: error: dereferencing pointer to incomplete type
timer.c:85: error: dereferencing pointer to incomplete type
timer.c: In function 'reset_cpu':
timer.c:215: warning: implicit declaration of function 's3c24x0_get_base_watchdog'
timer.c:215: warning: assignment makes pointer from integer without a cast
timer.c:218: error: dereferencing pointer to incomplete type
timer.c:221: error: dereferencing pointer to incomplete type
timer.c:224: error: dereferencing pointer to incomplete type
make[1]: *** [timer.o] Error 1
make[1]: Leaving directory `/home/ping/uboot-test/u-boot-2009.11/u-boot-2009.11/cpu/arm920t/s3c24x0'
make: *** [cpu/arm920t/s3c24x0/libs3c24x0.a] Error
错误报得非常准:#elif defined(CONFIG_S3C2410)  ||defined (CONFIG_S3C2440),这一行代码中,丢失了||这个符号。
继续编译,第四个错误:
dm9000x.c: In function 'dm9000_init':
dm9000x.c:284: warning: unused variable 'lnk'
dm9000x.c: At top level:
dm9000x.c:376: warning: data definition has no type or storage class
dm9000x.c:376: warning: type defaults to 'int' in declaration of 'lnk'
dm9000x.c:376: error: initializer element is not constant
dm9000x.c:377: error: expected declaration specifiers or '...' before string constant
dm9000x.c:377: warning: data definition has no type or storage class
dm9000x.c:377: warning: type defaults to 'int' in declaration of 'printf'
dm9000x.c:377: warning: function declaration isn't a prototype
dm9000x.c:377: error: conflicting types for 'printf'
/home/ping/uboot-test/u-boot-2009.11/u-boot-2009.11/include/common.h:652: note: previous declaration of 'printf' was here
dm9000x.c:378: error: expected identifier or '(' before 'switch'
dm9000x.c:395: error: expected declaration specifiers or '...' before string constant
dm9000x.c:395: warning: data definition has no type or storage class
dm9000x.c:395: warning: type defaults to 'int' in declaration of 'printf'
dm9000x.c:395: warning: function declaration isn't a prototype
dm9000x.c:395: error: conflicting types for 'printf'
/home/ping/uboot-test/u-boot-2009.11/u-boot-2009.11/include/common.h:652: note: previous declaration of 'printf' was here
dm9000x.c:396: error: expected identifier or '(' before 'return'
dm9000x.c:397: error: expected identifier or '(' before '}' token
make[1]: *** [dm9000x.o] Error 1
make[1]: Leaving directory `/home/ping/uboot-test/u-boot-2009.11/u-boot-2009.11/drivers/net'
make: *** [drivers/net/libnet.a] Error。引起错误的是下面的代码:注意,这是修改好的:
    while (!(phy_read(1) & 0x20)) { /* autonegation complete bit */
        udelay(1000);
        i++;
        /*fjf add commentary and add break 2012-6-6-----------------------------------------*/
        //if (i == 10000) {
            //printf("could not establish link\n");
            //return 0;
 
            if (i == 1000) {
            printf("could not establish link\n");
            return 0;
           break;
       }
    }
 
    /* see what we've got */
    lnk = phy_read(17) >> 12;
错误的原因是修改代码,丢失了红色部分的大括号对应的上部的大括号,造成后面的lnk这个变量没有定义。
继续第五个错误:
cfb_console.c: In function 'video_display_bitmap':
cfb_console.c:835: error: expected ')' before numeric constant
cfb_console.c:836: error: expected ')' before numeric constant
cfb_console.c:841: error: expected ')' before numeric constant
cfb_console.c:846: error: expected ')' before numeric constant
make[1]: *** [cfb_console.o] Error 1
make[1]: Leaving directory `/home/ping/uboot-test/u-boot-2009.11/u-boot-2009.11/drivers/video'
make: *** [drivers/video/libvideo.a] Error 2
ping@ping-vm:~/uboot-test/u-boot-2009.11/u-boot-2009.11$
找到这两行:
        len = CONFIG_SYS_VIDEO_LOGO_MAX_SIZE;
        dst = malloc(CONFIG_SYS_VIDEO_LOGO_MAX_SIZE);
 
        if (gunzip(dst, CONFIG_SYS_VIDEO_LOGO_MAX_SIZE, (uchar *)bmp_image, &len) != 0) {
            printf ("Error: no valid bmp or bmp.gz image at %lx\n", bmp_image);
            free(dst);
            return 1;
        }
        if (len == CONFIG_SYS_VIDEO_LOGO_MAX_SIZE) {
            printf("Image could be truncated (increase CONFIG_SYS_VIDEO_LOGO_MAX_SIZE)!\n");
        }
发现都和宏CONFIG_SYS_VIDEO_LOGO_MAX_SIZE有关系,跳转到定义处,发现在mini2440.h里面,定义了这个宏,看见既有定义又有使用,就觉得不对头啊,怀疑是不是没加头文件,找着的过程,突然扫了一眼这个宏定义,发现了问题:
#define CONFIG_SYS_VIDEO_LOGO_MAX_SIZE (240*320  1024   100) /* 100 = slack */
晕,两个+号没有,写上。怪不得报缺小括号呢。
编译通过,出现第六个错误:
s3c2410_fb.c: In function 'video_hw_init':
s3c2410_fb.c:58: error: 'CFG_SYS_DEFAULT_VIDEO_MODE' undeclared (first use in this function)
s3c2410_fb.c:58: error: (Each undeclared identifier is reported only once
s3c2410_fb.c:58: error: for each function it appears in.)
make[1]: *** [s3c2410_fb.o] Error 1
make[1]: Leaving directory `/home/ping/uboot-test/u-boot-2009.11/u-boot-2009.11/drivers/video'
make: *** [drivers/video/libvideo.a] Error 2
ping@ping-vm:~/uboot-test/u-boot-2009.11/u-boot-2009.11$
这个简单,是报宏CFG_SYS_DEFAULT_VIDEO_MODE没有声明,直接跳过去,发现仍然是定义处多了两个+号,也就是DIFF的不同显示的符号。
第七个错误:
cmd_load.c: In function 'load_serial_xmodem':
cmd_load.c:1001: error: expected ';' before 'offset'
make[1]: *** [cmd_load.o] Error 1
make[1]: Leaving directory `/home/ping/uboot-test/u-boot-2009.11/u-boot-2009.11/common'
make: *** [common/libcommon.a] Error 2
ping@ping-vm:~/uboot-test/u-boot-2009.11/u-boot-2009.11$
找这行:
store_addr = addr    offset;
晕,和上一个一样,少了一个+号,添上。再编译,时间长了,快结束时,第八个错误出现了

flash.c:45: error: expected identifier or '(' before '+' token
flash.c:45: error: stray '#' in program
flash.c:46: error: stray '#' in program
flash.c: In function 'flash_erase':
flash.c:252: error: 'MEM_FLASH_ADDR1' undeclared (first use in this function)
flash.c:252: error: (Each undeclared identifier is reported only once
flash.c:252: error: for each function it appears in.)
flash.c:253: error: 'MEM_FLASH_ADDR2' undeclared (first use in this function)
flash.c:325: warning: label 'outahere' defined but not used
flash.c:198: warning: unused variable 'chip'
flash.c:195: warning: unused variable 'result'
flash.c: In function 'write_hword':
flash.c:369: error: 'MEM_FLASH_ADDR1' undeclared (first use in this function)
flash.c:370: error: 'MEM_FLASH_ADDR2' undeclared (first use in this function)
flash.c:348: warning: unused variable 'chip'
make[1]: *** [flash.o] Error 1
make[1]: Leaving directory `/home/ping/uboot-test/u-boot-2009.11/u-boot-2009.11/board/fjf/mini2440'
make: *** [board/fjf/mini2440/libmini2440.a] Error 2
ping@ping-vm:~/uboot-test/u-boot-2009.11/u-boot-2009.11$
这个说的就比较清楚了,望文生义,仍然是DIFF的+号捣得鬼,找到这段代码,发现两个宏未定义,跳到定义处,结果发现,多了+号,去掉后,自然就定义成功了。
接着编译出现了最后一个BUG,也就是第九个BGU:
在start.S中copy_loop:这个标签没有定义,这个可能是修改的不对,包括指导的手册可能都有问题,修改后的代码ble copy_loop,可是这段代码中却没有这个标签,都注释掉了,解开原UBOOT自带的这段代码(也就是这一小段代码使用源码),
如下:
/*this myend ---------------fjf--------------------------------------------*/
/*  2012-5-6 is wrong ,next is true,it is uboot self ower 2012-6-24  write by fjf */
    ldr r2, _armboot_start
    ldr r3, _bss_start 
    sub r2, r3, r2      /* r2 <- size of armboot            */
    add r2, r0, r2      /* r2 <- source end address         */
 
copy_loop:*/
    ldmia   r0!, {r3-r10}       /* copy from source address [r0]    */
    stmia   r1!, {r3-r10}       /* copy to   target address [r1]    */
    cmp r0, r2          /* until source end addreee [r2]    */
    ble copy_loop  
/*#endif*/  /* CONFIG_SKIP_RELOCATE_UBOOT */
/*fjf 2012-5-6 comment----------------fjf------------------------------------*/
这样,再编译,就出现了:
make[1]: Leaving directory `/home/ping/uboot-test/u-boot-2009.11/u-boot-2009.11/board/fjf/mini2440'
make -C /home/ping/uboot-test/u-boot-2009.11/u-boot-2009.11/cpu/arm920t/ u-boot.lds
make[1]: Entering directory `/home/ping/uboot-test/u-boot-2009.11/u-boot-2009.11/cpu/arm920t'
make[1]: Nothing to be done for `u-boot.lds'.
make[1]: Leaving directory `/home/ping/uboot-test/u-boot-2009.11/u-boot-2009.11/cpu/arm920t'
arm-linux-gcc -E -g  -Os   -fno-common -ffixed-r8 -msoft-float  -D__KERNEL__ -DTEXT_BASE=0x33F80000 -I/home/ping/uboot-test/u-boot-2009.11/u-boot-2009.11/include -fno-builtin -ffreestanding -nostdinc -isystem /opt/FriendlyARM/toolschain/4.4.3/lib/gcc/arm-none-linux-gnueabi/4.4.3/include -pipe  -DCONFIG_ARM -D__ARM__ -marm  -mabi=aapcs-linux -mno-thumb-interwork -march=armv4 -include /home/ping/uboot-test/u-boot-2009.11/u-boot-2009.11/include/u-boot/u-boot.lds.h  -ansi -D__ASSEMBLY__ -P - </home/ping/uboot-test/u-boot-2009.11/u-boot-2009.11/cpu/arm920t/u-boot.lds >u-boot.lds
UNDEF_SYM=`arm-linux-objdump -x board/fjf/mini2440/libmini2440.a lib_generic/libgeneric.a lib_generic/lzma/liblzma.a lib_generic/lzo/liblzo.a cpu/arm920t/libarm920t.a cpu/arm920t/s3c24x0/libs3c24x0.a lib_arm/libarm.a fs/cramfs/libcramfs.a fs/fat/libfat.a fs/fdos/libfdos.a fs/jffs2/libjffs2.a fs/reiserfs/libreiserfs.a fs/ext2/libext2fs.a fs/yaffs2/libyaffs2.a fs/ubifs/libubifs.a net/libnet.a disk/libdisk.a drivers/bios_emulator/libatibiosemu.a drivers/block/libblock.a drivers/dma/libdma.a drivers/fpga/libfpga.a drivers/gpio/libgpio.a drivers/hwmon/libhwmon.a drivers/i2c/libi2c.a drivers/input/libinput.a drivers/misc/libmisc.a drivers/mmc/libmmc.a drivers/mtd/libmtd.a drivers/mtd/nand/libnand.a drivers/mtd/onenand/libonenand.a drivers/mtd/ubi/libubi.a drivers/mtd/spi/libspi_flash.a drivers/net/libnet.a drivers/net/phy/libphy.a drivers/net/sk98lin/libsk98lin.a drivers/pci/libpci.a drivers/pcmcia/libpcmcia.a drivers/power/libpower.a drivers/spi/libspi.a drivers/rtc/librtc.a drivers/serial/libserial.a drivers/twserial/libtws.a drivers/usb/gadget/libusb_gadget.a drivers/usb/host/libusb_host.a drivers/usb/musb/libusb_musb.a drivers/video/libvideo.a drivers/watchdog/libwatchdog.a common/libcommon.a libfdt/libfdt.a api/libapi.a post/libpost.a | sed  -n -e 's/.*\(__u_boot_cmd_.*\)/-u\1/p'|sort|uniq`; cd /home/ping/uboot-test/u-boot-2009.11/u-boot-2009.11 && arm-linux-ld -Bstatic -T u-boot.lds  -Ttext 0x33F80000 $UNDEF_SYM cpu/arm920t/start.o --start-group lib_generic/libgeneric.a lib_generic/lzma/liblzma.a lib_generic/lzo/liblzo.a cpu/arm920t/libarm920t.a cpu/arm920t/s3c24x0/libs3c24x0.a lib_arm/libarm.a fs/cramfs/libcramfs.a fs/fat/libfat.a fs/fdos/libfdos.a fs/jffs2/libjffs2.a fs/reiserfs/libreiserfs.a fs/ext2/libext2fs.a fs/yaffs2/libyaffs2.a fs/ubifs/libubifs.a net/libnet.a disk/libdisk.a drivers/bios_emulator/libatibiosemu.a drivers/block/libblock.a drivers/dma/libdma.a drivers/fpga/libfpga.a drivers/gpio/libgpio.a drivers/hwmon/libhwmon.a drivers/i2c/libi2c.a drivers/input/libinput.a drivers/misc/libmisc.a drivers/mmc/libmmc.a drivers/mtd/libmtd.a drivers/mtd/nand/libnand.a drivers/mtd/onenand/libonenand.a drivers/mtd/ubi/libubi.a drivers/mtd/spi/libspi_flash.a drivers/net/libnet.a drivers/net/phy/libphy.a drivers/net/sk98lin/libsk98lin.a drivers/pci/libpci.a drivers/pcmcia/libpcmcia.a drivers/power/libpower.a drivers/spi/libspi.a drivers/rtc/librtc.a drivers/serial/libserial.a drivers/twserial/libtws.a drivers/usb/gadget/libusb_gadget.a drivers/usb/host/libusb_host.a drivers/usb/musb/libusb_musb.a drivers/video/libvideo.a drivers/watchdog/libwatchdog.a common/libcommon.a libfdt/libfdt.a api/libapi.a post/libpost.a board/fjf/mini2440/libmini2440.a --end-group /home/ping/uboot-test/u-boot-2009.11/u-boot-2009.11/lib_arm/eabi_compat.o -L /opt/FriendlyARM/toolschain/4.4.3/lib/gcc/arm-none-linux-gnueabi/4.4.3 -lgcc -Map u-boot.map -o u-boot
arm-linux-objcopy -O srec u-boot u-boot.srec
arm-linux-objcopy --gap-fill=0xff -O binary u-boot u-boot.bin
ping@ping-vm:~/uboot-test/u-boot-2009.11/u-boot-2009.11$
这表明UBOOT编译成功了。在目录下可以看到UBOOT的BIN文件,拷贝出来。烧写到开发板上,蜂鸣器鸣叫后出现
U-Boot 2009.11 (Jun 23 2012 - 22:40:53)
U-Boot 2009.11 (Jun 23 2012 - 22:40:53)
 modified by fpcfjf (fpcfjf@163.com)
 start Linux forever!!
I2C:   ready
DRAM:  64 MB
Flash:  2 MB
NAND:  256 MiB
*** Warning - bad CRC or NAND, using default environment
Video: 240x320x16 20kHz 62Hz
In:    serial
Out:   serial
Err:   serial
Net:   dm9000
U-Boot 2009.11 (Jun 23 2012 - 22:40:53)
modified by fpcfjf
(fpcfjf@163.com)
Love Linux forever!!
Hit any key to stop autoboot:  0
dm9000 i/o: 0x20000300, id: 0x90000a46
DM9000: running in 16 bit mode
MAC: 08:08:11:18:12:27
could not establish link
Using dm9000 device
File transfer via NFS from server 192.168.1.1; our IP address is 192.168.1.169
Filename '/home/tekkaman/working/nfs/zImage.img'.
Load address: 0x30008000
这表明,基本没有什么问题了。
更细节的问题,会在后面不断的进行详细的说明和再次修改。准备把这个东西应用到飞凌的开发板上,做一个横向的兼容修改。
最后做一个小小的总结:
一、太马虎,比如最后这次就把uboot拷贝而不是拷贝的uboot.bin,其它的错误也可以看到相应的原因。
二、曾经在单位的同事编译SUPERVIVI中遇到了软硬浮点的问题,在编译测试第一版UBOOT时,也提醒过注意,但没有记清:
uses hardware FP, whereas u-boot uses software FP
说明一下,在VIVI和UBOOT里,好多使用了硬浮点,也就是通过硬件来进行浮点运算,但在其源码中,为了满足一些不同条件的硬件,也提供了软浮点的运算,就是通过软件来进行浮点的运算。当然后者肯定不如前者快。所以这个错误是因为编译器的设置造成的。解决的方法有两种:
一个是使用不同的版本的编译器或者不同版本的源码。另外一个是修改编译器设置:

diff -aurNp u-boot-2009.11/cpu/arm920t/config.mk u-boot-2009.11_tekkaman/cpu/arm920t/config.mk

--- u-boot-2009.11/cpu/arm920t/config.mk 2009-12-16 06:20:54.000000000 +0800

+++ u-boot-2009.11_tekkaman/cpu/arm920t/config.mk 2010-03-28 17:16:12.000000000 +0800

@@ -21,7 +21,8 @@

# MA 02111-1307 USA

#

-PLATFORM_RELFLAGS += -fno-common -ffixed-r8 -msoft-float

+PLATFORM_RELFLAGS += -fno-common -ffixed-r8

+#-msoft-float

PLATFORM_CPPFLAGS += -march=armv4


其实主要是把软浮点的编译选项去掉。直接使用默认的硬浮点计算。
努力,不辍今朝。
  评论这张
 
阅读(3347)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017