Cześć :) W związku z tym, że w miejscu w którym pracuję istnieje potrzeba programowania pamięci SPI których wsad jest taki sam, stwierdziłem że zbuduję urządzenie, które będzie kopiowało zawartość jednej kości do drugiej. Niby nic, ale z czasem chciałbym zająć się zawodowo projektowaniem oraz programowaniem mikrokontrolerów, więc jako pierwszy projekt...
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 bajtów, a flash mojego STM32F103RB ma "tylko"...
Wedłóg bombzo dodałem linię : OB->WRP3 = (uint16_t)0xFF000000; [syntax=c] while(FLASH->SR & 1<<0); //BSY: Sprawdzam czy flash nie jest zajęty. // FLASH->KEYR = 0x45670123;//Jak taką sekwencją zapiszę klucz, to się odblokuje jednorazowo zapis do flasha. // FLASH->KEYR = 0xCDEF89AB;//Odblokowuję zapis do flasha tą sekwencją zapisu....
Z racji że STM32 ma liniową pamięć oraz możliwość zapisu do flasha danych z poziomu aplikacji postanowiłem wykorzystać go do symulacji eeprom. Zapis danych do flash działa OK. Natomiast mam problem z zainicjowaniem struktury pod konkretnym adresem. const D DFLASH __attribute__ ((section(".variables&q... = { {{40,20},26},...
O.K. Sam sobie poradziłem z problemem :). Sprawa z zapisem danych na pamięć flash tak aby po ponownym załączeniu zasilania dane tam wciąż były (EMULACJA PAMIĘCI EEPROM) okazuje się być bardzo skomplikowana. He pewnie dlatego nikt na forum nie wiedział ;). Zacznijmy od tego, że jeśli chcemy zapisać coś do pamięci flash to musimy dokładnie wiedzieć pod...
to tablicy unsigned charow w flashu stm32 juz nie mozna trzymać? sprawdzilem na tablicy uint8_t zarówno zapis jak i odczyt działa bez zarzutów. W takim razie nie wiem co mogło być przyczyną problemów w przypadku pojedynczych zmiennych. To, że ci nie działa tak jak trzeba to jest wina twojego softu, nie flasha ani kompilatora. Sprawdź jak zmusić GCC...
Odpowiedź na Twoje pytanie jest dosyć prosta - protokół SWD nie ma rozkazu zapisu do flash i tego się po prostu nie da tak zrobić jak zapisu do RAM. Oprogramowanie na PC, które się komunikuje przez SWD z układem (np. program do ST-Linka, OpenOCD) wgrywa do RAMu specjalną procedurę, która fizycznie realizuje zapis (poprzez odpowiednią sekwencje zapisów...
Być może da się pokombinować z wyzwalaniem transferu timerem. Z drugiej strony nie bardzo rozumiem, jaki miałby być z tego pożytek - przesadzenia całego oprogramowania do RAM łatwe nie jest, a na czas zapisu procesor zatrzyma się przy dostępie do Flash, chyba że to model z dwoma bankami.
Mieszasz ze sobą dwie zupełnie oddzielne kwestie. Adresy w pamięci dotyczą komórek jednobajtowych, bo niby jak inaczej miałoby to być? Niemniej jednak fizyczny zapis dokonywany jest po 4 bajty na raz jeśli ustawiłeś zapis 32-bitowy.
Witam Czy obsługa przerwań STM32F1 od UARTa nie koliduje z jednoczesnym zapisem do pamięci flash mikrokontrolera (czy podczas zapisu do pamięci flash nie są blokowane przerwania) ?
Aktualizacja z września 2025: zobacz tutaj, aby uzyskać szczegółowe informacje na temat konwersji STM32 przez UART zamiast J-Link (tj. J-Link nie jest wymagany) https://www.elektroda.com/rtvforum/viewt... (dzięki (at)max4elektroda!) zobacz tutaj, aby uzyskać wyższą wersję przekonwertowanego oprogramowania CK-Link Lite dla STM32...
Jestem nowy w STM32. Podłączyłem flash w25q128jv poprzez QSPI z poradnika https://controllerstech.com/w25q-flash-s... działa, ale podczas próby odczytu pamięci zwraca mi zawsze 0x88, lecz gdy odłączę GND do pamięci odczyt działa z artefaktami.
Typowa pamięć flash w ESP32 wytrzymuje od 10 000 do 100 000 cykli zapisu/kasowania na sektor. NVS w ESP32 implementuje mechanizm wear leveling , który automatycznie rozdziela zapisy na różne sektory pamięci flash, co wielokrotnie wydłuża żywotność pamięci. Jeden "zapis" w NVS nie oznacza jednego cyklu kasowania sektora. Partycja NVS jest dzielona na...
Witam! Chcę wgrać parę danych do pamięci mikrokontrolera STM32F107 (ustawienia domyślne). Nie wiem za bardzo jak powinien wyglądać kod linkera do takiego zapisu? Korzystam z CodeSourcery ze strony Freddiego. Nie posiadam debuggera, więc kod mogę wgrywać tylko poprzez bootloader na USART. Pamięć chciałbym zapisać paroma danymi 32bit, a następnie mieć...
A co chcesz konkretnie robić z tą pamięcią? Tylko zapis/odczyt w run-time? Czy chcesz rozszerzyć pamięć na program?
Nie ma właśnie nic więcej wspomniane o tym, przewija się raz jeszcze na początku ta fraza, ale żadnego objaśnienia Jest w DS objaśnienie (koło strony 500, "Theory of Operation" ) The EEPROM operates using a traditional Flash bank model which implements EEPROM-type cells, but uses sector erase. Additionally, words are replicated in the pages to allow...
Czy tak trudno odpowiedzieć na pytanie? Sam się czasami dziwie, że to taki trudne. Nie specjalizuje się w angielskim, a trudno przetłumaczyć/znaleźć zagadnienie w pdfie. Wszystko wynika ze specyfiki takiej pamięci. Pomijając aspekty fizyczne, czysta komórka pamięci flash odpowiada stanowi "1". Podczas zapisu do pojedynczej komórki można tylko i wyłącznie...
Uruchomiłem kod, który wkleiłeś. Dopisałem tylko definicje dla Bank_NAND_ADDR ( 0x70000000 ), CMD_AREA ( 0x00010000 ), ADDR_AREA ( 0x00020000 ) i DATA_AREA ( 0x00000000 ). W funkcji FSMC_NAND_ReadID() pominąłem zapis do struktury i odczytuję zmienną data - mam w niej prawidłowe dane. Dodano po 8 Może nie włączyłeś taktowania dla FSMC? Ja mam to w innej...
W sumie racja, bo wygenerowac sobie wartości potrafie tylko nie wiem właśnie jak ugryźć zapis do pamięci FLASH.
Oczywiście, że można to zrobić bez użycia HAL, czy SPL. Kod, który tu przedstawiłeś wymaga bardzo wielu poprawek. Nie uważasz, że funkcja zapisu do pamięci jest zbyt skomplikowana? Długa na 88 linii, zawiera dziwne stałe typu: 1 << 14, 0xF3. Np co robi ta instrukcja: [syntax=c]FLASH->CR &= 0x1FFE;[/syntax], albo taka: [syntax=c]while(FLASH->SR...
Bardzo często EEPROM jest emulowany w pamięci FLASH w sposób niewidoczny dla użytkownika. Nie można emulować funkcjonalności takiej jak wytrzymałość na ilość cykli zapisu/kasowania albo możliwość nadpisania pojedynczego bajtu. Jak nie można? Potrzeba 1kB EEPROM 100'000 zapisów (jak np w AVR), przeznacza się na pamięć 10kB FLASH, która ma ograniczenie...
Czy można to zrobić? - Oczywiście. Pytanie, czy trzeba? W miarę łatwo uzasadnić to, że np. jakieś dane konfiguracyjne są zapamiętywane w stałym miejscu pamięci Flash albo dane nie mają mocnego związku z kodem i są ładowane niezależnie od kodu dla każdego egzemplarza urządzenia, ale Twój przypadek jest zupełnie inny. Zamiast uczciwie wstawić dane do...
http://obrazki.elektroda.pl/5451075700_1... Jakikolwiek ST-Link (tutaj St-LinkV2 z płytki testowej). Ustawienie tej opcji powoduje zablokowanie odczytu z FLASH aż do pełnego skasowania pamięci do 0xFF. Poniżej jest tabela z prawami zapisu do stron pamięci flash. Ustawienie tych opcji powoduje brak możliwości zapisu do pamięci flash...
Na przykład Cypress, kiedyś Spansion: S25FL512Sxxxx to 512Mbit albo 64MB NOR Flash z interfejsem QSPI, Dual line or single line SPI. Inna opcja to N25Q512xxxx. Nie znalazłem pamięci o większej pojemności, które mogą współpracować z kontrolerami QSPI w STM32. Albo są podwójne NCS, ale pojedyncze linie danych, albo są to układy z zupełnie innym interfejsem....
W wyszukiwarce wpisz "stm32 eeprom emulation".
0. Konfiguracja FMC wymaga poprawy. Wszystkie czasy masz ustawione domyślnie, więc interfejs niepotrzebnie czeka z wykonaniem każdej operacji. Popatrz na parametry MEMxSET, MEMxWAIT, MEMxHOLD i porównaj z tym co może pamięć. Przykład: MEMxSET jest ustawiony na 0xFC, czyli jakieś 252 x 4,63ns = 1,16us. Pamięć potrzebuje około 20ns -12ns = 8ns. Dostosuj...
Ostatnio rzadko bywam na elektrodzie. Ale widzę, że i inni się wyprowadzili. Jeszcze z 10 lat temu na pytanie w dziale mikrokontrolery zawsze znalazło się kilku, kilkunastu chętnych do podpowiedzi, zawsze pojawiały się jakieś pomysły pod rozwagę a tu cisza. Cześć, Zapewne są po temu pewne powody... Co do pytania. Pamiętasz zapewne że żeby zapisać 1...
Embedded flash brzmi dokładnie tak samo jak zielona trawa. To tak jakby wątek był o rodzajach trawy a byś rozprawiał o tym tym dlaczego jest zielona. A co do aluzji do AVR, to tylko niektóre wynalazki muszą czytać flash za pomocą dedykowanych instrukcji i w tym przypadku ten wątek też nie jest o tym. W w AVR też masz pamięć "embedded" flash na kod i...
C-SKY Flash Programmer jest oprogramowaniem dostarczanym do pobrania przez XuanTie na stronie https://www.xrvm.cn/community/download?i... https://obrazki.elektroda.pl/1504579400_... Narzędzie to współpracuje z programatorami CK-Link do odczytu i zapisu w pamięci flash procesorów C-Sky z rdzeniem RISC. Procesory...
Bazując na https://obrazki.elektroda.pl/4178510200_... https://obrazki.elektroda.pl/8769073400_... main.c [syntax=c] /* Virtual address defined by the user: 0xFFFF value is prohibited */ uint16_t VirtAddVarTab[NB_OF_VAR]={0}; uint16_t Virtval[NB_OF_VAR]={0}; uint16_t VarValue= 0; int main(void) { HSE_init(); //systick_init();...
Kontroler karty operuje na sektorach 512B nie blokach 128kB Czytaj uważnie. Ja pisałem o blokach w pamięciach NAND flash, a nie o tym co emuluje kontroler karty SD. Zbych_: skąd masz taką informację? Z lektury datasheetów pamięci NAND flash, które są wkładane do kart SD, np. pamięci ST (obecnie numonyx) 8Gb (1GB) mają bloki w rozmiarze 128kB.
Pamięć NAND nie jest mapowana w przestrzeń adresową FSMC. Pamięć NAND wymaga wysyłania jej durnych rozkazów, i jest to ekwiwalentnie pokręcone jak obsługa kart SD/MMC (tyle że prościej). Dodatkowo zapomnij, że będziesz sobie w stanie tą pamięć ot tak zapisywać jak słowo pod wskaźnik do RAMu czy FRAMu. FSMC definiuje ci tylko adresy pod które mozesz...
A są może gdzieś jakieś szczegóły tego rozwiązania (idea) w necie? Przeglądałem kilka not aplikacyjnych, ale rozwiązania tam pokazane bazują jedynie na zapisie "bloków" danych po kolei do FLASHa i szukaniu wolnego miejsca przy zapisie lub ostatniego zapisanego bloku przy odczycie. Czy rozwiązanie z tamtej książki jest tego samego typu? 4\/3!!
Już od wielu lat znam problem ale nigdy nie chciało mi się do niego przysiąść. Czyli lenistwo poziom expert. Do obsługi FLASHa używam nieznacznie przerobionych kodów autorstwa w123456xy (nie z elektrody, tylko gdzieś w internecie znalazłem). I problem taki: Dam optymalizację -O0, działa. Dam -Os, nie działa. Do tej pory radziłem sobie po prostu pozostawiając...
W przypadku pamięci NOR Flash prędkość zapisu jest głównie ograniczona niską prędkością kasowania sektorów. W przypadku pamięci NAND Flash prędkość zapisu jest ograniczona prędkością interfejsu (np. 166 lub 133 MHz) i źródła danych (DMA i system arbitrażu). Interfejs QSPI w F7 i H7 może spokojnie przesłać przynajmniej 10 MB/s w krótkich seriach lub...
Witam, czy ktoś z forumowiczów wie jak umieścić w pamięci flash tablicę z wartościami przeskalowanego sinusa (wartości stałoprzecinkowe). Chcę, aby tablica miała np. 1024 elementów (od 0 do 2pi) dla tego zapis na sztywno wartości będzie nie wygodny. tj. [syntax=c]const s16 tab_sin[1024] = {wartosci}[/syntax] Wolałbym zapis: [syntax=c]const s32 tab_cos0[1024]...
o tyle nie wiem w jaki sposób zapisać do pamięci FLASH np na i2c wymagane dane. Przydał by się więc system plików na dysku Flash. O ile zrobienie prostego systemu plików nie stanowi jakiegoś większego wyzwania, o tyle należy zwrócić uwagę, że "surowa" pamięć typu Flash ma szereg problemów: - często możliwy jest na niej zapis nawet pojedynczego bajtu,...
Okazało się, że podszedłem do tematu z niewystarczającą wiedzą. Przed każdym zapisem, należy określony sektor wyczyścić instrukcja Sector Erase. Chcialbym móc kasować pojedyncze komórki i aktualizować tam niektóre dane, jednakże pamięci flash tego nie umożliwiają, cóż coś za coś. Może uda się niektóre zmienne zapisywać do flashu procesora. Coś wymyślę,...
No to już jakaś pocieszająca informacja, choć raz już miałem problem wprowadzając w programie blokadę SWD i JTAG, musiałem trochę pokombinować z programatorem i przyciskiem RESET, żeby programator załapał kontakt z procesorem przed wykonaniem pierwszych rozkazów. Dodano po 7 Mam pytanie bardziej praktyczne - jak tego używać w ST_Link Utility. W Option...
To nie jest tak ze problem pojawia sie zawsze ale na powiedzmy 5 tys zapisów. Przy duzej ilosci zapisow do flash wychodza dopiero problemy. Sa jednak bardzo nieregularne - czasem czesciej niemal co chwila a czasem bardzo rzadko A nie jest przypadkiem tak, że już udało Ci się zamęczyć tą pamięć Flash taką ilością zapisów? Dodano po 2 Ponowię pytanie...
Dziękuje za szybką odpowiedź W swojej aplikacji chciałem wykorzystać jakiegoś stm32 więc bœdę mógł skorzystać ze sprzętowego CRC tmf mógłbyś podać jakie inne sposoby można stosować do sprawdzania integralności ? Słyszałem jeszcze o March C ale to wymaga zapisu komórki więc nie bardzo wg mnie nadaje się do pamięci Flash. Pozdrawiam
Po wymianie pamięci na Am29LV640MB zapis ruszył, jednak zapisuje max 4KB. Każda próba zapisu większej ilości danych kończy się komunikatem : Error: flash write block failed status: 0x0 Error: error writing to flash at address 0x64000000 at offset 0x00000000 Runtime Error: flash1.script:8: in procedure 'script' at file "embedded:startup.tcl",...
W jakiś sposób udało (?) mi się zainstalować bootloadera do mojego MC. Wygląda na to, iż Blinkiem arduino IDE działa. Nie napisałeś w jaki sposób podłączasz Blue Pill do komputera podczas programowania, bo opcji jest kilka. Co prawda nie jestem w stanie odtworzyć tej Twojej sytuacji u mnie, bo mnie osobiście zupełnie nie interesuje co jest wgrane do...
bo SD każdy użytkownik może sobie wyjąc i odczytać, a chciałem utrudnić taką zabawę :) W takim razie lepiej chyba dać do flash-ki ale bez systemu plików. Komunikaty nie muszą mieć stałej długości, zawsze można na początku zrobić tabelkę z adresami poszczególnych komunikatów żeby miejsca nie marnować i móc zapisywać dowolnej długości komunikaty (oczywiście...
Odpalasz ST-Link utility Podłaczasz się uK. Przegladasz pamięć, a jak chcesz ją zapisać klikasz Save as
Ja tak obecnie robię w STM32, tyle że na tych prockach zapis do pamięci Flash jest bardziej niż prosty, na LPC2xxx jest gorzej, a na Atmelach nie wiem jak jest. Generalnie można wykorzystać sprytne algorytmy "wear leveling" i pamięć jest praktycznie nie do zajechania... pdf: http://www.st.com/mcu/download2.php?file...
Witam. Mam płytkę STM32F0discovey na której jest programator STLink/V2 i mikrokontroler STM32F051R8T6. Od kilku miesięcy bez problemu wgrywałem na niego kod, a dzisiaj nagle napotkałem problem. Środowisko po próbie wygrania nie napisało żadnego komunikatu, ani o powodzeniu ani o błędzie. Natomiast STLink Utility wyrzuca błąd "[0x00000000]: Invalid adress"....
Chciałbym móc zapisywać do pamięci Flash stringi i później operować na nich tak jak na każdych innych w programie. Stworzyłem kawałek kodu: sprintf(RxBuffer, "Przykladowy string"); FlashAddress = 0x08040000; while (RxBuffer[Index] != NULL) { FLASHStatus = FLASH_ProgramHalfWord(FlashAddress, RxBuffer[Index+0]...
Po pierwsze chciałbym powiedzieć, że nadwyrężenie pamięci flash jest raczej problematyczne - ile razy uda Ci się ją zaprogramować zanim dobijesz do tych 10000 czy 100000 zapisów? Po drugie - http://www.elektroda.pl/rtvforum/viewtop... 4\/3!!
Ustawienia zostają w wewnętrznym "EEPROM" - a raczej symulowanym bazującym na zapisie w pamięci FLASH. Producent dostarcza do tego bibliotekę, aczkolwiek jest ona zbyteczna - warto używać bezpośredniogo zapisu do FLASH za pomocą bibliotek peryferii. Zaoszczędzi się trochę miejsca jeśli to wymagane. Ale wracając do zegara, który odpowiada za włączanie...
Jeśli nie chce używać rejestrów backupowych to zostaje Tobie tylko zapis do flasha. Twój uC ma 128KB flash, chcesz zapełnić całą pamięc programem? Zakłożę się, że nie, więc nie widzę problemu z poświęceniem mniej niż 1% pamięci na tą flagę. Inny sposób to zapis wybranej komórki EEPROMA jakąś znaną wartością po pierwszym zaprogramowaniu uC. Przed każdym...
Cześć, wczoraj testowałem program do zapisu danych w pamięci FLASH na STM32F051r8, korzystałem z programu przedstawionym w tym [url=http://www.elektroda.pl/rtvforum/to... Porgram jest pod STMa F103, który ma 128 kb pamięci, a mój tylko 64 no i przez przypadek nie zmieniłem adresu pod który maja być zapisywane dane, a więc pozostał...
NOP-y nie służą do tego w tych procesorach. To nie tak jak w AVR-ack. NOP jest od razy wywalany z pipelin-a i może nie spowodwać żanego opóżnienia. W takich zaawansowanych peockach jak H7 (M7 core) przy czytaniu 128 bitów z FLASH nawet 4 mogą nie spowodować żadnego opóźnienia. NOP-ów używa się do "paddingu". Używaj innych instrukcji do tego np barierowych...
Po Co emulować eeprom flashem? Może nie rozumiem problemu, ale... skoro jest do zapisania ileś bajtów danych, to wypada po prostu je zapisać . W stm32 jest flash controller i maszynka do CRC, więc aż się prosi po prostu zapisywać dane po kolei , w międzyczasie wrzucając do to CRC->DR, na koniec kazdej strony doklejać CRC. Praktykuję taki zapis i sprawdza...
Ok więc o co mi chodzi. - Plik wejściowy BMP lub co kolwiek - Format zapisu do LCD RGB 565 (np. zielony to 0x07E0) - Plik wyjściowy np. abcd.c - Obraz zapisywany w pamięci FLASH i wysyłany do LCD. Chodzi mi o zamianę pliku bmp na RGB 565. Dalej już myślę ze sobie poradzę.
Przykładowy linker dodany do cubef4 dla mikrokontrolera np. stm32f439NI ma tak podzielone obszary pamięci: We fragmencie kodu który pokazałeś widać "jak na dłoni", że pamięć flash _NIE_ jest podzielona, więc nie wiem w czym problem... Czy używając pamięci 2MB z dual bankiem mogę zapisać program na obydwu obszarach pamięci bez żadnych dodatkowych kroków...
Korzystam z CooCox 1.7.7, używam Discovery z STM72RBt6 (128k FLASH) Realizuję wg ST programową implementację EEPROMa. Ustawiłem start adres w bibliotece: [syntax=c]#define EEPROM_START_ADDRESS ((uint32_t)0x0801F800)[/syntax] i zmniejszyłem dostępną pamięć dla linkiera o te 800 bajtów: [syntax=c]MEMORY { rom (rx) : ORIGIN = 0x08000000, LENGTH = 0x0001F800...
Dodam, iż problemem jest to, że program tak jakby znikał po zaniknięciu zasilania, gdyż po ponownym podłączeniu mikrokontroler nic nie robi. Sprawdź czy BOOT0 (pin 60) masz konkretnie gdzieś podłączony (zworka, rezystor na masę). Zweryfikuj pamięć flash za pomocą STlink Utility czy masz w niej ten program, który wcześniej zapisałeś. A może masz po...
Mam przed sobą Cortex™-M3 Revision r2p1 Technical Reference Manual i tam napisane jest iż MLA trwa dwa cykle a np ADD, MUL jeden czyli ja zysku nie widzę przy wykorzystaniu tego rozkazu (Czasowego bo to tylko chyba objętościowy zysk). Staram się w sposób świadomy pisać w C tak aby kod wykonywał się jak najszbiciej. ale jeśli nie ma różnicy w czasie...
Ależ jest napisane, żeby robić kalibrację after each power up :) Może kalibracja jest tylko po to, żeby wyeliminować fabryczne wady ? To, co tam się tak naprawdę kalibruje i po co, pozostanie chyba tajemnicą :) Jaki jest czas retencji danych w pamięci flash tych ARMów ? Dane we flashu zostaną na 10-30 lat (minimum), w zależności od temperatury pracy...
Cześć Chciałbym zrobić emulowanego EEPROM-a i mam problem z odblokowaniem zapisu do pamięci FLASH. Pierwsze co zrobiłem to FLASH->KEYR=0x45670123; FLASH->KEYR=0xCDEF89AB; Następnie sprawdziłem stan bitu LOCK w rejestrze CR i jest na 0 czyi dostęp do flasha jest możliwy. Chciałem zrobić zapis do pamięci zgodnie z diagramem na stronie 13 z STM32F10xxx...
dziekuje za wskazówki flash wydaje się być odblokowany ale nie mam pojecia dlaczego mój skompilowany program zajmuje aż tak duzo pamieci nie mieści się we flashu procka... (demko Freddiego dla STM32 blink_led) http://obrazki.elektroda.pl/4569227600_1... http://obrazki.elektroda.pl/4376227800_1... rozłączyłem połączenie...
Witam, Mam następujący problem z biblioteką HAL do zapisu danych w pamięci flash. Posiadam dwie tablice 160 elementowe tabX oraz tabY (typ int16). Chciałbym zapisać dane te w pamięci nieulotnej flash, a dokładnie w adresach 0x08080xxx oraz 0x08090xxx. Cały mój problem pojawia się przy dokonywaniu polecenia EARSE przy zapisie drugiej tablicy. Aby poprawnie...
Mam jeszcze pytanie odnośnie samego działania SWD i programowania... Jeśli BOOT0 = 0 to startuje ten kod który jest we Flash. Jak to się dzieje, że mimo działającego programu OpenOCD potrafi przerwać jego pracę i zacząć wgrywać program ? Jeśli dobrze doczytałem to jest to tylko możliwe jeśli są włączone sygnały SWDIO i SWCLK ? i drugie pytanie: Jeśli...
Jeśli ADC wykonuje konwersje to nie zabiera czasu procesora. Jeśli chodzi o zapis do pamięci do procesor i DMA mogą jednocześnie czytać/zapisywać pamięć FLASH bo procesor jest połączony bezpośrednio z pamięcią poprzez I-BUS. Jeśli procesor i DMA będą w jednym momencie chciały uzyskać dostęp do SRAM, APB1/2 to włączy się arbiter i procesor dostanie 1/3...
Nie wiem co Wy kombinujecie. Taki zapis w Keil'u http://obrazki.elektroda.pl/7469493700_1... http://obrazki.elektroda.pl/7398932100_1...
Zrobiłem coś takiego: - buforuję transmisję do STM32 (10 ramek * 400B = 4KB) i wtedy wykonuję zapis Niestety zapis na kartę 4KB trwa więcej niż 1 sekundę (raz na kilka minut) i mam overrun transmisji do STM32. A nie myślałeś, żeby łączyć się z kartą przez DMA? Wówczas odpalasz transfer tych 4KB i o nim zapominasz, idzie sobie asynchronicznie do programu....
Chciałbym ulepszyć pewien produkt zbudowany w oparciu od STM32F101. Udało się zrzucić pamięć FLASH procesora, nie był zablokowany. Zawartość pamięci wygląda na poprawną, widać napisy wyświetlacza, można wyodrębnić funkcje. Mam problem ze zrozumieniem wektora startu. Obszar pamięci FLASH zaczyna się następująco: 0x08000000: 0x20000400 0x08000004: 0x080586F5...
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 się gotowych funkcji w stylu pgm_read_byte itp....
(at)BlueDraco: Zgadzam się z Tobą i też się zastanawiam na czym polega ta dziwna maniera polecania zabytkowych, 8-bitowych AVR'ów? Pomijając ich ograniczenia strukturalne, za każdym razem wchodząc na Forum widzę problemy typu: jaki programator, programator nie działa, błędy zapisu, program jest dobry, a jednak nie działa... i tysiąc tego typu problemów...
Zwykle nie mają i zwykle nie jest to problemem, gdyż można bezproblemowo zapisywać wbudowaną pamięć flash, aby sobie taki EEPROM "emulować". Często układy te mają też podtrzymywana bateryjnie pamięć (np. do 4kB w STM32F4), która również może zastąpić EEPROM.
Nie przeczytałeś noty aplikacyjnej i dalej marudzisz. Po pierwsze zauważ więc, że nie ma obowiązku używania ARMów, Cortexów, STM32 czy ogólnie emulowania EEPROMu - jeśli masz przy tym cierpieć takie katusze, to przecież nie ma sensu męczyć siebie i nas. To jest ten najważniejszy punkt. Jeśli nie sprawia Ci to przyjemności, a wręcz sprawia "egzystencjalny...
STMicroelectronics to jeden z najpopularniejszych producentów mikrokontrolerów w Polsce. Swoją renomę zawdzięcza nie tylko udanym konstrukcjom, ale i wdrażaniu najnowszych technologii oraz bogatej ofercie. W niniejszym artykule prezentujemy niektóre z ostatnio wprowadzonych układów ST oraz wybrane ciekawe modele, które od jakiegoś czasu cieszą się dużą...
Zauważyłem dziwną rzecz, W pamięci ROM znajduje się zakładamy prawidłowy kod który jest kopiowany do RAMu. Zauważyłem różnice między kodem we flashu i w ramie która najprawdopodobniej jest problemem (skąd ta różnica jeszcze nie wiem). W pliku *.lss pod adresem 0x20000010 jest prawidłowy skok do system_init(). W pamięci flash pod adresem (0x08000000...
Bzdura. Do lock/fuse/itp są zupełnie inne komendy. Programowanie tego wygląda kompletnie inaczej niż flasha. Nie jest to żaden "oddzielny adres". Jak pisałem, zażyj sobie magnezu, napij się czegoś mocniejszego lub użyj innej metody, która cie uspokaja zanim coś napiszesz. Bo niestety bzdury sam opowiadasz i wykazujesz się nieznajomością toolchaina...
4,7k jest wyliczony raczej dla 5V, DS18B20 jak i STM32 może działać na 3.3V i wtedy proporcjonalnie to już jest ~3k. A jak zasilasz układ czujników jednak 5V to tym gorzej dla układu. Nie mam styczności z MacOS, sprawdzałeś to: http://macappstore.org/stlink/ ? Poza tym przy wgraniu bootloadera trzeba pamiętać o zworkach, bo się kasuje, może uległeś...
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 twarzy w smartfonie czy wykrywanie pasa ruchu przez...
Zlinkować do projektu? Nie za bardzo wiem o co chodzi. A ten plik obiektowy jak zrobić? Czytałem wczoraj o zapisie danych do FLASH i to wydawało się trudne. Trzeba odblokować możliwość zapisu potem skasować całą stronę, zapisać dane, zablokować możliwość, oczywiście jeszcze po drodze sprawdzać czy pamięć jest gotowa do użycia, i to się wydawało trochę...
jedyna zaleta jaką widzę to płaska przestrzeń adresowa, co wyeliminuje obsys związany z avr-g++, To jeden z wielu powodów, dla których zrezygnowałem z AVR na rzecz ARM. Te "PROGMEM" i "PSTR" czy tam "F" w Arduino, może doprowadzić do rozpaczy. Nie ma możliwości aby w np "sprintf" ("sprintf_P") mieszać stringi z FLASH i RAM. jedynym istotnym ograniczeniem...
https://obrazki.elektroda.pl/3479042800_... Efektem nocnych dłubanin jest sterownik taśm RGB/RGBW. https://obrazki.elektroda.pl/6143799100_... https://obrazki.elektroda.pl/6487351400_... https://obrazki.elektroda.pl/8955729600_... Głównym przeznaczeniem jest sterowanie oświetleniem...
Witajcie, właśnie się bawię pamięcią Flash w STM32F0DISCOVERY (chcę się nauczyć obsługi). Efekt? Chyba zablokowałem możliwość zapisu... Kod (dopiero się uczę, więc komentarze mogą zawierać błędy): [syntax=c]#include "stm32f0xx.h" #include "stm32f0_discovery.h" int main(void) { RCC -> AHBENR |= RCC_AHBENR_GPIOCEN;//LEDY GPIOC -> MODER |= GPIO_MODER_MODER8_0...
To uporządkujmy: 1) Przede wszystkim chodziło mi o wskazanie kierunku jak można pisać do pamięci Flash z programu, dziękuję koledze tmf za wskazówki 2) Opisałem do czego jest mi to potrzebne, padło pytanie o liczby, więc odpisałem trochę na szybko i liczby podałem od czapki, co spowodowało ogólny zamęt. Mam wrażenie, że czytając na szybko nie zrozumiałem...
Chciałem się jeszcze zapytać, czy nucleo-F767ZI będzie odpowiednią płytką bazową do takiego projektu Trudno powiedzieć... Problem jest zarysowany dość ogólnie. Sam mikrokontroler to dość wydajna obliczeniowo jednostka i raczej powinna bez problemu sobie z takimi zadaniami poradzić. Mam nawet wrażenie, że jest nieco nadmiarowa a temat można by pociągnąć...
Wstęp Poradniki pomagające w tworzeniu oprogramowania na mikrokontrolery skupiają się głównie na wykorzystaniu peryferiów samego mikrokontrolera, co jest zrozumiałe, ale niestety rzadko skncentrują się na części programu, która wykonuje się przed funkcją main. Poniższy poradnik ma na celu przybliżenie tej części programu na podstawie GNU ARM toolchain...
Nie chodzi o blokowanie przed odczytem czy o blokady w procesie programowania, tylko o zablokowanie możliwości zapisu flasha po programowaniu z poziomu aplikacji - przed zapisem pamięć trzeba odblokować, po zapisie dobrze ją ponownie zablokować. 4\/3!!
Witam, mam problem z zapisywaniem danych do pamięci Nand Flash komunikującej się z STM32F746IG za pośrednictwem interfejsu FSMC. Gdy wygeneruję projekt z CubeMx konfigurujący tylko pamięć flash wszystko działa, tzn. zapis, odczyt, kasowanie, czytanie ID itp. Problem pojawia się gdy do projektu dodam TIMER (w sumie cokolwiek co generuje przerwanie),...
https://obrazki.elektroda.pl/5694434400_... 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...
ze sterownika sczytuję wartości enkoderów i zapisuję je do pamięci flash. (powinno to być wykonywane timerem co 10ms). Następnie odczytuję te wartości z flasha w celu odtworzenia ruchu i odpowiednie wartości zadaję do sterowania krokiem silnika. nie wiem czemu ale niektóre strony nie dają się zapisać Zobacz jaka jest żywotność pamięci Flash... Typowo...
Zgadza się. Dlatego każdy plik .h w moim projekcie został podzielony na dwie części. Jedna która dołącza się jeżeli pewien ciąg został zdefiniowany, a druga jeżeli nie. W pliku c dołączam bez definicji i wtedy mam wszystkie zmienne globalne i prototypy funkcji. Jeżeli będą mi one potrzebne w innym pliku c do przed include robię define i wtedy mam tylko...
Chwila, chwila. Wylutowałem TX, więc mogę właściwie zobaczyć, co się dzieje. Zrezygnowałem też z ICE Clk i za każdym razem weryfikuję zapis do pamięci flash. Okazuje się, że nie udaje się to w połowie przypadków, dlatego oryginalny upload tutaj nie uruchomił się, gdy próbowałem. Kluczem wydaje się być cykl zasilania STM32 między błyskami. Ponownie przechodzę...
A te pamięć jakoś wyłączyłes z zasobów dostępnych dla programu albo zarezerwowales? Bo jakoś tego nie widzę (żadnych segmentów czy w najgorszym razie jakaś tablica jak to tmf woli)
Dzięki :) - właśnie tak wywnioskowałem z pliku *.h i napisałem coś takiego - chyba działa. Dziwi mnie tylko brak konsekwencji w nazewnictwie. Dodano po 1 Dalsze problemy: Nie potrafię nic zapisać do skonfigurowanej pamięci (LCD). Kontroler LCD nie jest fizycznie podpięty ale to chyba nie ma znaczenia. Podejrzewam,że należy załączyć stosowny bank pamięci...
Swoją drogą macie może pod ręką jakieś dobre i sprawdzone źródła (nie chodzi mi tylko o gotowe kody ale także o opisy lub artykuły np. w czasopiśmie - więcej mogę zrozumieć :)) na temat wyświetlania .bmp oraz .jpg? Z tymi pierwszymi jest łatwiej, z tego co słyszałem, ze względu na sposób zapisu informacji, natomiast do .jpg zaciągnięta jest wyższa...
Ok. Płyta czterowarstwowa w stosie sig-Gnd-Power-sig - program KIcad. Żeby ruszyć dalej musze wybrać pamięci. Pytanie: czy pamięci powyżej i sposób bootowania będzie dobry - chodzi o mozliwości. Do tego jaka pamięć zazwyczaj stosujecie do zapisywania danych podręcznych typu głośność, jasność wyświetlacza itd. która działa po wyłączeniu zasilania. Flash...
Dzięki za schemat widziałem jakieś na chińskich stronach, ale mi się nie udało tego ściągnąć, bez logowania. Jeśli chodzi o JTAG to jeśli udałoby się go uruchomić to mógłby być przydatny. Ale też na początek prostsze może wydawać się przetestowanie tego SERDB po I2C po pinach UARTU, który też daje dostęp do rejestrów RIU. Więc możnaby je monitorować...
Witam, nigdy nie kombinowałem ze skryptami linkera ale tym razem zaszła taka potrzeba więc zwracam się z poradą do Was. Moim celem jest odseparowanie pewnej pamięci FLASH tak abym mógł sobie tam coś zapisywać bez utraty danych po odłączeniu zasilania. narzazie zrobiłem co takiego: w pliku stm32_flash.ld zmodyfikowalem : MEMORY { FLASH (rx)...
http://obrazki.elektroda.pl/1647269200_1... Witam wszystkich Tym razem chciałbym przedstawić jeszcze programowy projekt odtwarzacza i dyktafonu zrealizowany na STM32F4Discovery. Pisząc ten program, sporo rozwiązań wykorzystałem z mojego poprzedniego projektu małego odtwarzacza MP3 na ARM-ie, ale dołożyłem też dużo nowości i usprawnień....
https://obrazki.elektroda.pl/6347997200_... Cześć. Od jakiegoś czasu chodził mi po głowie projekt dzięki któremu mógł bym sobie sterować światła w domu i w ogrodzie poprzez wifi. Funkcjonalność banalnie prosta i spotykana w zapewne tysiącach rożnych projektów, jeszcze jeden nie zaszkodzi. :) W trakcie rozmyślania i projektowania kilka...
Wystarczy jeden bootloader w pamięci Flash, obecny tam na stałe. Kasowanie całej pamięci Flash w nadziei, że przez parę sekund nie padnie zasilanie i zdąży się zapisać pamięć od nowa nie za dobrze rokuje dla niezawodności.
Karol966 - mówisz że z pliku .bin dane trzeba najpierw zaszyfrować żeby mogły trafić do flash ? Ale ja nic nie mówię a się dopiero pytam ;) Generalnie wygląda to tak, że po stronie PC z pliku np *.hex poprzez szyfrowanie otrzymujemy inny plik (może to też być *.hex jak i zapewne *.bin). Dalej przez jakiś program ładujący czy też prosto przez kartę...
stm32 zapis flash zapis flash stm32 stm32 flash zapis
ekspres krups evidence lodówka rozruchowy lusterko rejestrator
krups migają wszystkie diody ochrona przeciwporazeniowa
Tryb Eco Power w urządzeniach Philips - oszczędzanie energii Wiązka instalacji fotela elektrycznego Mercedes W208: diagnostyka i naprawa