Skip to content

Inline assembly broken in IAR 5.5x #4

@ransford

Description

@ransford

For the 5.5x and later versions of their compiler, IAR changed the rules for inline assembly such that you can no longer do things like this:

asm("foobar:");
asm("MOV R1, R2");
asm("JMP foobar");

You get an error message like

unknown symbol in inline assembly

The fix will be to tidy up the parts of the WISP firmware that have asm statements referencing labels created in other asm statements. Where possible, collapse runs of asm statements into one. The above would become:

    asm volatile ("foobar\n\t" // oh yeah, and use volatile
                  "MOV R1, R2\n\t"
                  "JMP foobar");

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions