|
|
  |
Atmel SAM3U4, Различные вопросы |
|
|
|
Jan 5 2012, 16:03
|

Любитель
    
Группа: Свой
Сообщений: 1 864
Регистрация: 20-08-06
Из: Тольятти
Пользователь №: 19 695

|
Цитата(aaarrr @ Jan 5 2012, 19:41)  Самбой его! Для сравнения ведь все равно, на самом деле.
Оговорюсь только, что сам этим продуктом (самбой то есть) пользоваться избегаю, ибо глюк на глюке и тормоз. Самописные программаторы выручают. Хотя в случае SAM3U именно её и применял. Спасибо, а я уже и не помню, когда в последний раз пользовался самбой  Совсем забыл о её существовании... Пришлось написать свой загрузчик для Кейла, точнее - модифицировать существующие, чтобы загрузка шла сразу в оба банка. Там у них даже проект с исходниками загрузчиков есть, только немного подправить пришлось и адреса под себя изменить  Вроде шить стало нормально, хотя и подвисает в процессе секунд на 15, безо всяких ошибок. Помнится, старый MDK тоже страдал такой проблемой, ну да бог с ним. А что я взялся - вчера взглянул поглубже в скомпилированный код МП3 декодера, функции Polyphase() - всё таки IAR до RealView пока не дотянулся по качеству кода. Во первых, IAR сгенерил код длиннее, и стека при этом захапал аж 400 (!) байт под раскладывание аргументов цикла. А у RealView код компактнее, быстрее по времени на 15% и стека гораздо меньше хавает. Эх, теперь вот подумалось - а какого чёрта я на ИАР перебрался?  Сорри за небольшой оффтоп  ЗЫ: вот, к примеру, код цикла от IAR: CODE
269 /* main convolution loop: sum1L = samples 1, 2, 3, ... 15 sum2L = samples 31, 30, ... 17 */ 270 coef = coefBase + 16; \ 000002F6 5A98 LDR R0,[SP, #+360] \ 000002F8 00F24002 ADDW R2,R0,#+64 271 vb1 = vbuf + 64; \ 000002FC 04F20010 ADDW R0,R4,#+256 \ 00000300 0090 STR R0,[SP, #+0] 272 pcm += 2; \ 00000302 5998 LDR R0,[SP, #+356] \ 00000304 001D ADDS R0,R0,#+4 \ 00000306 0190 STR R0,[SP, #+4] 273 274 /* right now, the compiler creates bad asm from this... */ 275 for (i = 15; i > 0; i--) \ 00000308 0F20 MOVS R0,#+15 \ 0000030A 0B90 STR R0,[SP, #+44] 276 { 277 sum1L = sum2L = rndVal; 278 sum1R = sum2R = rndVal; 279 280 MC2S(0) \ ??mp3_PolyphaseStereo_0: \ 0000030C 52F8041B LDR R1,[R2], #+4 \ 00000310 52F8043B LDR R3,[R2], #+4 \ 00000314 5691 STR R1,[SP, #+344] \ 00000316 0098 LDR R0,[SP, #+0] \ 00000318 D0F800C0 LDR R12,[R0, #+0] \ 0000031C 0A93 STR R3,[SP, #+40] \ 0000031E 5C42 RSBS R4,R3,#+0 \ 00000320 5194 STR R4,[SP, #+324] \ 00000322 0098 LDR R0,[SP, #+0] \ 00000324 C56D LDR R5,[R0, #+92] \ 00000326 2F95 STR R5,[SP, #+188] \ 00000328 0991 STR R1,[SP, #+36] \ 0000032A 1591 STR R1,[SP, #+84] \ 0000032C 0098 LDR R0,[SP, #+0] \ 0000032E D0F88050 LDR R5,[R0, #+128] \ 00000332 2E95 STR R5,[SP, #+184] \ 00000334 5093 STR R3,[SP, #+320] \ 00000336 1494 STR R4,[SP, #+80] \ 00000338 0098 LDR R0,[SP, #+0] \ 0000033A D0F8DC30 LDR R3,[R0, #+220] \ 0000033E 2D93 STR R3,[SP, #+180] \ 00000340 4F91 STR R1,[SP, #+316] 281 MC2S(1) \ 00000342 52F8041B LDR R1,[R2], #+4 \ 00000346 52F8043B LDR R3,[R2], #+4 \ 0000034A 4E91 STR R1,[SP, #+312] \ 0000034C 0098 LDR R0,[SP, #+0] \ 0000034E 4468 LDR R4,[R0, #+4] \ 00000350 2C94 STR R4,[SP, #+176] \ 00000352 0893 STR R3,[SP, #+32] \ 00000354 5C42 RSBS R4,R3,#+0 \ 00000356 4D94 STR R4,[SP, #+308] \ 00000358 0098 LDR R0,[SP, #+0] \ 0000035A 856D LDR R5,[R0, #+88] \ 0000035C 2B95 STR R5,[SP, #+172] \ 0000035E 0791 STR R1,[SP, #+28] \ 00000360 1391 STR R1,[SP, #+76] \ 00000362 0098 LDR R0,[SP, #+0] \ 00000364 D0F88450 LDR R5,[R0, #+132] \ 00000368 2A95 STR R5,[SP, #+168] \ 0000036A 4C93 STR R3,[SP, #+304] \ 0000036C 1294 STR R4,[SP, #+72] \ 0000036E 0098 LDR R0,[SP, #+0] \ 00000370 D0F8D830 LDR R3,[R0, #+216] \ 00000374 2993 STR R3,[SP, #+164] \ 00000376 4B91 STR R1,[SP, #+300] 282 MC2S(2) \ 00000378 52F8041B LDR R1,[R2], #+4 \ 0000037C 52F8043B LDR R3,[R2], #+4 \ 00000380 4A91 STR R1,[SP, #+296] \ 00000382 0098 LDR R0,[SP, #+0] \ 00000384 8468 LDR R4,[R0, #+8] \ 00000386 2894 STR R4,[SP, #+160] \ 00000388 0693 STR R3,[SP, #+24] \ 0000038A 5C42 RSBS R4,R3,#+0 \ 0000038C 4994 STR R4,[SP, #+292] \ 0000038E 0098 LDR R0,[SP, #+0] \ 00000390 456D LDR R5,[R0, #+84] \ 00000392 2795 STR R5,[SP, #+156] \ 00000394 0591 STR R1,[SP, #+20] \ 00000396 1191 STR R1,[SP, #+68] \ 00000398 0098 LDR R0,[SP, #+0] \ 0000039A D0F88850 LDR R5,[R0, #+136] \ 0000039E 2695 STR R5,[SP, #+152] \ 000003A0 4893 STR R3,[SP, #+288] \ 000003A2 1094 STR R4,[SP, #+64] \ 000003A4 0098 LDR R0,[SP, #+0] \ 000003A6 D0F8D430 LDR R3,[R0, #+212] \ 000003AA 2593 STR R3,[SP, #+148] \ 000003AC 4791 STR R1,[SP, #+284] 283 MC2S(3) \ 000003AE 52F8041B LDR R1,[R2], #+4 \ 000003B2 52F8043B LDR R3,[R2], #+4 \ 000003B6 4691 STR R1,[SP, #+280] \ 000003B8 0098 LDR R0,[SP, #+0] \ 000003BA C468 LDR R4,[R0, #+12] \ 000003BC 2494 STR R4,[SP, #+144] \ 000003BE 0493 STR R3,[SP, #+16] \ 000003C0 5C42 RSBS R4,R3,#+0 \ 000003C2 4594 STR R4,[SP, #+276] \ 000003C4 0098 LDR R0,[SP, #+0] \ 000003C6 056D LDR R5,[R0, #+80] \ 000003C8 2395 STR R5,[SP, #+140] \ 000003CA 0391 STR R1,[SP, #+12] \ 000003CC 0F91 STR R1,[SP, #+60] \ 000003CE 0098 LDR R0,[SP, #+0] \ 000003D0 D0F88C50 LDR R5,[R0, #+140] \ 000003D4 2295 STR R5,[SP, #+136] \ 000003D6 4493 STR R3,[SP, #+272] \ 000003D8 4394 STR R4,[SP, #+268] \ 000003DA 0098 LDR R0,[SP, #+0] \ 000003DC D0F8D030 LDR R3,[R0, #+208] \ 000003E0 2193 STR R3,[SP, #+132] \ 000003E2 4291 STR R1,[SP, #+264] 284 MC2S(4) \ 000003E4 52F8041B LDR R1,[R2], #+4 \ 000003E8 52F8043B LDR R3,[R2], #+4 \ 000003EC 4191 STR R1,[SP, #+260] \ 000003EE 0098 LDR R0,[SP, #+0] \ 000003F0 0469 LDR R4,[R0, #+16] \ 000003F2 2094 STR R4,[SP, #+128] \ 000003F4 0293 STR R3,[SP, #+8] \ 000003F6 5C42 RSBS R4,R3,#+0 \ 000003F8 4094 STR R4,[SP, #+256] \ 000003FA 0098 LDR R0,[SP, #+0] \ 000003FC C56C LDR R5,[R0, #+76] \ 000003FE 1F95 STR R5,[SP, #+124] \ 00000400 0E91 STR R1,[SP, #+56] \ 00000402 3F91 STR R1,[SP, #+252] \ 00000404 0098 LDR R0,[SP, #+0] \ 00000406 D0F89050 LDR R5,[R0, #+144] \ 0000040A 1E95 STR R5,[SP, #+120] \ 0000040C 3E93 STR R3,[SP, #+248] \ 0000040E 3D94 STR R4,[SP, #+244] \ 00000410 0098 LDR R0,[SP, #+0] \ 00000412 D0F8CC30 LDR R3,[R0, #+204] \ 00000416 1D93 STR R3,[SP, #+116] \ 00000418 3C91 STR R1,[SP, #+240] 285 MC2S(5) \ 0000041A 52F8041B LDR R1,[R2], #+4 \ 0000041E 52F8043B LDR R3,[R2], #+4 \ 00000422 3B91 STR R1,[SP, #+236] \ 00000424 0098 LDR R0,[SP, #+0] \ 00000426 4469 LDR R4,[R0, #+20] \ 00000428 1C94 STR R4,[SP, #+112] \ 0000042A 0D93 STR R3,[SP, #+52] \ 0000042C 5C42 RSBS R4,R3,#+0 \ 0000042E 3A94 STR R4,[SP, #+232] \ 00000430 0098 LDR R0,[SP, #+0] \ 00000432 D0F848A0 LDR R10,[R0, #+72] \ 00000436 0C91 STR R1,[SP, #+48] \ 00000438 3991 STR R1,[SP, #+228] \ 0000043A 0098 LDR R0,[SP, #+0] \ 0000043C D0F89450 LDR R5,[R0, #+148] \ 00000440 1B95 STR R5,[SP, #+108] \ 00000442 3893 STR R3,[SP, #+224] \ 00000444 3794 STR R4,[SP, #+220] \ 00000446 0098 LDR R0,[SP, #+0] \ 00000448 D0F8C830 LDR R3,[R0, #+200] \ 0000044C 1A93 STR R3,[SP, #+104] \ 0000044E 3691 STR R1,[SP, #+216] 286 MC2S(6) \ 00000450 52F8049B LDR R9,[R2], #+4 \ 00000454 52F8045B LDR R5,[R2], #+4 \ 00000458 CDF8D490 STR R9,[SP, #+212] \ 0000045C 0098 LDR R0,[SP, #+0] \ 0000045E 8169 LDR R1,[R0, #+24] \ 00000460 1991 STR R1,[SP, #+100] \ 00000462 6942 RSBS R1,R5,#+0 \ 00000464 3491 STR R1,[SP, #+208] \ 00000466 0098 LDR R0,[SP, #+0] \ 00000468 436C LDR R3,[R0, #+68] \ 0000046A 1893 STR R3,[SP, #+96] \ 0000046C CDF8CC90 STR R9,[SP, #+204] \ 00000470 0098 LDR R0,[SP, #+0] \ 00000472 D0F89830 LDR R3,[R0, #+152] \ 00000476 1793 STR R3,[SP, #+92] \ 00000478 3295 STR R5,[SP, #+200] \ 0000047A 3191 STR R1,[SP, #+196] \ 0000047C 0098 LDR R0,[SP, #+0] \ 0000047E D0F8C410 LDR R1,[R0, #+196] \ 00000482 1691 STR R1,[SP, #+88] \ 00000484 CDF8C090 STR R9,[SP, #+192] 287 MC2S(7) \ 00000488 52F8043B LDR R3,[R2], #+4 \ 0000048C 52F804EB LDR LR,[R2], #+4 \ 00000490 0098 LDR R0,[SP, #+0] \ 00000492 D0F81C80 LDR R8,[R0, #+28] \ 00000496 046C LDR R4,[R0, #+64] \ 00000498 0A98 LDR R0,[SP, #+40] \ 0000049A 80FB0C01 SMULL R0,R1,R0,R12 \ 0000049E C3FB0401 SMLAL R0,R1,R3,R4 \ 000004A2 2F9E LDR R6,[SP, #+188] \ 000004A4 099F LDR R7,[SP, #+36] \ 000004A6 C7FB0601 SMLAL R0,R1,R7,R6 \ 000004AA 2C9E LDR R6,[SP, #+176] \ 000004AC 089F LDR R7,[SP, #+32] \ 000004AE C7FB0601 SMLAL R0,R1,R7,R6 \ 000004B2 2B9E LDR R6,[SP, #+172] \ 000004B4 079F LDR R7,[SP, #+28] \ 000004B6 C7FB0601 SMLAL R0,R1,R7,R6 \ 000004BA 289E LDR R6,[SP, #+160] \ 000004BC 069F LDR R7,[SP, #+24] \ 000004BE C7FB0601 SMLAL R0,R1,R7,R6 \ 000004C2 279E LDR R6,[SP, #+156] \ 000004C4 059F LDR R7,[SP, #+20] \ 000004C6 C7FB0601 SMLAL R0,R1,R7,R6 \ 000004CA 249E LDR R6,[SP, #+144] \ 000004CC 049F LDR R7,[SP, #+16] \ 000004CE C7FB0601 SMLAL R0,R1,R7,R6 \ 000004D2 239E LDR R6,[SP, #+140] \ 000004D4 039F LDR R7,[SP, #+12] \ 000004D6 C7FB0601 SMLAL R0,R1,R7,R6 \ 000004DA 209E LDR R6,[SP, #+128] \ 000004DC 029F LDR R7,[SP, #+8] \ 000004DE C7FB0601 SMLAL R0,R1,R7,R6 \ 000004E2 1F9E LDR R6,[SP, #+124] \ 000004E4 0E9F LDR R7,[SP, #+56] \ 000004E6 C7FB0601 SMLAL R0,R1,R7,R6 \ 000004EA 1C9E LDR R6,[SP, #+112] \ 000004EC 0D9F LDR R7,[SP, #+52] \ 000004EE C7FB0601 SMLAL R0,R1,R7,R6 \ 000004F2 0C9F LDR R7,[SP, #+48] \ 000004F4 C7FB0A01 SMLAL R0,R1,R7,R10 \ 000004F8 199F LDR R7,[SP, #+100] \ 000004FA C5FB0701 SMLAL R0,R1,R5,R7 \ 000004FE 189D LDR R5,[SP, #+96] \ 00000500 C9FB0501 SMLAL R0,R1,R9,R5 \ 00000504 CEFB0801 SMLAL R0,R1,LR,R8 \ 00000508 10F10070 ADDS R0,R0,#+33554432 \ 0000050C 41F10001 ADC R1,R1,#+0 \ 00000510 CDE95401 STRD R0,R1,[SP, #+336] \ 00000514 0098 LDR R0,[SP, #+0] \ 00000516 D0F89C70 LDR R7,[R0, #+156] \ 0000051A D0F8C050 LDR R5,[R0, #+192] \ 0000051E CEF10006 RSB R6,LR,#+0 \ 00000522 2E98 LDR R0,[SP, #+184] \ 00000524 1599 LDR R1,[SP, #+84] \ 00000526 81FB0001 SMULL R0,R1,R1,R0 \ 0000052A C6FB0501 SMLAL R0,R1,R6,R5 \ 0000052E DDF8B490 LDR R9,[SP, #+180] \ 00000532 149E LDR R6,[SP, #+80] \ 00000534 C6FB0901 SMLAL R0,R1,R6,R9 \ 00000538 DDF8A890 LDR R9,[SP, #+168] \ 0000053C 139E LDR R6,[SP, #+76] \ 0000053E C6FB0901 SMLAL R0,R1,R6,R9 \ 00000542 DDF8A490 LDR R9,[SP, #+164] \ 00000546 129E LDR R6,[SP, #+72] \ 00000548 C6FB0901 SMLAL R0,R1,R6,R9 \ 0000054C DDF89890 LDR R9,[SP, #+152] \ 00000550 119E LDR R6,[SP, #+68] \ 00000552 C6FB0901 SMLAL R0,R1,R6,R9 \ 00000556 DDF89490 LDR R9,[SP, #+148] \ 0000055A 109E LDR R6,[SP, #+64] \ 0000055C C6FB0901 SMLAL R0,R1,R6,R9 \ 00000560 DDF88890 LDR R9,[SP, #+136] \ 00000564 0F9E LDR R6,[SP, #+60] \ 00000566 C6FB0901 SMLAL R0,R1,R6,R9 \ 0000056A DDF88490 LDR R9,[SP, #+132] \ 0000056E 439E LDR R6,[SP, #+268] \ 00000570 C6FB0901 SMLAL R0,R1,R6,R9 \ 00000574 DDF87890 LDR R9,[SP, #+120] \ 00000578 3F9E LDR R6,[SP, #+252] \ 0000057A C6FB0901 SMLAL R0,R1,R6,R9 \ 0000057E DDF87490 LDR R9,[SP, #+116] \ 00000582 3D9E LDR R6,[SP, #+244] \ 00000584 C6FB0901 SMLAL R0,R1,R6,R9 \ 00000588 DDF86C90 LDR R9,[SP, #+108] \ 0000058C 399E LDR R6,[SP, #+228] \ 0000058E C6FB0901 SMLAL R0,R1,R6,R9 \ 00000592 DDF86890 LDR R9,[SP, #+104] \ 00000596 379E LDR R6,[SP, #+220] \ 00000598 C6FB0901 SMLAL R0,R1,R6,R9 \ 0000059C DDF85C90 LDR R9,[SP, #+92] \ 000005A0 339E LDR R6,[SP, #+204] \ 000005A2 C6FB0901 SMLAL R0,R1,R6,R9 \ 000005A6 DDF85890 LDR R9,[SP, #+88] \ 000005AA 319E LDR R6,[SP, #+196] \ 000005AC C6FB0901 SMLAL R0,R1,R6,R9 \ 000005B0 C3FB0701 SMLAL R0,R1,R3,R7 \ 000005B4 10F10070 ADDS R0,R0,#+33554432 \ 000005B8 41F10001 ADC R1,R1,#+0 \ 000005BC CDE95201 STRD R0,R1,[SP, #+328] \ 000005C0 2E98 LDR R0,[SP, #+184] \ 000005C2 5099 LDR R1,[SP, #+320] \ 000005C4 81FB0001 SMULL R0,R1,R1,R0 \ 000005C8 C3FB0501 SMLAL R0,R1,R3,R5 \ 000005CC 2D9D LDR R5,[SP, #+180] \ 000005CE 4F9E LDR R6,[SP, #+316] \ 000005D0 C6FB0501 SMLAL R0,R1,R6,R5 \ 000005D4 2A9D LDR R5,[SP, #+168] \ 000005D6 4C9E LDR R6,[SP, #+304] \ 000005D8 C6FB0501 SMLAL R0,R1,R6,R5 \ 000005DC 299D LDR R5,[SP, #+164] \ 000005DE 4B9E LDR R6,[SP, #+300] \ 000005E0 C6FB0501 SMLAL R0,R1,R6,R5 \ 000005E4 269D LDR R5,[SP, #+152] \ 000005E6 489E LDR R6,[SP, #+288] \ 000005E8 C6FB0501 SMLAL R0,R1,R6,R5 \ 000005EC 259D LDR R5,[SP, #+148] \ 000005EE 479E LDR R6,[SP, #+284] \ 000005F0 C6FB0501 SMLAL R0,R1,R6,R5 \ 000005F4 229D LDR R5,[SP, #+136] \ 000005F6 449E LDR R6,[SP, #+272] \ 000005F8 C6FB0501 SMLAL R0,R1,R6,R5 \ 000005FC 219D LDR R5,[SP, #+132] \ 000005FE 429E LDR R6,[SP, #+264] \ 00000600 C6FB0501 SMLAL R0,R1,R6,R5 \ 00000604 1E9D LDR R5,[SP, #+120] \ 00000606 3E9E LDR R6,[SP, #+248] \ 00000608 C6FB0501 SMLAL R0,R1,R6,R5 \ 0000060C 1D9D LDR R5,[SP, #+116] \ 0000060E 3C9E LDR R6,[SP, #+240] \ 00000610 C6FB0501 SMLAL R0,R1,R6,R5 \ 00000614 1B9D LDR R5,[SP, #+108] \ 00000616 389E LDR R6,[SP, #+224] \ 00000618 C6FB0501 SMLAL R0,R1,R6,R5 \ 0000061C 1A9D LDR R5,[SP, #+104] \ 0000061E 369E LDR R6,[SP, #+216] \ 00000620 C6FB0501 SMLAL R0,R1,R6,R5 \ 00000624 179D LDR R5,[SP, #+92] \ 00000626 329E LDR R6,[SP, #+200] \ 00000628 C6FB0501 SMLAL R0,R1,R6,R5 \ 0000062C 169D LDR R5,[SP, #+88] \ 0000062E 309E LDR R6,[SP, #+192] \ 00000630 C6FB0501 SMLAL R0,R1,R6,R5 \ 00000634 CEFB0701 SMLAL R0,R1,LR,R7 \ 00000638 10F10070 ADDS R0,R0,#+33554432 \ 0000063C 41F10001 ADC R1,R1,#+0 288 289 vb1 += 64; \ 00000640 009D LDR R5,[SP, #+0] \ 00000642 05F20017 ADDW R7,R5,#+256 \ 00000646 0097 STR R7,[SP, #+0] 290 *(pcm + 0) = ClipToShort((int)SAR64(sum1L, (32-CSHIFT)), DEF_NFRACBITS); \ 00000648 CEF1000E RSB LR,LR,#+0 \ 0000064C 2746 MOV R7,R4 \ 0000064E 569C LDR R4,[SP, #+344] \ 00000650 84FB0C45 SMULL R4,R5,R4,R12 \ 00000654 CEFB0745 SMLAL R4,R5,LR,R7 \ 00000658 2F9F LDR R7,[SP, #+188] \ 0000065A 519E LDR R6,[SP, #+324] \ 0000065C C6FB0745 SMLAL R4,R5,R6,R7 \ 00000660 2C9F LDR R7,[SP, #+176] \ 00000662 4E9E LDR R6,[SP, #+312] \ 00000664 C6FB0745 SMLAL R4,R5,R6,R7 \ 00000668 2B9F LDR R7,[SP, #+172] \ 0000066A 4D9E LDR R6,[SP, #+308] \ 0000066C C6FB0745 SMLAL R4,R5,R6,R7 \ 00000670 289F LDR R7,[SP, #+160] \ 00000672 4A9E LDR R6,[SP, #+296] \ 00000674 C6FB0745 SMLAL R4,R5,R6,R7 \ 00000678 279F LDR R7,[SP, #+156] \ 0000067A 499E LDR R6,[SP, #+292] \ 0000067C C6FB0745 SMLAL R4,R5,R6,R7 \ 00000680 249F LDR R7,[SP, #+144] \ 00000682 469E LDR R6,[SP, #+280] \ 00000684 C6FB0745 SMLAL R4,R5,R6,R7 \ 00000688 239F LDR R7,[SP, #+140] \ 0000068A 459E LDR R6,[SP, #+276] \ 0000068C C6FB0745 SMLAL R4,R5,R6,R7 \ 00000690 209F LDR R7,[SP, #+128] \ 00000692 419E LDR R6,[SP, #+260] \ 00000694 C6FB0745 SMLAL R4,R5,R6,R7 \ 00000698 1F9F LDR R7,[SP, #+124] \ 0000069A 409E LDR R6,[SP, #+256] \ 0000069C C6FB0745 SMLAL R4,R5,R6,R7 \ 000006A0 1C9F LDR R7,[SP, #+112] \ 000006A2 3B9E LDR R6,[SP, #+236] \ 000006A4 C6FB0745 SMLAL R4,R5,R6,R7 \ 000006A8 3A9F LDR R7,[SP, #+232] \ 000006AA C7FB0A45 SMLAL R4,R5,R7,R10 \ 000006AE 199F LDR R7,[SP, #+100] \ 000006B0 359E LDR R6,[SP, #+212] \ 000006B2 C6FB0745 SMLAL R4,R5,R6,R7 \ 000006B6 189F LDR R7,[SP, #+96] \ 000006B8 349E LDR R6,[SP, #+208] \ 000006BA C6FB0745 SMLAL R4,R5,R6,R7 \ 000006BE C3FB0845 SMLAL R4,R5,R3,R8 \ 000006C2 14F10074 ADDS R4,R4,#+33554432 \ 000006C6 45F10005 ADC R5,R5,#+0 \ 000006CA 240D LSRS R4,R4,#+20 \ 000006CC 44EA0534 ORR R4,R4,R5, LSL #+12 \ 000006D0 A311 ASRS R3,R4,#+6 \ 000006D2 DC17 ASRS R4,R3,#+31 \ 000006D4 B4EBE33F CMP R4,R3, ASR #+15 \ 000006D8 1CBF ITT NE \ 000006DA 84F4FE43 EORNE R3,R4,#0x7F00 \ 000006DE 83F0FF03 EORNE R3,R3,#0xFF \ 000006E2 019C LDR R4,[SP, #+4] \ 000006E4 2380 STRH R3,[R4, #+0] 291 *(pcm + 1) = ClipToShort((int)SAR64(sum1R, (32-CSHIFT)), DEF_NFRACBITS); \ 000006E6 DDE95245 LDRD R4,R5,[SP, #+328] \ 000006EA 240D LSRS R4,R4,#+20 \ 000006EC 44EA0534 ORR R4,R4,R5, LSL #+12 \ 000006F0 A311 ASRS R3,R4,#+6 \ 000006F2 DC17 ASRS R4,R3,#+31 \ 000006F4 B4EBE33F CMP R4,R3, ASR #+15 \ 000006F8 1CBF ITT NE \ 000006FA 84F4FE43 EORNE R3,R4,#0x7F00 \ 000006FE 83F0FF03 EORNE R3,R3,#0xFF \ 00000702 019C LDR R4,[SP, #+4] \ 00000704 6380 STRH R3,[R4, #+2] 292 *(pcm + 2*2*i + 0) = ClipToShort((int)SAR64(sum2L, (32-CSHIFT)), DEF_NFRACBITS); \ 00000706 DDE95445 LDRD R4,R5,[SP, #+336] \ 0000070A 240D LSRS R4,R4,#+20 \ 0000070C 44EA0534 ORR R4,R4,R5, LSL #+12 \ 00000710 A311 ASRS R3,R4,#+6 \ 00000712 DC17 ASRS R4,R3,#+31 \ 00000714 B4EBE33F CMP R4,R3, ASR #+15 \ 00000718 1CBF ITT NE \ 0000071A 84F4FE43 EORNE R3,R4,#0x7F00 \ 0000071E 83F0FF03 EORNE R3,R3,#0xFF \ 00000722 0B9C LDR R4,[SP, #+44] \ 00000724 019D LDR R5,[SP, #+4] \ 00000726 25F83430 STRH R3,[R5, R4, LSL #+3] 293 *(pcm + 2*2*i + 1) = ClipToShort((int)SAR64(sum2R, (32-CSHIFT)), DEF_NFRACBITS); \ 0000072A 000D LSRS R0,R0,#+20 \ 0000072C 40EA0130 ORR R0,R0,R1, LSL #+12 \ 00000730 8011 ASRS R0,R0,#+6 \ 00000732 C117 ASRS R1,R0,#+31 \ 00000734 B1EBE03F CMP R1,R0, ASR #+15 \ 00000738 1CBF ITT NE \ 0000073A 81F4FE40 EORNE R0,R1,#0x7F00 \ 0000073E 80F0FF00 EORNE R0,R0,#0xFF \ 00000742 0B99 LDR R1,[SP, #+44] \ 00000744 019B LDR R3,[SP, #+4] \ 00000746 03EBC101 ADD R1,R3,R1, LSL #+3 \ 0000074A 4880 STRH R0,[R1, #+2] 294 pcm += 2; \ 0000074C 0198 LDR R0,[SP, #+4] \ 0000074E 001D ADDS R0,R0,#+4 \ 00000750 0190 STR R0,[SP, #+4] 295 } \ 00000752 0B98 LDR R0,[SP, #+44] \ 00000754 401E SUBS R0,R0,#+1 \ 00000756 0B90 STR R0,[SP, #+44] \ 00000758 0128 CMP R0,#+1 \ 0000075A BFF6D7AD BGE.W ??mp3_PolyphaseStereo_0
а вот RealView: CODE
/* main convolution loop: sum1L = samples 1, 2, 3, ... 15 sum2L = samples 31, 30, ... 17 */ ;;;270 coef = coefBase + 16; ;;;271 vb1 = vbuf + 64; ;;;272 pcm += 2; 000272 1d05 ADDS r5,r0,#4 000274 f1020440 ADD r4,r2,#0x40 ;270 000278 f5017180 ADD r1,r1,#0x100 ;271 ;;;273 ;;;274 /* right now, the compiler creates bad asm from this... */ ;;;275 for (i = 15; i > 0; i--) { 00027c f05f060f MOVS.W r6,#0xf |L2.640| ;;;276 sum1L = sum2L = rndVal; ;;;277 sum1R = sum2R = rndVal; ;;;278 ;;;279 MC2S(0) 000280 f8547b04 LDR r7,[r4],#4 000284 f8d19000 LDR r9,[r1,#0] 000288 f8548b04 LDR r8,[r4],#4 00028c 469b MOV r11,r3 00028e 46e6 MOV lr,r12 000290 fbc9be08 SMLAL r11,lr,r9,r8 000294 f8d1a05c LDR r10,[r1,#0x5c] 000298 4662 MOV r2,r12 00029a 4618 MOV r0,r3 00029c fbc90207 SMLAL r0,r2,r9,r7 0002a0 fbcabe07 SMLAL r11,lr,r10,r7 0002a4 f1c80900 RSB r9,r8,#0 0002a8 fbca0209 SMLAL r0,r2,r10,r9 0002ac f8cde038 STR lr,[sp,#0x38] 0002b0 f8cdb050 STR r11,[sp,#0x50] 0002b4 f8cd901c STR r9,[sp,#0x1c] 0002b8 e9cd2003 STRD r2,r0,[sp,#0xc] 0002bc f8d19080 LDR r9,[r1,#0x80] 0002c0 469a MOV r10,r3 0002c2 4662 MOV r2,r12 0002c4 fbc9a208 SMLAL r10,r2,r9,r8 0002c8 f8d100dc LDR r0,[r1,#0xdc] 0002cc 469b MOV r11,r3 0002ce 46e6 MOV lr,r12 0002d0 fbc9be07 SMLAL r11,lr,r9,r7 0002d4 f8dd901c LDR r9,[sp,#0x1c] 0002d8 fbc0a207 SMLAL r10,r2,r0,r7 0002dc fbc0be09 SMLAL r11,lr,r0,r9 0002e0 f8cda020 STR r10,[sp,#0x20] 0002e4 920a STR r2,[sp,#0x28] 0002e6 e9cdeb01 STRD lr,r11,[sp,#4] ;;;280 MC2S(1) 0002ea f8548b04 LDR r8,[r4],#4 0002ee 684f LDR r7,[r1,#4] 0002f0 f8549b04 LDR r9,[r4],#4 0002f4 f8dde038 LDR lr,[sp,#0x38] 0002f8 f8ddb050 LDR r11,[sp,#0x50] 0002fc e9dd2003 LDRD r2,r0,[sp,#0xc] 000300 fbc7be09 SMLAL r11,lr,r7,r9 000304 f8d1a058 LDR r10,[r1,#0x58] 000308 fbc70208 SMLAL r0,r2,r7,r8 00030c f1c90700 RSB r7,r9,#0 000310 fbcabe08 SMLAL r11,lr,r10,r8 000314 fbca0207 SMLAL r0,r2,r10,r7 000318 f8cde038 STR lr,[sp,#0x38] 00031c f8cdb050 STR r11,[sp,#0x50] 000320 9707 STR r7,[sp,#0x1c] 000322 e9cd2003 STRD r2,r0,[sp,#0xc] 000326 f8d17084 LDR r7,[r1,#0x84] 00032a f8dda020 LDR r10,[sp,#0x20] 00032e 9a0a LDR r2,[sp,#0x28] 000330 e9ddeb01 LDRD lr,r11,[sp,#4] 000334 fbc7a209 SMLAL r10,r2,r7,r9 000338 f8d100d8 LDR r0,[r1,#0xd8] 00033c fbc7be08 SMLAL r11,lr,r7,r8 000340 9f07 LDR r7,[sp,#0x1c] 000342 fbc0a208 SMLAL r10,r2,r0,r8 000346 fbc0be07 SMLAL r11,lr,r0,r7 00034a f8cda020 STR r10,[sp,#0x20] 00034e 920a STR r2,[sp,#0x28] 000350 e9cdeb01 STRD lr,r11,[sp,#4] ;;;281 MC2S(2) 000354 f8548b04 LDR r8,[r4],#4 000358 688f LDR r7,[r1,#8] 00035a f8549b04 LDR r9,[r4],#4 00035e f8dde038 LDR lr,[sp,#0x38] 000362 f8ddb050 LDR r11,[sp,#0x50] 000366 e9dd2003 LDRD r2,r0,[sp,#0xc] 00036a fbc7be09 SMLAL r11,lr,r7,r9 00036e f8d1a054 LDR r10,[r1,#0x54] 000372 fbc70208 SMLAL r0,r2,r7,r8 000376 f1c90700 RSB r7,r9,#0 00037a fbcabe08 SMLAL r11,lr,r10,r8 00037e fbca0207 SMLAL r0,r2,r10,r7 000382 f8cde038 STR lr,[sp,#0x38] 000386 f8cdb050 STR r11,[sp,#0x50] 00038a 9707 STR r7,[sp,#0x1c] 00038c e9cd2003 STRD r2,r0,[sp,#0xc] 000390 f8d17088 LDR r7,[r1,#0x88] 000394 f8dda020 LDR r10,[sp,#0x20] 000398 9a0a LDR r2,[sp,#0x28] 00039a e9ddeb01 LDRD lr,r11,[sp,#4] 00039e fbc7a209 SMLAL r10,r2,r7,r9 0003a2 f8d100d4 LDR r0,[r1,#0xd4] 0003a6 fbc7be08 SMLAL r11,lr,r7,r8 0003aa 9f07 LDR r7,[sp,#0x1c] 0003ac fbc0a208 SMLAL r10,r2,r0,r8 0003b0 fbc0be07 SMLAL r11,lr,r0,r7 0003b4 f8cda020 STR r10,[sp,#0x20] 0003b8 920a STR r2,[sp,#0x28] 0003ba e9cdeb01 STRD lr,r11,[sp,#4] ;;;282 MC2S(3) 0003be f8548b04 LDR r8,[r4],#4 0003c2 68cf LDR r7,[r1,#0xc] 0003c4 f8549b04 LDR r9,[r4],#4 0003c8 f8dde038 LDR lr,[sp,#0x38] 0003cc f8ddb050 LDR r11,[sp,#0x50] 0003d0 e9dd2003 LDRD r2,r0,[sp,#0xc] 0003d4 fbc7be09 SMLAL r11,lr,r7,r9 0003d8 f8d1a050 LDR r10,[r1,#0x50] 0003dc fbc70208 SMLAL r0,r2,r7,r8 0003e0 f1c90700 RSB r7,r9,#0 0003e4 fbcabe08 SMLAL r11,lr,r10,r8 0003e8 fbca0207 SMLAL r0,r2,r10,r7 0003ec f8cde038 STR lr,[sp,#0x38] 0003f0 f8cdb050 STR r11,[sp,#0x50] 0003f4 9707 STR r7,[sp,#0x1c] 0003f6 e9cd2003 STRD r2,r0,[sp,#0xc] 0003fa f8d1708c LDR r7,[r1,#0x8c] 0003fe f8dda020 LDR r10,[sp,#0x20] 000402 9a0a LDR r2,[sp,#0x28] 000404 e9ddeb01 LDRD lr,r11,[sp,#4] 000408 fbc7a209 SMLAL r10,r2,r7,r9 00040c f8d100d0 LDR r0,[r1,#0xd0] 000410 fbc7be08 SMLAL r11,lr,r7,r8 000414 9f07 LDR r7,[sp,#0x1c] 000416 fbc0a208 SMLAL r10,r2,r0,r8 00041a fbc0be07 SMLAL r11,lr,r0,r7 00041e f8cda020 STR r10,[sp,#0x20] 000422 920a STR r2,[sp,#0x28] 000424 e9cdeb01 STRD lr,r11,[sp,#4] ;;;283 MC2S(4) 000428 f8548b04 LDR r8,[r4],#4 00042c 690f LDR r7,[r1,#0x10] 00042e f8549b04 LDR r9,[r4],#4 000432 f8dde038 LDR lr,[sp,#0x38] 000436 f8ddb050 LDR r11,[sp,#0x50] 00043a e9dd2003 LDRD r2,r0,[sp,#0xc] 00043e fbc7be09 SMLAL r11,lr,r7,r9 000442 f8d1a04c LDR r10,[r1,#0x4c] 000446 fbc70208 SMLAL r0,r2,r7,r8 00044a f1c90700 RSB r7,r9,#0 00044e fbcabe08 SMLAL r11,lr,r10,r8 000452 fbca0207 SMLAL r0,r2,r10,r7 000456 f8cde038 STR lr,[sp,#0x38] 00045a f8cdb050 STR r11,[sp,#0x50] 00045e 9707 STR r7,[sp,#0x1c] 000460 e9cd2003 STRD r2,r0,[sp,#0xc] 000464 f8d17090 LDR r7,[r1,#0x90] 000468 f8dda020 LDR r10,[sp,#0x20] 00046c 9a0a LDR r2,[sp,#0x28] 00046e e9ddeb01 LDRD lr,r11,[sp,#4] 000472 fbc7a209 SMLAL r10,r2,r7,r9 000476 f8d100cc LDR r0,[r1,#0xcc] 00047a fbc7be08 SMLAL r11,lr,r7,r8 00047e 9f07 LDR r7,[sp,#0x1c] 000480 fbc0a208 SMLAL r10,r2,r0,r8 000484 fbc0be07 SMLAL r11,lr,r0,r7 000488 f8cda020 STR r10,[sp,#0x20] 00048c 920a STR r2,[sp,#0x28] 00048e e9cdeb01 STRD lr,r11,[sp,#4] ;;;284 MC2S(5) 000492 f8548b04 LDR r8,[r4],#4 000496 e9dd2003 LDRD r2,r0,[sp,#0xc] 00049a f8549b04 LDR r9,[r4],#4 00049e 694f LDR r7,[r1,#0x14] 0004a0 f8dde038 LDR lr,[sp,#0x38] 0004a4 f8ddb050 LDR r11,[sp,#0x50] 0004a8 f8d1a048 LDR r10,[r1,#0x48] 0004ac fbc7be09 SMLAL r11,lr,r7,r9 0004b0 fbc70208 SMLAL r0,r2,r7,r8 0004b4 f1c90700 RSB r7,r9,#0 0004b8 fbcabe08 SMLAL r11,lr,r10,r8 0004bc fbca0207 SMLAL r0,r2,r10,r7 0004c0 f8cde038 STR lr,[sp,#0x38] 0004c4 f8cdb050 STR r11,[sp,#0x50] 0004c8 9707 STR r7,[sp,#0x1c] 0004ca e9cd2003 STRD r2,r0,[sp,#0xc] 0004ce f8d17094 LDR r7,[r1,#0x94] 0004d2 f8dda020 LDR r10,[sp,#0x20] 0004d6 9a0a LDR r2,[sp,#0x28] 0004d8 e9ddeb01 LDRD lr,r11,[sp,#4] 0004dc fbc7a209 SMLAL r10,r2,r7,r9 0004e0 f8d100c8 LDR r0,[r1,#0xc8] 0004e4 fbc7be08 SMLAL r11,lr,r7,r8 0004e8 9f07 LDR r7,[sp,#0x1c] 0004ea fbc0a208 SMLAL r10,r2,r0,r8 0004ee fbc0be07 SMLAL r11,lr,r0,r7 0004f2 f8cda020 STR r10,[sp,#0x20] 0004f6 920a STR r2,[sp,#0x28] 0004f8 e9cdeb01 STRD lr,r11,[sp,#4] ;;;285 MC2S(6) 0004fc f8547b04 LDR r7,[r4],#4 000500 f8d1a018 LDR r10,[r1,#0x18] 000504 f8548b04 LDR r8,[r4],#4 000508 f8dde038 LDR lr,[sp,#0x38] 00050c f8ddb050 LDR r11,[sp,#0x50] 000510 e9dd2003 LDRD r2,r0,[sp,#0xc] 000514 fbcabe08 SMLAL r11,lr,r10,r8 000518 f8d19044 LDR r9,[r1,#0x44] 00051c fbca0207 SMLAL r0,r2,r10,r7 000520 f1c80a00 RSB r10,r8,#0 000524 fbc9020a SMLAL r0,r2,r9,r10 000528 fbc9be07 SMLAL r11,lr,r9,r7 00052c f8cda01c STR r10,[sp,#0x1c] 000530 e9cd2003 STRD r2,r0,[sp,#0xc] 000534 f8cde038 STR lr,[sp,#0x38] 000538 f8cdb050 STR r11,[sp,#0x50] 00053c f8d1a098 LDR r10,[r1,#0x98] 000540 f8dde020 LDR lr,[sp,#0x20] 000544 980a LDR r0,[sp,#0x28] 000546 e9dd9b01 LDRD r9,r11,[sp,#4] 00054a fbcae008 SMLAL lr,r0,r10,r8 00054e f8d120c4 LDR r2,[r1,#0xc4] 000552 fbcab907 SMLAL r11,r9,r10,r7 000556 f8dd801c LDR r8,[sp,#0x1c] 00055a fbc2e007 SMLAL lr,r0,r2,r7 00055e fbc2b908 SMLAL r11,r9,r2,r8 000562 f8cde020 STR lr,[sp,#0x20] 000566 900a STR r0,[sp,#0x28] 000568 e9cd9b01 STRD r9,r11,[sp,#4] ;;;286 MC2S(7) 00056c f8547b04 LDR r7,[r4],#4 000570 f8d1a01c LDR r10,[r1,#0x1c] 000574 f8548b04 LDR r8,[r4],#4 000578 f8dde038 LDR lr,[sp,#0x38] 00057c f8ddb050 LDR r11,[sp,#0x50] 000580 e9dd2003 LDRD r2,r0,[sp,#0xc] 000584 fbcabe08 SMLAL r11,lr,r10,r8 000588 f8d19040 LDR r9,[r1,#0x40] 00058c fbca0207 SMLAL r0,r2,r10,r7 000590 f1c80a00 RSB r10,r8,#0 000594 fbc9be07 SMLAL r11,lr,r9,r7 000598 fbc9020a SMLAL r0,r2,r9,r10 00059c f8cde038 STR lr,[sp,#0x38] 0005a0 f8cdb050 STR r11,[sp,#0x50] 0005a4 f8cda01c STR r10,[sp,#0x1c] 0005a8 e9cd2003 STRD r2,r0,[sp,#0xc] 0005ac e9dd9b01 LDRD r9,r11,[sp,#4] 0005b0 f8d1a09c LDR r10,[r1,#0x9c] 0005b4 f8d120c0 LDR r2,[r1,#0xc0] 0005b8 fbcab907 SMLAL r11,r9,r10,r7 0005bc f8dde020 LDR lr,[sp,#0x20] 0005c0 980a LDR r0,[sp,#0x28] ;;;287 ;;;288 vb1 += 64; 0005c2 f5017180 ADD r1,r1,#0x100 0005c6 fbcae008 SMLAL lr,r0,r10,r8 ;286 0005ca f8dda01c LDR r10,[sp,#0x1c] ;286 0005ce fbc2e007 SMLAL lr,r0,r2,r7 ;286 0005d2 fbc2b90a SMLAL r11,r9,r2,r10 ;286 0005d6 4680 MOV r8,r0 ;286 0005d8 e9dd2003 LDRD r2,r0,[sp,#0xc] ;;;289 *(pcm + 0) = ClipToShort((int)SAR64(sum1L, (32-CSHIFT)), DEF_NFRACBITS); 0005dc 0d00 LSRS r0,r0,#20 0005de ea403002 ORR r0,r0,r2,LSL #12 0005e2 1180 ASRS r0,r0,#6 0005e4 17c2 ASRS r2,r0,#31 0005e6 ebb23fe0 CMP r2,r0,ASR #15 0005ea bf1c ITT NE 0005ec f64770ff MOVNE r0,#0x7fff 0005f0 4050 EORNE r0,r0,r2 0005f2 8028 STRH r0,[r5,#0] ;;;290 *(pcm + 1) = ClipToShort((int)SAR64(sum1R, (32-CSHIFT)), DEF_NFRACBITS); 0005f4 ea4f521b LSR r2,r11,#20 0005f8 ea423009 ORR r0,r2,r9,LSL #12 0005fc 1180 ASRS r0,r0,#6 0005fe 17c2 ASRS r2,r0,#31 000600 ebb23fe0 CMP r2,r0,ASR #15 000604 bf1c ITT NE 000606 f64770ff MOVNE r0,#0x7fff 00060a 4050 EORNE r0,r0,r2 00060c 8068 STRH r0,[r5,#2] ;;;291 *(pcm + 2*2*i + 0) = ClipToShort((int)SAR64(sum2L, (32-CSHIFT)), DEF_NFRACBITS); 00060e 9814 LDR r0,[sp,#0x50] 000610 9a0e LDR r2,[sp,#0x38] 000612 0d00 LSRS r0,r0,#20 000614 ea403002 ORR r0,r0,r2,LSL #12 000618 1180 ASRS r0,r0,#6 00061a 17c2 ASRS r2,r0,#31 00061c ebb23fe0 CMP r2,r0,ASR #15 000620 bf1c ITT NE 000622 f64770ff MOVNE r0,#0x7fff 000626 4050 EORNE r0,r0,r2 000628 f8250036 STRH r0,[r5,r6,LSL #3] ;;;292 *(pcm + 2*2*i + 1) = ClipToShort((int)SAR64(sum2R, (32-CSHIFT)), DEF_NFRACBITS); 00062c ea4f521e LSR r2,lr,#20 000630 ea423008 ORR r0,r2,r8,LSL #12 000634 1180 ASRS r0,r0,#6 000636 17c2 ASRS r2,r0,#31 000638 ebb23fe0 CMP r2,r0,ASR #15 00063c bf1c ITT NE 00063e f64770ff MOVNE r0,#0x7fff 000642 4050 EORNE r0,r0,r2 000644 eb0502c6 ADD r2,r5,r6,LSL #3 ;;;293 pcm += 2; 000648 1d2d ADDS r5,r5,#4 00064a 1e76 SUBS r6,r6,#1 00064c 8050 STRH r0,[r2,#2] ;292 00064e 2e00 CMP r6,#0 000650 f73fae16 BGT |L2.640|
|
|
|
|
|
Jan 6 2012, 20:52
|

Любитель
    
Группа: Свой
Сообщений: 1 864
Регистрация: 20-08-06
Из: Тольятти
Пользователь №: 19 695

|
В общем, декодирование MP3 занимает на 5-10% больше времени процессора на коде от ИАРа. Не очень критично, конечно, учитывая, что кроме более качественной генерации кода благодаря RealView Кейлу предложить нечего... В остальном там мрак какойто  ЗЫ: не могу удержаться, вот ещё небольшое сравнение. Такой совсем простенький цикл, и результат его компиляции при макс. настройках оптимизации: Код if (gb < 6) { es = 6 - gb; for (i = 0; i < 32; i++) buf[i] >>= es; } RealView - O3 Optimize for time, скромненько так, со вкусом развернув только на пару итераций: CODE ;;;155 if (gb < 6) 000006 9b0d LDR r3,[sp,#0x34] 000008 2200 MOVS r2,#0 ;154 00000a 2b06 CMP r3,#6 00000c da0e BGE |L1.44| ;;;156 { ;;;157 es = 6 - gb; 00000e f1c30206 RSB r2,r3,#6 ;;;158 for (i = 0; i < 32; i++) buf[i] >>= es; 000012 1f03 SUBS r3,r0,#4 000014 f04f0c10 MOV r12,#0x10 |L1.24| 000018 685c LDR r4,[r3,#4] 00001a 4114 ASRS r4,r4,r2 00001c 605c STR r4,[r3,#4] 00001e 689c LDR r4,[r3,#8] 000020 4114 ASRS r4,r4,r2 000022 f8434f08 STR r4,[r3,#8]! 000026 f1bc0c01 SUBS r12,r12,#1 00002a d1f5 BNE |L1.24|
и ИАР, высокая оптимизация режим баланса - аж слёзы на глаза наворачиваются CODE
155 if (gb < 6) \ 00000010 0628 CMP R0,#+6 \ 00000012 27DA BGE.N ??mp3_FDCT32_0 156 { 157 es = 6 - gb; \ 00000014 C0F10600 RSB R0,R0,#+6 \ 00000018 0090 STR R0,[SP, #+0] 158 for (i = 0; i < 32; i++) buf[i] >>= es; \ 0000001A 1046 MOV R0,R2 \ 0000001C 0421 MOVS R1,#+4 \ ??mp3_FDCT32_1: \ 0000001E 0368 LDR R3,[R0, #+0] \ 00000020 009C LDR R4,[SP, #+0] \ 00000022 2341 ASRS R3,R3,R4 \ 00000024 0360 STR R3,[R0, #+0] \ 00000026 4368 LDR R3,[R0, #+4] \ 00000028 009C LDR R4,[SP, #+0] \ 0000002A 2341 ASRS R3,R3,R4 \ 0000002C 4360 STR R3,[R0, #+4] \ 0000002E 8368 LDR R3,[R0, #+8] \ 00000030 009C LDR R4,[SP, #+0] \ 00000032 2341 ASRS R3,R3,R4 \ 00000034 8360 STR R3,[R0, #+8] \ 00000036 C368 LDR R3,[R0, #+12] \ 00000038 009C LDR R4,[SP, #+0] \ 0000003A 2341 ASRS R3,R3,R4 \ 0000003C C360 STR R3,[R0, #+12] \ 0000003E 0369 LDR R3,[R0, #+16] \ 00000040 009C LDR R4,[SP, #+0] \ 00000042 2341 ASRS R3,R3,R4 \ 00000044 0361 STR R3,[R0, #+16] \ 00000046 4369 LDR R3,[R0, #+20] \ 00000048 009C LDR R4,[SP, #+0] \ 0000004A 2341 ASRS R3,R3,R4 \ 0000004C 4361 STR R3,[R0, #+20] \ 0000004E 8369 LDR R3,[R0, #+24] \ 00000050 009C LDR R4,[SP, #+0] \ 00000052 2341 ASRS R3,R3,R4 \ 00000054 8361 STR R3,[R0, #+24] \ 00000056 C369 LDR R3,[R0, #+28] \ 00000058 009C LDR R4,[SP, #+0] \ 0000005A 2341 ASRS R3,R3,R4 \ 0000005C C361 STR R3,[R0, #+28] \ 0000005E 2030 ADDS R0,R0,#+32 \ 00000060 491E SUBS R1,R1,#+1 \ 00000062 DCD1 BNE.N ??mp3_FDCT32_1
с размахом так, развернул половину цикла, но это ладно, а вот зачем было каждый раз перед каждым сдвигом подгружать со стёка константную его величину? Это просто фэйспалмище какой-то... Они ещё пишут в релиз ноутс последнего ИАРа про оптимизацию кода для C-M3\4. Быстрый код под ИАРом? Не, не слышал
|
|
|
|
|
Jan 7 2012, 11:05
|

Любитель
    
Группа: Свой
Сообщений: 1 864
Регистрация: 20-08-06
Из: Тольятти
Пользователь №: 19 695

|
Цитата(KRS @ Jan 7 2012, 05:35)  в закромах есть просто свежий Arm Compiler и от RVCT и более свежий от DS-5 Спасибо, но чисто компилер я могу взять и от Кейла. Мне надо IDE с дебаггером, так как кейловский у меня глючит. Ну, как и ожидалось, ни RVDS4.1, ни DS-5 не пошли. Первый выдаёт какую-то маловразумительную ошибку лаунчера, а у второго не может запуститься Эклипс, жалуется, что не запускается Ява машина. Я уже переставил яв версий 5, 6 и 7, хз что ему ещё надо. При этом новый Эклипс для C\C++ работает ОК.
|
|
|
|
|
Jan 7 2012, 19:35
|

Профессионал
    
Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555

|
Цитата(sonycman @ Jan 7 2012, 15:05)  Мне надо IDE с дебаггером, так как кейловский у меня глючит. так можно IAR использовать, ELF то EABI, правда не знаю как с отладочной информацией, а вот линкером IAR функции компилированные RVCT я линковал. отладчик все равно нельзя использовать он дружит только с ARM родными ICE! правда DS-5 может и с GDB сервером. Цитата(sonycman @ Jan 7 2012, 15:05)  а у второго не может запуститься Эклипс, жалуется, что не запускается Ява машина. там свой эклипс и джава своя! (она потом даже в панеле управления видна, у меня доп. пакеты пытались на нее встать)
|
|
|
|
|
Jan 7 2012, 20:00
|

Любитель
    
Группа: Свой
Сообщений: 1 864
Регистрация: 20-08-06
Из: Тольятти
Пользователь №: 19 695

|
Цитата(KRS @ Jan 7 2012, 23:35)  отладчик все равно нельзя использовать он дружит только с ARM родными ICE! правда DS-5 может и с GDB сервером. Понятно, тогда большого смысла для меня тут нет, имеется только J-Link. Цитата там свой эклипс и джава своя! (она потом даже в панеле управления видна, у меня доп. пакеты пытались на нее встать) Да, внутри есть папка с явой, потыкал по эксешникам, эффекта никакого не получил. При запуске eclipse.exe из состава DS-5 получаю ошибку Could not create the Java virtual machine. То есть яву он, по видимому, находит, но запустить не может. Может, какой-то конфликт с установленным софтом\новой версией явы? Но что-то не хочется ничего сносить  Цитата(aaarrr @ Jan 7 2012, 23:38)  Странно, 4.1 у меня успешно работает. Причем даже на домашней машине, где до сих пор стоит XP SP1. А на Win7 x64 не пробовали ставить? Ошибка вот такая: Цитата Error code: LAUNCHER-11
armenv returned with error(s).
Command was: "C:\Program Files\ARM\Utilities\Installer\2.3\220\win_32-pentium\armenv.exe" -r "C:\Program Files\ARM" -p RVDS Contents 4.1 107 -v platform "win_32-pentium" -v extras_dir "professional\" -v encryption "none" -v regime "rel" -v capability "professional" --exec "C:\Users\Вован\Application Data\ARM\ARM Workbench IDE\4.0\launcher-win_32-pentium.exe"
Note this may be the expected behaviour if the target process returned with error Пробовал запускать launcher-win_32-pentium.exe напрямую, опять ошибка с ява машиной как и у DS-5  Ладно, спасибо, потом поковыряю ещё, может, что и получится.
|
|
|
|
|
  |
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|