Цитата(scifi @ Oct 1 2017, 08:49)

Спасибо!

Глянул:
Цитата
ARMv7-A => ARM Cortex-A5, ARM Cortex-A7, ARM Cortex-A8, ARM Cortex-A9, ARM Cortex-A12, ARM Cortex-A15, ARM Cortex-A17
Значит тот тулчейн который я скачал тоже подходит!
Вызвал раздельно компиляцию и линковку, появился sin, cos, но вызовы ОЧЕНЬ стрёмные, Hard FPU тут даже и не пахнет:
Код
000081b4 <main>:
81b4: e92d4800 push {fp, lr}
81b8: e28db004 add fp, sp, #4
81bc: e30a3de4 movw r3, #44516; 0xade4
81c0: e3403001 movt r3, #1
81c4: ed937a00 vldr s14, [r3]
81c8: e30a3de8 movw r3, #44520; 0xade8
81cc: e3403001 movt r3, #1
81d0: edd37a00 vldr s15, [r3]
81d4: ee777a27 vadd.f32 s15, s14, s15
81d8: eeb00a67 vmov.f32 s0, s15
81dc: fa000005 blx 81f8 <sinf>
81e0: eef07a40 vmov.f32 s15, s0
81e4: e30b364c movw r3, #46668; 0xb64c
81e8: e3403001 movt r3, #1
81ec: edc37a00 vstr s15, [r3]
81f0: e320f000 nop {0}
81f4: e8bd8800 pop {fp, pc}
000081f8 <sinf>:
81f8: ee10 3a10 vmov r3, s0
81fc: f640 72d8 movw r2, #4056; 0xfd8
8200: f6c3 7249 movt r2, #16201; 0x3f49
8204: b500 push {lr}
8206: b083 sub sp, #12
8208: f023 4300 bic.w r3, r3, #2147483648; 0x80000000
820c: 4293 cmp r3, r2
820e: dd1a ble.n 8246 <sinf+0x4e>
8210: f1b3 4fff cmp.w r3, #2139095040; 0x7f800000
8214: db04 blt.n 8220 <sinf+0x28>
8216: ee30 0a40 vsub.f32 s0, s0, s0
821a: b003 add sp, #12
821c: f85d fb04 ldr.w pc, [sp], #4
8220: 4668 mov r0, sp
8222: f000 f833 bl 828c <__ieee754_rem_pio2f>
8226: f000 0003 and.w r0, r0, #3
822a: 2801 cmp r0, #1
822c: d01d beq.n 826a <sinf+0x72>
822e: 2802 cmp r0, #2
8230: d011 beq.n 8256 <sinf+0x5e>
8232: b308 cbz r0, 8278 <sinf+0x80>
8234: eddd 0a01 vldr s1, [sp, #4]
8238: ed9d 0a00 vldr s0, [sp]
823c: f000 f960 bl 8500 <__kernel_cosf>
8240: eeb1 0a40 vneg.f32 s0, s0
8244: e7e9 b.n 821a <sinf+0x22>
8246: 2000 movs r0, #0
8248: eddf 0a0f vldr s1, [pc, #60]; 8288 <sinf+0x90>
824c: f000 fd08 bl 8c60 <__kernel_sinf>
8250: b003 add sp, #12
8252: f85d fb04 ldr.w pc, [sp], #4
8256: 2001 movs r0, #1
8258: eddd 0a01 vldr s1, [sp, #4]
825c: ed9d 0a00 vldr s0, [sp]
8260: f000 fcfe bl 8c60 <__kernel_sinf>
8264: eeb1 0a40 vneg.f32 s0, s0
8268: e7d7 b.n 821a <sinf+0x22>
826a: eddd 0a01 vldr s1, [sp, #4]
826e: ed9d 0a00 vldr s0, [sp]
8272: f000 f945 bl 8500 <__kernel_cosf>
8276: e7d0 b.n 821a <sinf+0x22>
8278: 2001 movs r0, #1
827a: eddd 0a01 vldr s1, [sp, #4]
827e: ed9d 0a00 vldr s0, [sp]
8282: f000 fced bl 8c60 <__kernel_sinf>
8286: e7c8 b.n 821a <sinf+0x22>
8288: 00000000 andeq r0, r0, r0
00008500 <__kernel_cosf>:
8500: ee10 3a10 vmov r3, s0
8504: f023 4300 bic.w r3, r3, #2147483648; 0x80000000
8508: f1b3 5f48 cmp.w r3, #838860800; 0x32000000
850c: da2c bge.n 8568 <__kernel_cosf+0x68>
850e: eefd 7ac0 vcvt.s32.f32 s15, s0
8512: ee17 3a90 vmov r3, s15
8516: 2b00 cmp r3, #0
8518: d067 beq.n 85ea <__kernel_cosf+0xea>
851a: ee20 7a00 vmul.f32 s14, s0, s0
851e: eddf 7a34 vldr s15, [pc, #208]; 85f0 <__kernel_cosf+0xf0>
8522: ed9f 5a34 vldr s10, [pc, #208]; 85f4 <__kernel_cosf+0xf4>
8526: eddf 5a34 vldr s11, [pc, #208]; 85f8 <__kernel_cosf+0xf8>
852a: ed9f 6a34 vldr s12, [pc, #208]; 85fc <__kernel_cosf+0xfc>
852e: ee07 5a27 vmla.f32 s10, s14, s15
8532: eddf 7a33 vldr s15, [pc, #204]; 8600 <__kernel_cosf+0x100>
8536: eddf 6a33 vldr s13, [pc, #204]; 8604 <__kernel_cosf+0x104>
853a: ee55 5a07 vnmls.f32 s11, s10, s14
853e: ee05 6a87 vmla.f32 s12, s11, s14
8542: ee56 7a07 vnmls.f32 s15, s12, s14
8546: ee47 6a87 vmla.f32 s13, s15, s14
854a: ee66 6a87 vmul.f32 s13, s13, s14
854e: ee20 0a20 vmul.f32 s0, s0, s1
8552: ee17 0a26 vnmls.f32 s0, s14, s13
8556: eef6 7a00 vmov.f32 s15, #96; 0x3f000000 0.5
855a: ee17 0a27 vnmls.f32 s0, s14, s15
855e: eef7 7a00 vmov.f32 s15, #112; 0x3f800000 1.0
8562: ee37 0ac0 vsub.f32 s0, s15, s0
8566: 4770 bx lr
8568: ee20 7a00 vmul.f32 s14, s0, s0
856c: f649 1299 movw r2, #39321; 0x9999
8570: eddf 7a1f vldr s15, [pc, #124]; 85f0 <__kernel_cosf+0xf0>
8574: f6c3 6299 movt r2, #16025; 0x3e99
8578: 4293 cmp r3, r2
857a: ed9f 5a1e vldr s10, [pc, #120]; 85f4 <__kernel_cosf+0xf4>
857e: eddf 5a1e vldr s11, [pc, #120]; 85f8 <__kernel_cosf+0xf8>
8582: ed9f 6a1e vldr s12, [pc, #120]; 85fc <__kernel_cosf+0xfc>
8586: ee07 5a27 vmla.f32 s10, s14, s15
858a: eddf 7a1d vldr s15, [pc, #116]; 8600 <__kernel_cosf+0x100>
858e: eddf 6a1d vldr s13, [pc, #116]; 8604 <__kernel_cosf+0x104>
8592: ee55 5a07 vnmls.f32 s11, s10, s14
8596: ee05 6a87 vmla.f32 s12, s11, s14
859a: ee56 7a07 vnmls.f32 s15, s12, s14
859e: ee47 6a87 vmla.f32 s13, s15, s14
85a2: ee66 6a87 vmul.f32 s13, s13, s14
85a6: ddd2 ble.n 854e <__kernel_cosf+0x4e>
85a8: 2200 movs r2, #0
85aa: f6c3 7248 movt r2, #16200; 0x3f48
85ae: 4293 cmp r3, r2
85b0: bfdc itt le
85b2: f103 437f addle.w r3, r3, #4278190080; 0xff000000
85b6: ee07 3a90 vmovle s15, r3
85ba: ee20 0a20 vmul.f32 s0, s0, s1
85be: bfd4 ite le
85c0: eeb7 6a00 vmovle.f32 s12, #112; 0x3f800000 1.0
85c4: eef5 7a02 vmovgt.f32 s15, #82; 0x3e900000 0.2812500
85c8: eef6 5a00 vmov.f32 s11, #96; 0x3f000000 0.5
85cc: bfd8 it le
85ce: ee36 6a67 vsuble.f32 s12, s12, s15
85d2: ee17 0a26 vnmls.f32 s0, s14, s13
85d6: ee57 7a25 vnmls.f32 s15, s14, s11
85da: bfc8 it gt
85dc: eeb6 6a07 vmovgt.f32 s12, #103; 0x3f380000 0.7187500
85e0: ee37 0ac0 vsub.f32 s0, s15, s0
85e4: ee36 0a40 vsub.f32 s0, s12, s0
85e8: 4770 bx lr
85ea: eeb7 0a00 vmov.f32 s0, #112; 0x3f800000 1.0
85ee: 4770 bx lr
85f0: ad47d74e stclge 7, cr13, [r7, #-312]; 0xfffffec8
85f4: 310f74f6 strdcc r7, [pc, -r6]
85f8: 3493f27c ldrcc pc, [r3], #636; 0x27c
85fc: 37d00d01 ldrbcc r0, [r0, r1, lsl #26]
8600: 3ab60b61 bcc fed8b38c <_stack+0xfed0b38c>
8604: 3d2aaaab vstmdbcc sl!, {s20-s190}
Это просто абзац!
Билдил этими командами:
Код
arm-none-eabi-gcc -std=c99 -march=armv7-a -mfloat-abi=hard -mfpu=vfpv4 -c fpu.c
arm-none-eabi-gcc --specs=rdimon.specs -march=armv7-a -mfloat-abi=hard -mfpu=vfpv4 -o fpu.elf fpu.o -lm
arm-none-eabi-objdump -D fpu.elf > fpu.asm
arm-none-eabi-objcopy -O binary fpu.elf fpu.bin
Куда дальше рыть?