IAR vs KEIL vs GCC asembler cortex m4

Josef Štengl ok1ced na nagano.cz
Čtvrtek Únor 2 12:29:55 CET 2017


Mícháte pojmy IDE a překladač dohromady. IDE o použitém překladači není příliš nevypovídající (i když napovědět dokáže). A 
zrovna assembler je formát dosti závislý na překladači, takže se nespoléhejte, že půjde kód napsaný v asm pro jeden 
překladač bez problému přeložit v jiném, i když je určený pro stejnou cílovou platformu.

Z výpisu bych řekl, že je chybně nastavený cíl překladu, protože překládáte THUMB, ale kód je psaný v THUMB2. Jste si 
opravdu jistý, že máte nastavenou správnou cílovou platformu?


Dne 2.2.2017 v 12:16 Lukas Osmancik napsal(a):
> Zdravím,
>
>
>
> Narazil jsem na problém se skompilováním asemblerovských souborů na různých IDE.
>
>
>
> Jedná se o zdrojové soubory pro audio kodek optimalizující náročné části algoritmu (transformace dct,filtry…).
>
>
>
> Tyto soubory lze bez problémů zkompilovat a použít v IAR EWARM.
>
>
>
> V attolic truestudio, stm32workbench a CoIDE vyhazují spoustu chyb ohledně syntaxe a neznámých instrukcí.
>
>
>
> Ještě Keil uVision se s tím trochu popral, ale ne zcela bez problémů.
>
>
>
> Příklad zdrojového kódu, témež každý řádek vykazuje chybu (attolic truestudio)
>
>
>
>                LDR        r2, [r0]
>
>                LDRH     r3, [r0, #6]
>
>                LDRSH   r1, [r0, #4]                         Thumb does not support this addressing mode
>
>                LDRH     r12,[r2], #2                        lo register required
>
>                SUBS     r3, r3, #1                            instruction not supported in Thumb16 mode
>
>                IT EQ
>
>                SUBEQ  r1, r1, #16                          Thumb does not support conditional execution
>
>                MOV      r12,r12, LSR r3                  instruction not allowed in IT block
>
>                ITTT EQ
>
>                MOVEQ               r3, #16                 Thumb does not support conditional execution
>
>                STREQ   r2, [r0]                               Thumb does not support conditional execution
>
>                STREQH               r1, [r0, #4]          Thumb does not support conditional execution
>
>                STRH     r3, [r0, #6]                         instruction not allowed in IT block
>
>                AND       r0, r12,#1                           instruction not allowed in IT block
>
>                MOV      PC,R14                               incorrect condition in IT block
>
>
>
>
>
>
>
>
>
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
>


Další informace o konferenci Hw-list