Witam , Wracam do tematu . Zegar skończony i przetestowany . Podziękowania dla autora za pomoc . Kilka krótkich filmów z pracy zegara wykonane telefonem . Jedna z dwóch gier Tetris Na dłuższy film zapraszam do oglądnięcia Dokonane zmiany . W matryc liter dodałem jeszcze...
Pod koniec ubiegłego roku firma STMicro zaprezentowała, jak twierdzi, pierwszy mikrokontroler na rynku wykonany w technologii 90 nm - STM32G0. Jest to układ z rdzeniem ARM Cortex-M0+ o taktowaniu zegarem o częstotliwości 64 MHz. W momencie prezentacji pierwszego układu, rodzina ta obejmowała...
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...
Dobra, to ja się podczepię: odpaliłem w końcu semihosting, natomiast nie bardzo wiem, co zrobić ze skryptem linkera - bo nie do końca łapię pewne rzeczy: /* Linker script to place sections and symbol values. Should be used together * with other linker script that defines memory regions FLASH...
W emulowanym EEPROMie najwygodniejszą opcją jest przechowywanie danych o stałym rozmiarze, który przy okazji w jakiś sensowny sposób pozwala wykorzystać rozmiar strony. Jeśli możesz się ograniczyć tak że KAŻDY wpis ma ten sam rozmiar, to emulowany EEPROM jest opcją. Choć wiele zależy od tego jaki dokładnie...
Tyle że ja mam implementację EEPROMu podobną do tej od ST, tyle że przechowującą dowolny rozmiar w jednej "komórce". Moja implementacja jest dobra jeśli masz kilka-kilkanaście-kilkadziesiąt zmiennych do zapisywania w teorii dowolną ilość razy w dowolnej kolejności. Jeśli u siebie będziesz przechowywał...
Stosy są wyrównane do 8. A pamięci prawie nie używam, zmiennych globalnych jest jakieś 100b a stos jest ustawiony na 2000b. Trochę podłubałem w temacie i doszedłem do wniosku, że wykrzaczanie następuje gdy rozmiar kodu wynikowego zbliża się do 8kB (robię na F100c4t6b który ma 16kB). Dla testu zrobiłem...
Kurcze, zgłupiałem totalnie, proszę o wytłumaczenie jak to działa. Dla AVR mając np tablicę danych normalnie trafiała do RAM, często wykorzystując go w całości więc dodawało się PROGMEM, lądowała we FLASH (dosłownie zmniejszał się rozmiar zajętej pamięci RAM a zwiększał pamięci FLASH). Do tego używało...
Witam Korzystam ze środowiska Eclipse. OpenOcd wydaje mi się, że działa poprawnie (widok konsoli): Open On-Chip Debugger 0.7.0 (2013-05-05-10:41) Licensed under GNU GPL v2 For bug reports, read http://openocd.sourceforge.ne... : only one transport...
Witam. Chciałem dzisiaj przedstawić kolejny projekt z cyklu "inni mają - mam i ja" ;) Tym razem jest to miniaturowy sterownik ethernetowy - " uWebServer ". Układ zbudowany został w oparciu o mikrokontroler Cortex-M3 - STM32F103C8T6, do tego kontroler ethernetu "znany i lubiany" - ENC28J60....
Witam, Długo już szukam i nigdzie znaleść nie mogę: Jak rozpoznać jaki jest rozmiar obszaru backup danego stm32? Niektóre mają 10słów (20bajtów), inne 42słowa (84bajty), ale nigdzie nie mogę znaleść klucza które są jakie, i czy może są jeszcze jakieś inne wersje. Przekopałem dużo dokumentacji,...
Zacznijmy od tego, że OpenOCD nie uruchamia się poprawie, wiec warto byłoby dochodzić do sprawy "krok po kroku". Przede wszystkim plik lpc2xxx.cfg NIE JEST przeznaczony do uruchamiania bezpośredniego, należy ZAWSZE użyć któregoś z konkretnych plików. Tymczasowo możesz użyć pliku lpc2148.cfg, ale najlepiej...
Tak naprawdę, to ten wzór powstał z waszych :) Z lewej strony równania (at)stmx, a z prawej Twojego :) Page_127 to początek ostatniej strony flash = 0x0801FC00. U mnie w STM32F103 strony mają rozmiar 16x1024. Kompilator utworzony w Eclipsie na podstawie poradnika Freddie Chopin.
Nie musisz odblokowywać ani obsługiwać przerwań timera. Jeśli raz włączysz wyzwalanie ADC, będzie ono włączone (raczej - co prawda STM32F1 są strasznie skopane, ale chyba nie aż tak). No ale jak widać nie działa, nawet nie wchodził w przerwanie więc nie wiem już jak to powinno być poustawiane. DMA...
Jeżeli chodzi o ffconfig.h to próbowałem różnych ustawień a z desperacji ;) nawet zupełnie kosmicznych ich kombinacji. Jeżeli chodzi o ustawienia kompilatora to -O0 -> prawie najnowszy bleeding edge toolchain. Przed każdym buildem robię clean'a. Dodam, że dzieje się to na dwóch różnych kartach. Próbowałem...
Zamiast rzutować na u8 cały czas, prościej zrobić funkcję przyjmującą wskaźnik amorficzny - void* - wtedy funkcja "łyka" wszystko co jest wskaźnikiem. Wynik sizeof() technicznie jest typu size_t, a nie u8 (w końcu rozmiar może być większy niż 256 bajtów. Po skasowaniu strony nie musisz jej całej...
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)...
Ech, tu nie chodzi o oszczędzanie flasha tylko o wydajność, która jest konsekwencją rozmiaru kodu wynikowego). Ja rozumiem, że nie ma się co szarpać na oszczędność każdego bitu flasha, ale te biblioteki są iście niewydajne. Struktury inicjalizacyjne przejadają niepotrzebnie pamięć (a znając paru "programistów"...
Wiesz że dane zapisane w ten sposób zajmują 2x lub 3x więcej pamięci flash niż rozmiar struktury? Chodzi o wyrównanie Flasha do 4 bajtów? Próbowałem zapisać rzutując na int a nie char i dać size jako: [syntax=c] int size = sizeof(EEPROM_Data)/sizeof(int); [/synt... zapisywać do Flasha po...
Dzięki za odpowiedź, ale to chyba nie jest w HAL... Zgadza się. Nie jest. Ale STM przepisał te algorytmy również na HAL i te źródła znajdują się np. w repozytorium CubeMx w ścieżce: Repository\STM32Cube_FW_F1_V1.... To jest...
Witam. Testuję właśnie środowisko System Workbench for STM32 i mam problem z debuggerem dla procka STM32F030F4P6. Wgrywanie do pamięci FLASH działa. Programator ST link z płytki stm32VL, połączenie przez SWD. Konsola odpowiada: Open On-Chip Debugger 0.9.0-dev-00415-g2d4ae3f-dirty (2015-06-12-17:54) Licensed...
Witam. Zaopatrzyłem się niedawno w aplikację zwaną Flash loader demonstrator. Umożliwia ona m.in. zapis i odczyt pamięci programu mikrokontrolera STM32 przez bootloader poprzez RS232. Gdy chciałem odczytać pamięć flash i zapisać obraz pamięci w pliku hex mocno się zdziwiłem, gdyż plik miał rozmiar 319744...
Z kolei modyfikacja skryptu linkera ma tą wadę, że jeśli przeniosę kod na inny MCU to znowu bedę musiał ten skrypt modyfikować. Emulacja oparta na czystm C po prostu zadziała. No... bo każdy mikrokontroler ma dokładnie ten sam rozmiar strony i dokładnie ten sam kontroler pamięci, więc z pewnością...
Po pierwsze ta linijka jest bardzo ciekawa: DISCARD : { libc.a ( * ) libm.a ( * ) libgcc.a ( * ) } Ja bym to wywalił od razu, bo to wcale nie usuwa informacji debugowania, tylko CAŁOŚĆ kodu biblioteki, który w tym momencie nie będzie zlinkowany - dzielenie,...
Offset powinien być wielokrotnością rozmiaru tablicy wektorów zaokrągloną w górę do najbliższej potęgi dwójki. W moim przypadku to: 59 wektorów, a po zaokrągleniu w górę to 64. 64 należy pomnożyć * 4 (bo 4 bajty na wektor) i mamy 256 = 0x100. Tyle także wymaga funkcja NVIC_Set_VectorTable. Wracając...
Ciekawy pomysł... Jego jedyny minus to taki, że cały wirtualny eeprom jest sprawdzany, czy jakieś jego elementy są na pełnej stronie flasha. Jeżeli aplikacja będzie korzystała z niewielkiej części wirtualnego eepromu, to procedura transferu danych między stronami będzie na pusto czytać wielokrotnie...
Nie wiedziałem, że duży rozmiar pamięci obliguje programistę do pisania dłuższych i mniej czytelnych programów. ;) Poza tym większy flash większa cena znacząca.
zwiększenie rozmiaru powoduje błąd kompilacji z powodu niewystarczającej ilości pamięci To na początek zacznij od poznania różnicy między sin() a sinf(), potem do rozważań dodaj też to, że M_PI jest typu double, podobnie jak wszystkie inne stałe w formie "x.y". 16 kB RAM i 128 kB flash to oczywiście...
Efekt dokładnie taki sam jak w przypadku moich wypocin. Zawiesza się i ląduje gdzie? Próbowałeś zmniejszyć w skrypcie linkera rozmiar dostępnej pamięci flash i RAM, np. każdą o połowę? Pokaż te pliki które zmieniłeś.
Wszystko da się zrobić, ale nie wszystko ma sens. Moduły będą miały strukturę płaską tzn wywołując moduł z modułu nie będzie się zmieniał stos moduły wiedzą który jest kolejny a który poprzedni moduł. I tu chyba nie rozumiesz, o czym piszesz. Jeśli jeden moduł woła drugi, to ten drugi musi wrócić...
No ale przecież nie masz skryptu linkera - bez tego to po prostu nie ma prawa działać... A ta wtyczka z której korzystasz kompiluje pliki assemblera tylko jeśli mają rozszerzenie .S, a nie .s. Zestaw porad jest taki: Weź przykładowy projekt dla STM32, wstaw do niego tylko swoją funkcję main()...
przyswojenia sobie z punktu widzenia początkującego całkiem pokręconych koncepcji architektury ARM może być odstraszające Raczej nie o to chodzi. Rdzeń ARM zasadniczo nie ma nic do tego. Trochę ma podłączenie peryferiów (w tym w niektórych przypadkach PAMIĘCI) poprzez wspólną magistralę peryferyjną....
Moduły zasilaczy warsztatowych, takie jak DPS5005, dostępne są od dłuższego czasum.in. na AliExpress. Doczekały się wielu recenzji, w większości pozytywnych. Jednakże często wskazywanym problemem z tymi modułami jest kiepskiej jakości oprogramowanie – interfejs użytkownika pozostawia wiele...
Autor poniższego zestawienia jest inżynierem i konsultantem wsparcia dla systemów wbudowanych. W swojej karierze poznał on szereg różnych architektur mikrokontrolerów, różniących się wydajnością, wyborem peryferii, poborem zasilania etc. Wybór odpowiedniego układu stanowi zawsze o sukcesie projektu....
Ponieważ dopuszczalne są też pytania z dziedziny, być może tych niemądrych Bynajmniej nie jest to żadne "niemądre" pytanie. Jest bardzo dobre i pokazuje właśnie jak bardzo zmitologizowane są RTOSy. czy taki STM32G070RBT6 z 36 KB ram oraz 128 KB flash (w detalu ok. 5.5 zł) to już się nada czy nie...
Od pewnego czasu zauważyłem na forum zainteresowanie tematyką programowania mikrokontrolerów i mikroprocesorów ARM w języku C# z wykorzystaniem platformy .NETMF będącej córką słynnej platformy Microsoft .NET Framework, którą zna chyba każdy. Niedawno wpadła mi do rąk nowa książka wydawnictwa BTC na ten...
LPC11E i parę innych serii. W rodzinie STM32F też się parę serii znajdzie. Można też użyć zewnętrznej pamięci na I2C lub SPI za grosze - to po pierwsze. A po drugie: Pamięć Flash w STM32 może być programowana pojednyczymi słowami, więc nie ma żadnych problemów w użyciu jej do przechowywania często...
Najpierw napisz do czego będziesz go wykorzystywać? Do programowania pamięci NOR Flash o rozmiarze 64MB (512mbit). Tylko i wyłącznie do tego. JTAGiem przez STM32 z OpenOCD trwa to dwie godziny. Seggerowski J-Flasher jest z 10 razy szybszy ale ten rozmiar go akurat przerasta i się wysypuje. Z 16MB...
1. Biorę przykład projektu ARM (akurat ten dla STM32, bo posiadane przezemnie LPC2103 ma za mało pamięci flash na te okrutne funkcje printf()) z mojej strony - 2. Wrzucam do main() następujący kod: #include <stdio.h> #include <math.h> #include <errno.h> #include <sys/types.h> caddr_t...
już wiem czemu działa [; myślałem, że w STM32 jest tak jak w ARM7 - że jedynie kawałek pamięci jest remapowany w obszar wektorów przerwań. Doczytałem właśnie, że jednak cały FLASH jest dostępny zarówno pod adresem 0 jak i adresem 0x8000000. Właśnie dlatego całość działa. Cofam więc to co powiedziałem...
Jeszcze posprawdzam proponowane przez Ciebie zmiany. A masz skrypt do Atmeli ? Jeśli weźmiesz ten z przykładu dla LPC2103 to będzie się różnił tylko adresami i rozmiarami pamięci ROM/RAM - każdy skrypt linkera dla ARM7 jest taki sam. Max 4 liczby do zmiany: MEMORY { rom (rx) :...
Trzeba zmienić PROGRAM. Domyślnie w STM32 tablica wektorów znajduje się w flash, a to skąd uruchamiasz program czy jak jest skompilowany nie ma żadnego znaczenia. Manual: Boot from the embedded SRAM: SRAM is accessible only at address 0x2000 0000. Note: When booting from SRAM, in the application...
Przedstawiamy robota klasy Line Follower o nazwie Impact. Jest to ulepszona wersja Moduł z czujnikami Jest to element najdalej wysunięty od środka obrotu. Moment bezwładności jest duży (masa pomnożona przez kwadrat odległości od środka obrotu), dlatego też aby móc wysunąć daleko czujniki,...
Mogłem się nieprecyzyjnie wyrazić z "modelem pamięci". Ale uderzyło mnie to, że w STM32 mam totalnie inaczej porozkładane sekcje "peryfiera-flash-ram" aniżeli np. w LM4F. Zwróc uwagę jak zaczynają w STMach sekcje rom(rx), jak w LPC, a jak w LM. W STM od 0x08000000, od LM od 0, w LPC nie wiem bo ich nie...
Witam. Realizuje projekt urządzenia przeznaczonego do samochodu ciężarowego zawierającego moduł GPS oraz GSM i procesor STM32. Zadaniem urządzenia jest (w uproszczeniu) zatrzymywanie pojazdu w wypadku przekroczenia za programowanej uprzednio strefy oraz logowanie stanu pojazdu. Urządzenie oparte jest...
Cześć! Chciałbym przedstawić projekt, który powstawał przez ostatnie 1,5 roku. Na początku wspomnę, że nie tworzyłem go sam – zaczynaliśmy projekt w 2 osoby. Ale o tym napiszę dalej. Najpierw opowiem o samym projekcie. Pierwotne założenia Celem było stworzenie uniwersalnego sterownika...
W25Nxxx to zwykła pamięć SPI/qSPI kompatybilna z pamięciami 25xx. Możesz zaprogramować dowolnym programatorem który obsługuje pamięci o rozmiarze 1Gbit, wybierasz dowolny numer kostki o takiej pojemności i wyłączasz opcje sprawdzania ID. W miare tani programator do spi-flashy to program flashrom +...