eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaSTM32 i GNU assembler - problem z movs › Re: STM32 i GNU assembler - problem z movs
  • Data: 2010-05-06 16:51:04
    Temat: Re: STM32 i GNU assembler - problem z movs
    Od: cepu69 <c...@t...pl> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    SM wrote:

    > cepu69 pisze:
    >> Jacek Radzikowski wrote:
    >>
    >>> On 05/06/2010 02:00 AM, SM wrote:
    >>> [...]
    >>>> Wywołuję go: as.exe -mcpu=cortex-m3 -mthumb
    >>>> I nie wiem czy aby poprawnie, bo nie łyka mi
    >>>>
    >>>> movs R11, #0x000B
    >>>>
    >>>> Pisze:
    >>>> only lo regs allowed with immediate -- 'movs R11,#0x000B'
    >>>>
    >>>> Czy ten asembler się nie nadaje dla tego procka?
    >>>> A może użyte opcje są niewłaściwe?
    >>
    (..)

    >
    > Cortex-M3 nie ma thumb, tylko thumb-2 i wtedy ma dostęp
    > do wszystkich rejestrów.
    Niekoniecznie :
    http://www.arm.com/files/pdf/IntroToCortex-M3.pdf
    "The Cortex-M3 core contains a decoder for
    traditional Thumb and new Thumb-2 instructions"

    > -mthumb jest OK, brakowało mi "-march=armv7-m" - to przełącza
    > gcc na thumb-2 a .syntax unified "łączy" ARM i thumb.
    Czlowiek uczy sie cale zycie :)

    eCos http://ecos.sourceware.org/ (pozwole sobie na drobna reklame)
    ma ustawine opcje gcc takie jak uzywales poczatkowo
    -mcpu=cortex-m3 -mthumb
    i jak najbardziej wykorzystywane sa instrukcje thumb-2
    (...)
    .syntax unified
    .thumb
    (...)
    .global hal_switch_state_vsr
    .thumb
    .thumb_func
    .type hal_switch_state_vsr, %function
    hal_switch_state_vsr:

    mov r0,#CYGNUM_HAL_CORTEXM_PRIORITY_MAX
    msr basepri,r0
    ^^^^^^^
    to jest raczej thumb-2
    mov r0,#2 // Set CONTROL register to 2
    msr control,r0
    isb // Insert a barrier

    Dziwnie to wyglada jak dla mnie.

    BTW.
    http://infocenter.arm.com/help/index.jsp?topic=/com.
    arm.doc.ddi0337e/Chdbhfja.html

    2.3.1. General-purpose registers

    The general-purpose registers r0-r12 have no special architecturally-defined
    uses. Most instructions that can specify a general-purpose register can
    specify r0-r12.

    Low registers

    Registers r0-r7 are accessible by all instructions that specify a
    general-purpose register.
    High registers

    Registers r8-r12 are accessible by all 32-bit instructions that specify
    a general-purpose register.

    Registers r8-r12 are not accessible by all 16-bit instructions.


Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: