×

Discussion Board

Results 1 to 5 of 5
  1. #1
    Registered User
    Join Date
    Aug 2008
    Posts
    31

    Nokia 5800 : support for hardware floating-point?

    Does the Nokia 5800 support application level use of hardware based floating-point code (using ARM VFP)?

    If yes, can I do this using GCCE?

    Thanks,
    Tobias

  2. #2
    Registered User
    Join Date
    Dec 2006
    Location
    London
    Posts
    41

    Re: Nokia 5800 : support for hardware floating-point?

    Well, there is a version of the ARM11 (the processor that the 5800 uses) that supports floating point. I can't find any exact source regarding which one it is. I think it's up to the processor itself if floating-point hardware is used for an operation so it shouldn't matter if you use GCCE or RVCT.

  3. #3
    Registered User
    Join Date
    Aug 2008
    Posts
    31

    Re: Nokia 5800 : support for hardware floating-point?

    According to http://www.pdadb.net, the 5800 uses the same SoC as the E51 : Freescale MXC300-30. This SoC contains an ARM1136JF-S core. The "F" stands for HW FPU.

    Unfortunately, the E51 does not seem to support application level HW FPU - pls see:

    http://discussion.forum.nokia.com/fo...813#post502813

    It is not enough to have HW FPU to be able to use that from app level - pls see:

    http://discussion.forum.nokia.com/fo...178#post502178

    So if anybody has an authorative answer, I'd be glad, since I am not able to get a physical device here in Germany currently.

  4. #4
    Registered User
    Join Date
    Dec 2007
    Location
    Питер
    Posts
    91

    Re: Nokia 5800 : support for hardware floating-point?

    So if anybody has an authorative answer, I'd be glad, since I am not able to get a physical device here in Germany currently.
    Yes 5800 support FPU. I check on device.

  5. #5
    Registered User
    Join Date
    Dec 2008
    Posts
    1

    Re: Nokia 5800 : support for hardware floating-point?

    Yes, its true, i got about 7 time growing perfomance with ARMFPU VFPV2 option on 5800 device. Unforunatly gcc does not generate VFP assembler code, but with inline assembler within your .cpp code its possible to reach VFP instructions. RVCT use all VFPv2 instructions "from the box" so use it for for hard floating pont application, if you have it, of course :)

    CPP code:
    int num_ops = 100000000;
    float a = 0.14f;
    float ff = 1.1514f;
    float c=0;

    for (int q=0;q<num_ops;q++){
    c += a * ff;
    }
    There is examle of assebler code generated by RVCT with vfp support:
    MOV r0,#0
    |L5.68|
    ADD r0,r0,#1
    FMACS s16,s17,s18
    CMP r0,r5
    BLT |L5.68|
    ADD r0,sp,#0x28


    and this is asm code, provided by GCC and RVCT withou vfp support:

    LDR r0,[sp,#0x3c]
    LDR r1,[sp,#0x38]
    MOVS r5,#0
    BL __aeabi_fmul
    STR r0,[sp,#0x40]
    |L1.182|
    LDR r0,[sp,#0x40]
    MOVS r1,r7
    BL __aeabi_fadd
    MOVS r7,r0
    ADDS r5,r5,#1
    CMP r5,r6
    BLT |L1.182|
    ADD r0,sp,#0x28

    As you can see, vithout vfp support are used fp emulated functions like __aeabi_fmul and __aeabi_fadd.

Similar Threads

  1. Python S60 Emulator
    By NAYSAMBO in forum Python
    Replies: 25
    Last Post: 2009-04-08, 10:22
  2. Nokia PC Connectivity能否链接到cdma手机上发送短信和其他操作?
    By bborn in forum Web Technologies and Multimedia Content- Web 技术和多媒体内容
    Replies: 2
    Last Post: 2004-05-04, 11:06

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •