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 kompletnego...
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...
Samsung wprowadził właśnie nowe mobilne procesory Exynos 5250 oparte na architekturze ARM Cortex-A15. Dwurdzeniowy procesor dzięki wykonaniu w procesie 32 nm i innym optymalizacjom powinien być znacznie szybszy od bazujących na architekturze Cortex-A9. Samsung twierdzi nawet, że 2-gigahercowy Exynos...
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ę: ...
Firma Toshiba zapowiedziała wprowadzenie na rynek nowego mikrokontrolera TMPM36BF10FG z rdzeniem ARM Cortex™-M3 z serii TX03. Będzie on wyposażony w pamięć Flash ROM o pojemności 1MB oraz pamięć SRAM pojemności 258kB. Masowa produkcja ma się rozpocząć we wrzeniu. TMPM36BF10FG łączy w dużą...
Jak zapewne niektórym wiadomo - Cortex posiada możliwość (pośredniego) dostępu bitowego do pamięci SRAM i rejestrów sterujących peryferiami. Mam więc takie makra makra: #define BITBAND_SRAM_REF 0x20000000 #define BITBAND_SRAM_BASE 0x22000000 #define BITBAND_PERIPH_REF 0x40000000 #define...
Zbych_: Tylko dlaczego zależało to od stopia optymalizacji i co najdziwniejsze, im mniej optymalizował tym gorzej (zazwyczaj problemy się robią przy zwiększaniu stopnia optymalizacji). Niestety moja szklana kula jest w naprawie. Skoro masz możliwość debugowania, to czemu nie sprawdzisz, które przerwanie/wyjątek...
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ć...
Próbuję ogarnąć używanie FPU z rdzenia Cortex-M4 w GCC. 1. Mam toolchain linaro, multilib: >arm-none-eabi-gcc -print-multi-lib .; thumb;(at)mthumb ...
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ć...
Uzyskałem oczekiwany wynik. Tak jak mówiłeś Freddie, kolejny głupi błąd. Edytowałem makefile "z palca" w notatniku a nie z poziomu środowiska. Niestety był to make z innego projektu... Obecna postać: [syntax=c] 92 dana=sqrtf(dana*dana*dana); 0x08000794: vmul.f32 s15, s29, s29 0x08000798:...
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: tutaj z keila, Sourcery CodeBench ma w wersji pro Sourcery Analyzer Zależy mi na tym bo...
Przede wszystkim cały czas nie wiemy, co to znaczy dla Ciebie "wystarczająco szybko" albo "zbyt wolno". Uprawiamy takie gdybanie w powietrzu - "czy można jakoś zoptymalizować coś, o czym nie wiemy, czy jest wystarczająco szybkie, czy nie". Zmierz timerem szybkość dzieleń, a potem dopiero można będzie...
Wkleiłem projekt do Eclipse.... kompilacja Make.... 50sekund, tup... 22sekundy (i7 2,9GHz) Jak włączysz w opcjach projektu kompilację wielowątkową, to w make skompiluje się z podobną prędkością jak w tup. Prędkość tup można w Eclipse nieco poprawić - przynajmniej u mnie różnica była znaczna - ...
Nie prościej tak nie kombinować? Funkcje zdefiniowane wewnątrz definicji klasy (zwykle w nagłówku) są domyślnie traktowane jako z atrybutem "inline" i po co kombinować więcej? A już jakieś atrybuty "always_inline", to prosta droga to zabawy w assembler++, bo skoro kompilator uznał, że inline'owanie...
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...
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))...
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...
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()...
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...
Keil jest ciut inny niż GCC. Z O2 i O3 kod z Keil armcc jest praktycznie niedebugowalny. Jednak z moich obserwacji wynika, że czasy, gdy optymalizacja powodowała, że program nie działał, raczej już minęły. Odkąd bawię się Cortexami, tylko jeden raz zauważyłem, że optymalizacja O2 na ARM "zepsuła" program,...
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...
Linus Torvalds, opiekun systemu operacyjnego Linuks, właśnie ogłosił informację o nowej wersji jądra (5.3) dla tego systemu operacyjnego. W poprzedniej wersji (5.2) system dodał do jądra oprogramowanie układowe dla procesorów DSP audio, nowy interfejs API do montowania pamięci dla bardziej złożonych...
W poniedziałek 29 maja ARM plc ogłosiło wprowadzenie na rynek dwóch nowych rdzeni ARM, zorientowanych na aplikacje w zakresie sztucznej inteligencji. Są to Cortex A-75 oraz Cortex-A55. Rdzenie te dedykowane są do zastosowań w akceleratorach AI, co przyspieszyć ma adopcję tego rodzaju technologii...
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...
Qualcomm zaprezentował niedawno wprowadzenie do swojej oferty nowego układu dla urządzeń mobilnych - Snapdragona 675. Dedykowany jest on m.in. do telefonów ze średniej półki, jednakże dostarczać ma zaawansowanej funkcjonalności najdroższych telefonów - AI, dobra jakość gier i algorytmy do obróbki...
Wówczas takie programowanie przestaje się znacząco różnić od zwykłego C. Tia... a tworzenie zmiennych, zmienianie ich rozmiarów i dynamiczna alokacja pamięci są nawet prostsze (; Do niektórych zastosowań assembler ma sens, ale tych zastosowań jest coraz mniej - niestety lub stety - zależy co kto...
A 8051 jest na rynku 3x lat. Za np. 5 lat wcale nie bedzie go znac wiecej ludzi niz teraz, a nawet znacznie mniej. Z czasem jedne procki sa zastepowane innymi, lepszymi. Skoro istnieje "lepszy" CM3, to po co brac sie za starszy i gorszy ARM7? Po pierwsze moim zdaniem mylisz się, bo o '51 wiem coś...
Podczas niedawnej konferencji w San Jose, firma NVIDIA zapowiedziała powstanie nowej 64-bitowej wersji „Denver” swojego procesora Tegra K1. Jednostka ta zadebiutowała na tegorocznych targach CES 2014 i już zdążyła sporo namieszać na rynku urządzeń mobilnych. Jej zalety doceniła m.in....
środowisko z pierwszym stopniem optymalizacji jest darmowe Nieważne czy robisz coś dla siebie czy dla Klienta. Optymalizacja O0 lub O1 to tylko na czas pierwszych testów (feasibility study), później to kompletnie bez sensu. Nie po to pakujesz 32-bitową strukturę na PCB, żeby to chodziło jak 8-bitowiec....
Dwudziesta edycja targów: „Embedded World 2022” zgromadziła najnowsze innowacje technologiczne od setek dostawców w dziedzinie rozwoju systemów wbudowanych. Wystawa i konferencja odbyła się w Norymberdze w dniach 21-23 czerwca. Gościła 724 wystawców z 39 krajów i dziesiątki innowacji...
Ale pierwszy link: tu to jest UB - nie wiem co w nim subtelnego. Cieszę się, że umiesz czytać odpowiedzi z tamtego wątku. Ciekawe czy byś go sam zauważył, albo czy byś się spodziewał, że kompilator sobie może wtedy zrobić co mu się podoba. FLoatowe dywagacje - ostanie pół godziny próbowałem zrekonstruować...
Po zainstalowaniu ubuntu i skonfigurowaniu eclipse+codesourcery pod niego okazało się że mój archaiczny makefile nie "zbuilduje" mi projektu. Po zainstalowaniu plugina ARM do eclipse okazało się że wygenerowany kod nie mieści się w pamięci. Próbowałem na różne sposoby konfigurować ustawienia kompilatora...
Witam, Jestem początkujący jeśli chodzi o programowanie ARM wiec proszę o wyrozumiałość. Mam problem z procesorem LPC 1768, konkretnie jest to płytka Mini DK-2. Od pewnego czasu walczę z problemami w przerwaniach i nie mogę sobie poradzić. Przewertowałem setki tematów na forach polskich i zagranicznych,...
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...
Firma iWave zaprezentowała zestaw deweloperski dla opartego na Linuksie modułu iW-Rainbow G30M wykorzystującego układ Zynq Ultrascale+ z obsługą nowej platformy AI Xilinx. Xilinx tworzy obecnie liczne powiązaną technologię sztucznej inteligencji dla swoich nowych układów – produkowanych w...
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ę...
Firma Toradex wypuściła kosztujący 490 dolarów zestaw startowy "AI Vision Apalis”, który wykorzystuje Torizon Linux i zoptymalizowany stos uczenia maszynowego z AWS IoT Greengrass na module Apalis iMX8 opartym na układzie i.MX8 QuadMax. Zestaw zawiera płytkę nośną Ixora Toradex i kamerę Allied...
Maxe: Twoja metoda nie działa już jej próbowałem co więcej po wprowadzeniu takiej lini: Dodano po 4 fantom: używam makefile'a Lucjana Bryndzy w którym miejscu powinienem dodać -I./lcd bo też nie dało mi to żadnych efektów. [syntax=c] # Automatic makefile for GNUARM (C/C++) # Copyright (C)...
Sens jest taki że jak wykonujesz operacje na małych danych np 8bit ( co jest częste w małych projektach) to użycie architektury 32bit sprawia że każdy rozkaz ma 32bit i w gruncie rzeczy z 8k flash robi się 2 k. nawet Army mają dwa tryby pracy ARM 32bit i Thumb 16Bit, dla oszczędności miejsca kosztem...
Firma Adeunis RF zaprezentowała nowe zestawy startowe pozwalające na szybkie wdrożenie do aplikacji transmisji bezprzewodowej. Urządzenie może pracować, jako moduł Bluetooth, transceiver na pasma ISM (industrial, scientific and medical) oraz wąskopasmowych i bezprzewodowych szynach ddanych M-Bus....
Juz sie poprawiam :) [syntax=bash] arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -mfloat-abi=hard -mfpu=fpv4-sp-d16 -O3 -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -ffreestanding -fno-move-loop-invariants -Wall -Wextra -g3 -DDEBUG -DUSE_FULL_ASSERT -DSTM32F446xx -DHSE_VALUE=16000000...
Hejka, robię właśnie przesiadkę projektu z kompilatora IAR'a do GCC'a i mam problem z przeniesieniem niektórych ustawień, konkretniej chodzi o nie wycinanie przez linker konkretnych, nieużywanych zmiennych globalnych wygenerowanych przez zewnętrzne narzędzie, zawierających informacje np. o dacie buildu,...
Pierwszy raz Ambiq Micro zaprezentowało mikrokontroler Apollo w 2015 roku. Miał on oferować wydajność, jak Cortex-M4 przy poborze prądu na poziomie rdzenia M0+. Wszystko dzięki nowej technologii optymalizacji pracy, która pozwolić miała na pracę systemu przy bardo niskim napięciu - poniżej 0,5...
Zakładam, że jest "popyt" ( (at)nolens_volens , (at)korteksik , (at)dondu , (at)excray ), więc zakładam wątek. W tym temacie można zadać dowolne pytanie związane mniej lub bardziej z użyciem RTOSów na mikrokontrolerach i kwestiami takimi jak wielowątkowość, synchronizacja i tym podobne. Ogólne lub...
Arm - główny dostawca technologii mikroprocesorowej - wprowadził na rynek nowe zintegrowane środowisko programistyczne oparte na Eclipse, czyli Development Studio , które zastąpiło poprzednią wersję oprogramowania DS-5. Nowy software zawiera kompleksowy pakiet narzędzi umożliwiający wydajne tworzenie...
Firma Microsoft zaprezentowała zestaw deweloperski Vision AI - kosztujący 249 dolarów zestaw z 8-megapikselową kamerą 4K z systemem Linux pracujący na 10 nm SoC Qualcomm QCS603 z akceleracją dla AI. Zestaw jest przeznaczony dla deweloperów AI, korzystających z Azure IoT Edge i Azure Machine Learning. Zestaw...
Firma Eta Compute opracowała właśnie wysokowydajny układ ASIC oraz nowe oprogramowanie dla sztucznej inteligencji (AI) oparte na sieciach neuronowych, które ma pozwolić rozwiązać problemy urządzeń brzegowych i mobilnych bez użycia zasobów dostępnych w chmurze. Przyszłe urządzenia mobilne, które...
Firefly zaprezentowało nowy moduł Core-3399Pro-JD4 o otwartej specyfikacji. Kosztuje on 119 dolarów i działa z systemami operacyjnymi Linux i Android. SoM oparto o układ RK3399Pro firmy Rockchip, wyposażonym m.in. w NPU osiągające 3 TOPS. Moduł jest dostępny jako część zestawu deweloperskiego...
Firma Ambarella rozpoczęła dystrybucję sampli swojego nowego, 10-nm SoC CV28M, dla systemów AI na krawędzi. SoC wykorzystuje Linuksa, którego uruchamia na dwóch rdzeniach ARM Cortex-A53 taktowanych zegarem 1 GHz. Układ oferuje przetwarzanie CVflow CNN, ISP 320MP/s, kodowanie 4Kp30 i posiada wbudowane...
OpenCV uruchamiany jest głównie na wysokowydajnych platformach obliczeniowych czy mocnych mikroprocesorach, ale pakiet ten może wykonywać kilka rodzajów aplikacji do przetwarzania obrazu na prostych mikrokontrolerach. Przetwarzanie obrazu stało się częścią naszego życia. Nikogo nie dziwi rozpoznawanie...
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...
Ok, coś jest nie tak. Przede wszystkim systick działa na trybie optymalizacji O1 i O2. Bez zmiany kodu. Na O0 od razu jest hard fault. Ale nie występuje na żadnej linijce kodu. Nie wchodzi do przerwania i wywala od razu błąd. EDIT: Działa w momencie kiedy wywaliłem inicjalizacje: N VIC_Init(&NVIC_InitStructure);...
Podsumowując porównanie darmowych kompilatorów dla różnych procesorów na przykładzie czystego CoreMark (może komuś się przyda). Wszystkie z optymalizacją -O2 i biblioteką "Tiny printf", aby wyeliminować różny poziom jej implementacji. RAM 2000 bajtów to statyczna tablica na potrzeby obliczeń -...
Domyślna wartość - to 1 (czyli włączone wyrównanie, ale ja nie dotarłem do jednoznacznego potwierdzenia, że tak musi być wg. ARM - tak JEST w tych procesorach, które znam). Na tym w zasadzie można by zakończyć, bo: The STKALIGN bit in the Configuration and Control Register (see the relevant ARM...
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...
Chociaż adaptacja wielu technologii Internetu Rzeczy (IoT) nie nadąża za hypem, jaki sobą wywołuje, to jedna z aplikacji spotkała się już z ogromną ilością adopcji i kolejnych innowacji. Ten ciągle rosnący i dywersyfikujący się segment IoT to inteligentne domy i inteligentne budynki. Właściciele...
Aplikacje Przemysłu 4.0 generują ogromną ilość złożonych i dużych zbiorów danych. Rosnąca liczba czujników i ogólnodostępnych źródeł danych wymaga coraz bardziej szczegółowego wirtualnego spojrzenia na maszyny, systemy i procesy. To naturalnie zwiększa potencjał generowania wartości dodanej w całym...
I co najlepsze, bez jakiekolwiek narzutu Mamy XXI wiek, GCC ogarnia tak proste optymalizacje, a uwierz mi daje radę z trudniejszymi Polecam: Kompilator kompilaorowi nie równy, a tutaj koleś pisze bez ogródek: x86 a cortex-m to dwa różne światy i nie ma co porównywać, chociaż nie neguje...
Łańcuch narzędzi firmy Eta Compute cały czas rośnie, wraz z zapowiedzią wprowadzenia nowego kompilatora dla chipa ECM3532, który usprawni rozwój rozwiązań wbudowanych. W połączeniu z zestawem deweloperskim wielkości monety i partnerstwem z Edge Impulse, startup yten przenosi się na wyższy poziom...
Wszyscy z zainteresowaniem śledzili postęp prac nad otwartym sterownikiem Panfrost dla układów GPU ARM Mali Midgard i Bifrost. Proces z czasem zyskał więcej energii, dzięki oficjalnemu wsparciu firmy ARM. Obecnie sterowniki jest coraz bliżej osiągnięcia zgodności z OpenGL ES 3.0 w ramach prac nad...
Po pierwsze, ten temat zszedł na bok jak tylko się dało. Żyjemy w demokracji i każdy ma wolny wybór ;) Ja wybrałem asemblera ,bo denerwowało mnie ciągłe poprawianie i debugowanie programów w celu usunięcia błędów ,które często były winą kompilatora C . Teraz po debuger sięgam znacznie rzadziej i...
Witam Mam skompilowany przykład na stm32f103VCT6, kwarc 8MHz. Przykład dość znany ze strony Freddiego project: stm32_blink_led. kawałek pliku konfiguracyjnego: #define CRYSTAL 8000000ul #define FREQUENCY 72000000ul Główna pętla ograniczona do while (1) { //for...
Oj, procesor wykonuje swoje operacje z prędkością taktowania. I na tym koniec. reszta zwykle ma swoją prędkość, wolniejszą od procesora. Wtedy procesor czeka aż się operacja wykona. Procesor wykonuje 1 instrukcję na cykl tylko wtedy gdy: 1) Operacja nie wymaga użycia pamięci (chyba że wewnętrzna pamięć...
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...
1. Odpowiedź pytaniem - a dlaczego by nie? Równie dobrze mogę Cię spytać, czemu Twój program składa się z x plików zamiast z jednego i byłoby to nawet lepsze pytanie, bo taki program może być bardziej zoptymalizowany przez kompilator niż coś rozdzielonego na setkę plików (; 2. Jedyne miejsce gdzie kolejność...
1. Ten drugi (z "+ load") programuje układ przed rozpoczęciem debuggowania, a ten pierwszy debugguje to co zostało zaprogramowane inaczej/wcześniej/poprzednio. Jeśli chcesz w kółko debuggować ten sam kod, to raz odpalasz wersję z "+ load", a potem tylko tą "bez". 2. Nie ma takiej różnicy, choć oczywiście...
Cóż detale zawsze pozostają. Przykładowo latency w CM0 na poziomie 3 razy wolniejszego (zegarowo) PIC'a. Niedawno zamawiałem do prób LPC1343 w Farnellu. Po niecałym roku dostałem maila od nich, że produkt jest wycofywany z ich oferty. Z Microchipem, Freescale, i żadnym dystrybutorem jeszcze takie kuriozum...
Hej, chciałem zaimplementować zbieranie statystyk w systemie FreeRTOS. Zrobiłem jak w opisie funkcji: 1.włączyłem flagę configGENERATE_RUN_TIME_STATS 2.portCON... skonfigurowałem counter. 3.portGET_RUN_TIME_COUNTER_VAL... - obsłużyłem odczyt z countera. Przy kompilacji...
Witam, Wrzucę swoje 2 grosze: #0. C++ to jest generalnie do bani ;) Do dnia dzisiejszego niektóre elementy standardu są tak niejednoznacznie wytłumaczone że różne kompilatory mogą w pewnych kwestiach(template) generować trochę inny kod. Ciekawe jak radzą sobie kompilatory na uC ? #1....
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ć...
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...
Dla porównania... wypełnienie 1 kolorem matrycy 800x480x16bpp na Xmega128A1U(at)32MHz ze wsparciem z EBI i DMA, pisane w asm zajmowało mi ok. 0,75s, podczas gdy to samo na STM32F417(at)168MHz + FSMC+DMA, pisane w C, bez optymalizacji trwało ok. 15ms (>50x szybciej). Trochę OT, ale coś tu mocno...
Firma NXP zaprezentowała nowe mikrokontrolery LPC11E37H oraz LPC11U37H. Jak poinformował producent, obydwa mikrokontrolery posiadają „Handler” peryferiów I/O, umożliwiający projektantom elastyczność w dodawaniu rozrastających się funkcjonalności peryferiów w dowolnym cyklu projektowym. Nowy...
Temat jakoś umiera śmiercią naturalną. Pozwolę sobie nieco odświeżyć. Hardware: - HY-mini (Cortex M3) - LCD ze sterownikiem ssd1289 (FSMC) - karta sdhc (SDIO) Software: - fatfs R0.10 („testowałem” też wcześniejsze wersje) - „HAL” dla fatfs – silnie wzorowany na...
Proszę bardzo: Program jest taki prosty testowy: #include "stm32f1xx_hal.h" int main(void) { HAL_Init(); while (1) { }; } A oto Build Log: Komunikaty występują przy kompilacji plików: - stm32f1xx_hal.c - stm32f1xx_hal_cortex.c -...
... zamierzam pouczyć się trochę programowania układów Microchipa... Dlaczego chcesz to zrobić? Czy produkty 32-bitowe uC od MCP są lepsze niż Cortex-M4? - są wolniejsze/mniej wydajne, - zużywają więcej prądu, - mają długie erraty, a część układów peryferyjnych po prostu nie działa (vide PMP lub...
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...
2 pierwsze symbole nie są nawet użyte (albo ja tego nie widzę) a linker ich nie wywalił. Funkcje te są częścią inicjalizacji/deinicjalizacji biblioteki języka C. Są użyte pośrednio, przez wskaźniki. na moje niewprawne oko to przynajmniej te 4 pierwsze symbole są zupełnie zbędne. Trzecia funkcja...
Autor tematu od pewnego czasu już milczy, a szkoda. Zadając pytanie "Jaki mikrokontroler po AVR?", poprosił o pomoc w rozwoju, a nie w trwaniu na obecnym poziomie. Tutaj jak zwykle dyskusja o tym dlaczego 8-bitowy AVR jest lepszy niż dowolny uC 16- lub 32-bitowy. Widzę tutaj mnóstwo nietrafionych argumentów: -...
(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:
Te makro powoduje wymuszenie przełączania kontekstów jeszcze przed wyjściem z przerwania jeśli argument jest różny od zera, a argument jest różny od zera w tym przypadku jeśli zwolniony semafor wybudza taska, który ma wyższy priorytet od tego, który był wykonywany przed wejściem w przerwanie. Faktycznie,...
Wracając do tematu. Aż dziwne, że nikt nie wspomniał o instrukcjach ldrex oraz strex, które są przydatne przy tego typu operacjach. Jak ktoś nie używa przedpotopowego kompilatora (to jest zgodnego z C11) to ma to wszystko zaimplementowane: Jest to oczywiście również fajna sprawa, ale... nie działa...
Pytanie 1: 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 nie spowodowane przerwaniami...
Od czasu wprowadzenia PPS i CLC minęło prawie 10 lat. Trochę dużo jak na "ostatnio" i "nowość". Pisząc w C nikogo nie interesują takie aspekty jak przełączanie się między bankami. Nie potrafię się zgodzić z Tobą, ponieważ analiza kodu wynikowego pokazuje zaskakująco dużo zbędnych instrukcji przełączających...
Proponuje dodać do ulubionych stron: [url=]STM32 A tutaj więcej szczegółów. [url=]STM32F103RB [url=]ST... słabo to wygląda jeżeli jednocześnie chcesz rozpocząć przygodę z STM32 i uczyć się C. Można, ale będziesz potrzebował dużo cierpliwości i wytrwałości. SPL - Standard Peripheral...
Oby tak było jak piszesz, mam nadzieję że nie wyłączą optymalizacji w AS jak w ich środowisku. To jest pewne... Microchip wie że to było by strzelenie sobie w stopę. Będzie istnieć i ich komercyjny kompilator i gcc darmowe które można użyć w obu środowiskach. Natomiast co do samych AVR-ów i posta...
GPIOA->BSRR |= GPIO_BSRR_BS5; To nie źródło problemu ale tak się tego rejestru nie używa. To jest write only rejestr czyli tylko samo przypisanie Zgadza się, dzięki :) Co do głównego problemu, punkt 1. Użyj debugera okazał się bardzo pomocny :) Założyłem, że skopałem coś w Makefile (np....
Po tym jak Intel zaprezentował dziewiątą generację procesorów z linii Core, do mediów wyciekły plany rozwoju firmy na najbliższy czas. W drugim kwartale tego roku spodziewać można się prezentacji 10-nanometrowego procesora Ice Lake oraz układów Lakefield o zredukowanym poborze mocy. Układ Lakefield...
Firma SparkFun wypuściła właśnie swoją wersję zestawu rozwojowego do robotyki JetBot AI Kit, oparty na module Jetson Nno firmy Nvidia. Robot ten wyposażony jest w Qwiic pHat, kamerę szerokokątną i wiele innych akcesoriów. Kiedy w marcu Nvidia wypuściła pracujący pod Linuksem moduł Jetson...
Firma Andes zaprezentował gotowy na Linuksa, oparty na RISC-V serię rdzeni dla procesorów AndesCore 27. Rdzenie te zawierają jednostkę przetwarzania wektorowego (VPU), dedykowaną do akceleracji algorytmów AI. Przy okazji szczytu RISC-V, jaki miał miejsce niedawno w San Jose, firma Andes Technology...
czyli procesor musi być szybszy na integerach niż na floatach Zasadniczo to jest w większości przypadków spełnione gdy ocenia się bezrefleksyjnie... w przypadku gdy jednak odrobinę pomyślimy to okazuje się, że czasochłonne obliczenia optymalizujemy by trafiały do SIMD, co za tym idzie zdecydowanie...
Minimalizuj przestoje, zwiększ produktywność i zmniejsz koszty dzięki konserwacji opartej na warunkach i przewidywaniu. Każdego roku na świecie instaluje się około 300 milionów silników elektrycznych, a co roku liczba ta zwiększa się o około 40 milionów nowych jednostek. W większości przypadków każdy...
volatile nie pomógł. Dodano po 53 Może te szablony w atollicu są przestarzałe/niepoprawne i dlatego jest kłopot. IMO: To by od początku były problemy Dzięki spróbuję Dodano po 26 Optymalizacja jest ustawiona domyślnie na "None (-O0)". Jak zatrzymuję program podczas debugowania...
Chińska firma Hikvision jest jednym z czołowych dostawców kamer monitoringu na globalnym rynku, który w zeszłym roku zwiększył się aż do 20 miliardów dolarów. Zapotrzebowanie na systemy nadzoru wzrosło w ciągu ostatnich kilku lat, zarówno w Chinach, jak i na całym świecie. Wiele samorządów i korporacji...
Klasyczny Doom został przeniesiony na niemalże wszystkie rodzaje platform, w tym na platformy ESP32 z 4 MB pamięci PSRAM, ale port Dooma na Raspberry Pi RP2040 jest trudniejszy, ponieważ pamięć RAM jest ograniczona do zaledwie nędznych 264 KB wbudowanych w mikrokontroler, a w przypadku płyt z pamięcią...