Antutu możesz sobie pobrać bezpośrednio ze strony twórcy (antutu.com). Pobierzesz pakiet instalacyjny, ale czy Ci się uda go zainstalować, to nie wiem - musisz sprawdzić. Podobnie możesz próbować instalować pobrane pakiety innych programów. (apkpure.net apkmirror.com ...) Pytanie z ciekawości (bo ja chyba się domyślam, o co Ci chodzi z tą wydajnością),...
https://obrazki.elektroda.pl/6446769600_... Wraz z dostępnością coraz większych mocy obliczeniowych oraz pojemności pamięci, często słyszałem narzekanie, że teraz programy nie są optymalizowane, tak jak kiedyś . Programiści idą na skróty, korzystają z bibliotek a kiedyś to było :) Czasami było to prawdą i łatwość tworzenia oprogramowania...
Układ debuguje z poziomem -O0 (w keilu) Debugowanie na poziomie O0 (wyłączona optymalizacja) może dawać fałszywe przekonanie, że aplikacja działą ok. Ponieważ przy O0 nie ma żadnej optymalizacji, więc każde odwołanie do zmiennej powoduje jej przeładowanie z pamięci. W efekcie jeśli masz jakiś problem typu brak volatile, to na O0 aplikacja będzie działać...
Dla takich osób, które chcą pooglądać jednak taki, który jest NIEpoprawny, choć w wyjątkowo subtelny sposób: https://gcc.gnu.org/bugzilla/show bug.cgi?id=83703 https://stackoverflow.com/ques...dd-floa... + https://gcc.gnu.org/bugzilla/show bug.cgi?id=79436 Nie wiem co ten kod ma wspólnego z naszymi optymalizacyjnymi dywagacjami:...
nie działa, to bardzo ogólne pojęcie. Zbyt mało informacji podajesz. Jakie IDE/toolchain/kompilator? Jeżeli GCC, to domyślnie między release a debug jest kilka różnic, między innymi optymalizacja i nadmiarowe dane do debugowania. Sprawdź która z tych funkcji powoduje kłopoty. Powodów może być kilka między innymi taki, że kod/program bez debugera działa...
O samym telefonie nie wiemy jeszcze wiele, ale spekulować możemy na temat technologii, jakie wykorzystane w nim zostaną. Niedawno odbyły się ogromne targi telekomunikacyjne w Barcelonie, gdzie firmy takie jak Qualcomm, Samsung czy MediaTek - trzej wiodący producenci układów scalonych dla telefonów komórkowych i smartfonów - prezentowali swoje najnowsze...
Nie podałeś nawet procka na czym to chodzi żeby rozgryźć ten rejestr, ale wnioskując po nazwie rejestru pewnie cortex od st. Rejest BSRR jest 32-bit. Mniej znaczące 16-bit służy do ustawienia pinu, a starsze szesnaście do wyzerowania. Czyli przykładowo GPIOC->BSRR = 0x0001 ustawia pin C0 na '1' GPIOC->BSRR = 0x0100 ustawia pin C0 na '0' Teraz pod warunkiem...
Dlaczego nie mają dzielenia? To proste - dzielenie jest najtrudniejszym w implementacji sprzętowej z podstawowych działań arytmetycznych - złożoność sprzętowej dzialarki jest wielokrotnie większa, niż sprzętowej mnożarki, a mnożarki - wielokrotnie większa od sumatora. instrukcji dzialenia nie ma również Cortex M0, a procesory, które ją mają, wykonują...
Po małej dyskusji oraz przejrzeniu Cortex ™-M3 TechnicalReference Manual, Revision: r1p1, nasuwa się takie ciekawe pytanie. Wiadomo, że zewnętrzne przerwania od układów peryferyjnych są podłączane pod odpowiednie linie IRQ_n, w tym przypadku mamy numery od 0-239, czyli IRQ0-239. Natomiast poziom priorytetów można ustalić dla wszystkich przerwań...
Choć niestety kody z tego generatora zawsze operują na bajtach No, a tego chciałbym się pozbyć. Jak tak na to patrzę, to chyba ciężko coś poprawić, no może jak robisz na maszynie z big endianess to zamiast: No niestety to cortex czyli LE. Tego typu dostępu do danych nie można wykorzystać w przypadku Cortexa-M0, ale za to można w przypadku Cortexa-M3,...
Możliwe, że te lagi właśnie z powodu temperatury są, laptop to nie za bardzo sprzęt do grania. Spróbuj wyłączyć co zbędne w lapku na czas grania za pomocą Razer Cortex. Im mniej zbędnych rzeczy obciążających podzespoły lapka to lepiej. Kiedy też laptopa czyściłeś? Zmieniałeś pastę termoprzewodzącą na procesorze itp? Opis Razer Cortex: https://sites.google.com/site/twierdzaci...
Jak masz jakieś lagi podczas grania, to wyłącz co zbędne w Windows podczas gry, zmniejsz rozdzielczość gry, efekty graficzne i zobacz czy jest poprawa. Zobacz ten y temat: https://sites.google.com/site/twierdzaci...
Co ze sterownikami? Są aktualne? Głównie płyta główna i karta graficzna? Po tym screenie nie widać any się coś działo nie tak. Temperatury wydają się ok, nie mniej ja bym zapisał je do logów w programach CoreTemp i GPU-Z, pliki z pomiaru pokazał na forum, czyli pomiar rejestrujesz do momentu kiedy masz to przycinanie, tak jeszcze po wystąpieniu z 10...
Masz tu brzydki ale skuteczny delay na Cortex, specjalnie do LCD. Liczba NOPów powinna być o jakieś 3 mniejsza od połowy częstotliwości wyrażonej w MHz: [syntax=c]static void delay500ns(void) { __NOP(); __NOP(); __NOP(); __NOP(); __NOP(); __NOP(); __NOP(); __NOP(); __NOP(); __NOP(); }[/syntax]
No ale czemu przy zerowej optymalizacji spodziewasz się ... optymalizacji? Poza O1 i O0 są jeszcze 3 inne wartości tej flagi, które - w przeciwieństwie do tych poprzednich - mają jakiś sens... Czy aby na pewno sprawdziłeś że kompilator nie robi tego co chcesz, czy może będzie to kolejna cegiełka do mojej kolekcji "znalazłem błąd w kompilatorze, sam...
Piszę sobie szczęśliwie kody baremetal na ARMy w RPi3 i RPi4. Nie wnikałem w szybkość pracy bo i tak była duża. Ale potrzebowałem mocno zoptymalizować jeden algorytm, i dodałem sobie licznik cykli. I się mocno zdziwiłem. Kod jest najprostszy z możliwych. Czysty baremetal, nawet bez przerwań. Wzorowany na tym: https://www.elektroda.pl/rtvforum/viewto...
Wyłączenie optymalizacji to będzie raczej ficzer kompilatora, nie języka. W GCC jest jakiś atrybut, który pozwala zdefiniować poziom optymalizacji dla konkretnej funkcji - coś w stylu NOP does nothing. NOP is not necessarily a time-consuming NOP. The processor might remove it from the pipeline before it reaches the execution stage. Please note that...
Tak się składa, że wiem, że R0 jest wolny a każdy inny zajęty. Dziś jest wolny, jutro jest zajęty - obyś się nie przejechał. No i coś takiego nie działa, bo zmienna StackPointer Działa - potem R4 będzie przepisane do R0 żeby prawidłowo zwrócić wynik. jest ładowana do R4, który to ma być zrzucony instrukcją STMDB Wstawki assemblerowe są dużo bardziej...
Tak, tak... 4 cykle. Z instrukcją warunkową. To się w 10 pewnie nie zmieści nawet. A jakiej wielkości będzie tablica oferująca wynik dzielenia (const uint32_t / uint16_t)? Dawno nie widziałem większej bzdury. Tutaj jednak możesz się zdziwić. Pamiętaj że mówimy o dzieleniu gdzie dzielna/dzielnik jest stała. W przypadku uint32_t / uint16_t tablica mogła...
Pytanie 1: http://infocenter.arm.com/help/index.jsp... CORTEX nie koniecznie wykonuje czynności w spodziewanej kolejności czy w spodziewany sposób, przekonałem się o tym dobitnie po kilku dniach nieustającej próby napisania tego w c/c++ bez podglądu na wygenerowany kod (tzn algorytm działał jednak występowały jittery...
Zapewne jeszcze zawsze jest wywoływane przez skok.... No i? Nie przesadzasz z tą optymalizacją za wszelką cenę? (; Zboczenie zawodowe ;). Low power te sprawy...
Daje się to bezproblemowo zrobić na Cortex M3 z zegarem > 70 MHz. Pewne dałoby się i na czymś trochę wolniejszym, ale chyba szkoda walczyć z optymalizacją przy tak małych kosztach M3.
Łakomy kąsek dla tych, co wolą Delphi od C: dostępny jest kompilator Free Pascal dla ARM, w tym Cortex-M3. Jest jeszcze dość niestabilny, ma wciąż problemy z optymalizacją, wiele bibliotek trzeba pisać od podstaw, oficjalne wsparcie jest tylko dla kilku mikrokontrolerów. Kompilator da się zintegrować z Lazarusem, od pewnego czasu używam go z powodzeniem...
https://obrazki.elektroda.pl/5119469300_... Znalazłem ciekawy artykuł obrazujący technicznie uruchamianie modeli AI na tak ograniczonych sprzętach, jak mikrokontrolery. Mikrokontrolery są najbardziej ograniczonymi platformami do uruchamiania AI pod względem mocy obliczeniowej, pamięci i przepustowości sieci. W skrócie do działania...
Jeśli kod skompilowałeś z optymalizacją i wiesz, że akurat tam wchodzi bo podglądasz krokowo JTAGiem, to wcale tak nie musi być? Instrukcje z bloku IT (Cortex-owy "if") jeśli warunek nie jest spełniony są niby wykonywane - PC przelatuje przez te adresy - ale faktycznie są realizowane NOPy. Jeśli to jest ten przypadek, to wyłącz optymalizację i/lub ustaw...
Przeglądałem. Ameryki dzięki nim nie odkryjesz... ale na pewno stanowią zdecydowanie lepszy poziom miź polskie pozycje. I nie mówią o procesorach konkretnego producenta. 1. "The Definitive Guide to ARM® Cortex®-M3 and Cortex®-M4 Processors" jest też pozycja dla M0 "The Definitive Guide to the ARM Cortex-M0" 2. "ARM System Developer's...
Poniższe dwa linki wyjaśniają sprawę. http://www.lpcware.com/content/faq/lpcxp... https://gcc.gnu.org/ml/gcc-patches/2014-... 4\/3!! Wnioskując bez znaczenia dla optymalizacji Os (zapewne najczęściej stosowanej) i tylko dla mnożenia przez stałą. Wybór opcji ma znaczenia w przypadku rdzenia bez sprzętowego mnożenia.
Dzięki michalko12. Więcej szczegółów jest opisanych w rozdziałach 2.2.1 do 2.2.4 w "PM0214 The Cortex-M4 processor" CMSIS dostarcza też funkcje void __ISB(void), void __DSB(void),__DMB(void) Dzięki wszystkim za pomoc.
(at)Piotrus_999 To jak z tym volatile? =========================== Oto różnica między bez i z inline na Cortex M3 tej "optymalizacji". Cykle: 1834992 bez inline 557064 z inline [syntax=c]void muxC(struct RGBA *data1, struct RGBA *data2){ data1->b = (data2->a*data1->b + (255-data2->a)*data2->b) >> 8; data1->g = (data2->a*data1->g...
(at)Jakub17 Niewyrównany dostęp -> wyjątek na niektórych rdzeniach (np ARM7TDMI, Cortex-M0). Tego typu rzutowanie może nie tylko prowadzić do niewyrówannego dostępu ale także do bardzo trudnych w znalezieniu błędów, zależnych od poziomu optymalizacji: https://stackoverflow.com/questions/9865...
Zacznijmy od tego, że analizowanie tego typu przypadku jest nieco bezprzedmiotowe - jest tam dużo rzeczy zbędnych, wiele architektu nie pozwala na użycie rejestru stosu bezpośrednio - stąd add r7, sp, #0 Przeanalizujmy kod: [syntax=c]void foo(int32_t); void bar(int32_t*); int32_t __attribute__((noinline)) DSP_2(int32_t NewSample, int32_t *XCoef, int32_t...
Zacząłem swoją przygodę z ARM od CORTEX'a LPC1768. Miał być bardzo szybki. Ustawiłem PLOCFG = 0x00050063, CCLKCFG = 3 (czyli N=6 M=100 przy Fosc=12MHz co powinno dać ok. 100MIPS) i napisałem krótki programik, który "macha nóżką". Czyli: -ustaw na pin GPIO jedynkę -zrób pętlę while(i++ < 5000){;} -i=0; -ustaw na pin GPIO zero -zrób pętlę while(i++...
https://obrazki.elektroda.pl/4920872700_... Bogdan Ionescu, znany w sieci jako "thegeek", dokonał czegoś, co brzmi trochę, jak fantastyka naukowa. Udowodnił, że jednorazowy waporyzator może posłużyć jako serwer internetowy. Wykorzystał mikrokontroler PUYA , znaleziony w jednym z urządzeń, i stworzył miniaturowy serwer internetowy....
U mnie jak dam -gddb3 to zaczyna niepokojąco wariować (np step in do funkcji foo1() powoduje chwilowe wejście do foo2(), by po jednym stepie przeskoczyć na odpowiednie miejsce). Miał ktoś podobnie ? Przy włączonej optymalizacji to zasadniczo (niestety) "normalne", ale przy -O0 nie powinno się tak dziać. (at)Freddie Chopin Czy jest jakaś ewolucja aby...
Piszę dla ARM (Cortex M3) Mam TrueStudio (chciałem go poznać, tak szczrze eclipse +gcc jest lepsze i bez ograniczeń ale nie ma do niego Debugera na ST-Linka) Dzieją się dziwne sprawy z optymalizacją. Od kiedy zaczołem programować w Pascalu 10 lat temu pierwszy raz coś takiego widzę ! mam funkcję: void LCD_INIT(uint8_t kontrast) { uint8_t...
eeee... do nastepujacych rodzin procesorow sa DARMOWE kompilatory: PIC24/dsPIC3x (po 2 miesiacach tylko optymalizacja -O1) PIC32 (podobnie) ARM7/9/Cortex (pelne i darmowe GCC) i tak mozna wymieniac dalej... programator do PICow to koszt ok 150zl (firmowy PICKIT 2 na USB) lub ok 50zl - samodzielnie zmajstrowane ICD2 na USB. Dla ARMow w zasadzie nawet...
Wszystkie te których używam (sqrtf(), powf(), acosf()) są liczone przez FPU? Niekoniecznie. W Newlib (czyli libm.a) nie ma implementacji specjalnie dla tego koprocesora, jednak jeśli masz włączoną optymalizację, skonfigurowane FPU (opcje kompilacji) i dodaną flagę -ffast-math, to kompilator niektóre z nich potraktuje jako funkcje inline i zastąpi odpowiednimi...
Ponawiam pytanie- w jaki sposób ocenić czy pamięć RAM jest niewystarczająca (oczywiście pod FreeRtosem). Korzystam z debbugera od Freddiego, eclips + openocd. Istnieje może jakaś nakładka umożliwiająca podgląd pamięci RAM coś jak pod AVR studio? BTW: Asekuracyjnie przymierzam się do zmiany uk na coś o większym RAM - LPC17x (cortex-m3) Moglą koledzy...
1. Te błedy to normalna sprawa - wynikają one chyba z tego, że gdb próbuje odczytać "call stack" zbyt głeboko, co się źle kończy po pewnym czasie - odczytem nieistniejącego adresu. Nie jest to żaden problem, nie warto się tym przejmować. Debuggowanie może być też problematyczne dlatego, że wykonujesz soft_reset, który może sporo mieszać, zależnie od...
Nie wiem czemu, ale kolejny, niezależny już raz spotykam się z agresywnym zachowaniem, jeśli dany post / odkrycie uderza w czyjeś zdajemisię, tudzież interesy. Jest to zwłaszcza zauważalne podczas prób upraszczania "sztucznie utrudnionych" tematów, przeznaczonych "tylko dla specjalistów". Analizowanie standardów poza podstawowym zakresem uważam za zbędne,...
Bardzo dziękuję za informacje. Posiedziałem trochę wczoraj w nocy i: moduły DMA pamiętają adresy i pozostałe ustawienia. Po zakończeniu transferu wszystko jest przywracane w rejestrach. Jeżeli coś jest stałe, to nie trzeba tego za każdym razem ładować do rejestrów (jak w programach 2 i 3); wystarczy tylko ustawić bit DMA_CCR1_EN. Podpucha :) Rejestr...
http://obrazki.elektroda.pl/5374472000_1... Spełniając obietnicę stworzenia wydajnego rdzenia w technologii 16-nanometrów, ARM i Cadence zaprezentowały szczegóły współpracy w celu wdrożenia pierwszego procesora w procesie produkcyjnym 16-nanometerowych tranzystorów FinFET firmy TSMC. Testowy chip został zaimplementowany przy użyciu...
Tak swoją drogą to te kombinacje są nieco błędne - jeśli ilość danych do zapisania nie jest podzielna przez 4, to wcale nie można sobie przeczytać "poza" koniec tablicy - undefined behavior. Nie mówiąc już o tym, że zasadniczo rzutowanie danych typu uint8_t na uint32_t bez zapewnienia w jakiś sposób wyrównania tych pierwszych jest również błędne (na...
Zacznij zatem od porzucenia Bascoma i przesiadki na C, skoro zależy Ci na wydajności. Przy okazji możesz wziąć procesor tańszy od AVR i z 10 razy szybszy, np. jakiegoś Cortexa. Zacznij zatem od sensownego udzielenia odpowiedzi na jego pytanie. Może jeszcze ARM i frytki do tego? Nie wiesz, nie pisz. Dawid88: Zagadnienie bardzo interesujące, bo sam wiem...
Na ile znam Cortex, nic takiego nie kojarzę. No to może czas poznać zanim zaczniesz wypowiadać autorytarne opinie podkreślone wykrzyknikami? Nigdy też nie używałem tego w kodzie dla Cortex ani nie widziałem, żeby ktoś używał. To jest argument za/przeciwko czemuś? Na poważnie? Owszem, atrybut ten nie jest KONIECZNY, ale nie jest też ZBĘDNY, bo jego...
No tak, to jest jasne, niemniej jednak szukam najlepszego sposobu ominięcia tego problemu (; Zwróć też uwagę, że wartość którą dostaje kod: 80004c4: 01100028 .word 0x01100028 jest jednak częściowo zoptymalizowana, ponieważ adresy pamięci SRAM zaczynają się od 0x20000000. Optymalizacja jaka się dokonała nie jest też 'tępa' typu 'minus cośtam', bo wartośc...
Masz dla porównania. Pewnie będziesz musiał pozmieniać flagi kompilatora. [syntax=Bash] 42% 41) [0.277s] external/STM32F4xx_HAL_Driver/Src: arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -O2 -ffunction-sections -fdata-sections -Wall -Wstrict-prototypes -Wextra -Wshadow -std=gnu99 -g -ggdb3 -D STM32F401xE -I ../../../external/STM32F4xx_HAL_Driver/I... -I ../../../external/CMSIS...
No to pozostało Ci jeszcze: -ffast-math. Opis brzmi groźnie: This option is not turned on by any -O option besides -Ofast since it can result in incorrect output for programs that depend on an exact implementation of IEEE or ISO rules/specifications for math functions. It may, however, yield faster code for programs that do not require the guarantees...
Witam raz jeszcze, Mi chodziło bardziej o porównanie tego samego bardziej zaawansowanego programu, z tą samą optymalizacją, z kodami wynikowymi z tego samego kompilatora - wykonanych dla dwóch rdzeni Cortex M3 i M4. Mnie ciekawi to zagadnienie, czy rzeczywiście STM32f4 będzie ponad 2 razy szybszy od M3, czy jednak jest jakieś wąskie gardło, które uniemożliwia...
Nie, nie używam RTOS'ow, robię coś w stylu audio dsp i zależy mi na zjeżdżaniu z ceną procków. Z tego co doczytałem ta funkcjonalność nazywa się Code Coverage i jest zaimplementowana w dużej ilości ide, min: http://www.arm.com/products/tools/softwa... https://www.keil.com/videos/6d40cb56-313...
cortex firmware cortex przerwania cortex assembler
działa kuchenka zasilania sprężarki diora synteza przestrojenie
messenger historia wiadomości messenger wiadomości
Retrofity świateł drogowych Opel Astra K 2017: LED, HID, AFL Panasonic SC-HC15 - Kompaktowy System Audio