-
Data: 2017-12-15 14:30:25
Temat: Re: Biblioteka CMSIS DSP Keil ARM
Od: Zbych <a...@o...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]W dniu 15.12.2017 o 11:52, Marcin pisze:
>> 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)
Do kompilacji -Os -ffunction-sections -fdata-sections
a do linkowania -Wl,--gc-sections
> 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:
> 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)
To by sugerowało, że jednak nie usuwasz zbędnych danych.
> 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 :(
Może ABI jest zgodne, ale binarny format bibliotek jest inny? Czyli
możesz z gcc wywołać funkcję z wbudowaną w ROM uC, ale nie zlinkujesz
bibliotek.
Następne wpisy z tego wątku
- 15.12.17 16:00 Marcin
Najnowsze wątki z tej grupy
- Pytanie o transformator do dzwonka
- międzymordzie USB 3.2 jako 2.0
- elektronicy powinni pomysleć o karierze elektryka
- jak szybko plynie prad
- Płytki Milkv-Duo
- Światłowód między budynkami
- POtrzebny bufor 3.3<>5V, jedonkieruowy, trójstanowy, wąski
- retro
- Bezprzewodowe polączenie Windows z projektorem
- rozklejanie obudowy
- Prośba o identyfikację komponentu
- Smart gniazdko straciło na zasięgu wifi?
- Smart gniazdko straciło zasięg wifi?
- nurtuje mnie
- dziwna sprawa...
Najnowsze wątki
- 2024-11-08 Warszawa => Head of International Freight Forwarding Department <=
- 2024-11-08 Warszawa => Key Account Manager <=
- 2024-11-08 Szczecin => Key Account Manager (ERP) <=
- 2024-11-08 Białystok => Full Stack web developer (obszar .Net Core, Angular6+) <
- 2024-11-08 Wrocław => Senior PHP Symfony Developer <=
- 2024-11-08 Warszawa => QA Engineer <=
- 2024-11-08 Warszawa => QA Inżynier <=
- 2024-11-08 Warszawa => Key Account Manager <=
- 2024-11-08 Gdańsk => Software .Net Developer <=
- 2024-11-08 Akumulator Hyundai
- 2024-11-08 Warszawa => Manager/Specialist e-commerce (B2C) <=
- 2024-11-08 Gdańsk => Specjalista ds. Sprzedaży <=
- 2024-11-08 Gdańsk => Kierownik Działu Spedycji Międzynarodowej <=
- 2024-11-08 znaj podstawe
- 2024-11-08 Chrzanów => Specjalista ds. public relations <=