eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaBiblioteka CMSIS DSP Keil ARMRe: Biblioteka CMSIS DSP Keil ARM
  • X-Received: by 10.31.94.215 with SMTP id s206mr1371161vkb.1.1513335149207; Fri, 15
    Dec 2017 02:52:29 -0800 (PST)
    X-Received: by 10.31.94.215 with SMTP id s206mr1371161vkb.1.1513335149207; Fri, 15
    Dec 2017 02:52:29 -0800 (PST)
    Path: news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit
    0.net!peer03.am4!peer.am4.highwinds-media.com!peer03.iad!feed-me.highwinds-medi
    a.com!news.highwinds-media.com!g35no1460519qtk.1!news-out.google.com!t48ni589qt
    c.1!nntp.google.com!m31no1463948qtf.0!postnews.google.com!glegroupsg2000goo.goo
    glegroups.com!not-for-mail
    Newsgroups: pl.misc.elektronika
    Date: Fri, 15 Dec 2017 02:52:28 -0800 (PST)
    In-Reply-To: <5a32bd61$0$15191$65785112@news.neostrada.pl>
    Complaints-To: g...@g...com
    Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=62.218.30.210;
    posting-account=LtRNCAoAAAACVwjGJC66ygSl50zdeDtv
    NNTP-Posting-Host: 62.218.30.210
    References: <8...@g...com>
    <5a32bd61$0$15191$65785112@news.neostrada.pl>
    User-Agent: G2/1.0
    MIME-Version: 1.0
    Message-ID: <0...@g...com>
    Subject: Re: Biblioteka CMSIS DSP Keil ARM
    From: Marcin <m...@o...pl>
    Injection-Date: Fri, 15 Dec 2017 10:52:29 +0000
    Content-Type: text/plain; charset="UTF-8"
    Content-Transfer-Encoding: quoted-printable
    X-Received-Bytes: 4027
    X-Received-Body-CRC: 2930340923
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:727298
    [ ukryj nagłówki ]

    > Nie podałeś z jakimi flagami kompilujesz program, czy włączyłeś
    > optymalizację, czy każesz kompilatorowi usunąć nieużywane funkcje i dane
    > z programu. Na początek dodaj flagi -Os -ffunction-sections
    > -fdata-sections do kompilacji oraz -Wl,--gc-sections do wywołania linkera.
    > Sprawdź też jak wygląda rozmiar po kompilacji na Cortexa M4. Jeśli wtedy
    > rozmiar mocno spadnie, to winna może być software'owa emulacja floatów.
    > Komercyjne pakiety (także te korzystające z gcc) mają często biblioteki
    > ręcznie dłubane w assemblerze i stąd różnica w prędkości/wielkości.

    Czesc,
    optymalizacja kompilatora dokladnie jak proponujesz: -0s, probowalem tez -O3 ale
    niewiele sie zmienia.
    linker tez powinien usuwac zbedny kod (-ffunction-sections -fdata-sections ), newlib
    nano ( nie powinno miec znaczenia)

    Przyklad ktory testuej uzywa staloprzecinkowych Q15, wiec floatow nie powinno nigdzie
    byc.

    Kod zrodlowy CMSIS DSP jest dostepny i biblioteki dla Keila i GCC kompilowalem sam. Z
    tego co wypatrzylem sa uzywane duze tablice wspolczynnikow ( dla roznych dlugosci FFT
    rozne tablice) w stylu:

    arm_rfft_init_q15(){
    switch (S->fftLenReal)
    {
    case 8192U:
    S->twidCoefRModifier = 1U;
    S->pCfft = &arm_cfft_sR_q15_len4096;
    break;
    case 4096U:
    S->twidCoefRModifier = 2U;
    S->pCfft = &arm_cfft_sR_q15_len2048;
    break;
    case 2048U:
    S->twidCoefRModifier = 4U;
    S->pCfft = &arm_cfft_sR_q15_len1024;
    break;
    case 1024U:
    S->twidCoefRModifier = 8U;
    S->pCfft = &arm_cfft_sR_q15_len512;
    break;
    case 256U:
    S->twidCoefRModifier = 32U;
    S->pCfft = &arm_cfft_sR_q15_len128;
    break;
    case 128U:
    S->twidCoefRModifier = 64U;
    S->pCfft = &arm_cfft_sR_q15_len64;
    break;
    case 64U:
    S->twidCoefRModifier = 128U;
    S->pCfft = &arm_cfft_sR_q15_len32;
    break;
    case 32U:
    S->twidCoefRModifier = 256U;
    S->pCfft = &arm_cfft_sR_q15_len16;
    break;
    .... }
    moje podejrzenie jest, ze Keil widzac ze wywoluje ze stala dlugoscia 128, potrafi
    "wyrzucic" niepotrzebne struktury const typu arm_cfft_sR_q15_len1024 ( ktore sa np.
    3000 x uint16_t)

    Bede musial sie dokladniej przygladnac .map i .lst z GCC, co faktacznie jest w
    zlinkowanym pliku .elf

    I kolejne pytanie - _wydawalo_ mi sie, ze biblioteki skompilowane roznymi
    kompilatorami powinny byc kmpatybilne ( ARM calling convention) ale biblioteki z
    Keila nie linkuja sie w GCC :(

    Marcin

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: