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...
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....
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...
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},...
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. 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"...
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...
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...
W wyszukiwarce wpisz "stm32 eeprom emulation".
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();...
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!!
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...
Dzień dobry Po wielu dniach podchodzenia jak do jeża zabrałem się na serio do zapisu paru danych (siedmiu liczb uint32_t (słownie 7) ) do pamięci flash. Ponieważ bez Was by się to nie udało postanowiłem się podzielić moim "osiągnięciem". Muszę zapisać jasność ekranu i skalowanie ekranu dotykowego. Wyszło tak : [syntax=c]/* * 6 wspolczynnikow kalibracji...
Witam :) Chce zapisać zmienną do pamięci EEPROM w procesorze. Testuje peryferia dynamicznie i nie wiem co się z nimi dzieje w trakcie działania. Wysyłają do mnie dane po USARCIE i chciałbym je zapisywać w wewnętrznej pamięci. Znalazłem realizacje zapisu, lecz wszędzie bazuje się na bibliotekach HAL, których nigdy nie używałem i się przekonać nie mogę....
Witam, Istnieje takie coś jak pgm_read_byte w bibliotekach <avr/pgmspace.h>. Czy istnieje może takie coś jak pgm_write_byte ? Czy w ogóle jest możliwość zapisu czegoś do flasha (pamieci programu) w programie? Chciałbym z zewnętrznego eeproma odczytać sobie tablicę(5 kilobajtow) i przepisać ją da flasha, na niej coś tam zrobić, żeby nie odczytywać...
Witam, ostatnio zajmowałem się operacją zapisu i odczytu danych z pamięci flash na mojej płytce F3 discovery. Problem pojawił się w momencie próby użycia przerwania generowanego przez timer lub przy restarcie mikroprocesora. Procek wtedy się zwiesza (zapętla się w endless loop w pliku startup_stm32f303xc.s). Zapewne chodzi o to, że operacje na flashu...
halo na roznych stonach znalazlem informacje o tym ze mozna w czasie dzialajacego programu pisac w pamieci flash nie ma problemu przed wystartowaniem fukcji main, nie ma problemu czytac flash ale nie moge pisac do initialisacji uzywam : uint8_8 pgm_data[xxx] PROGMEM ={}; do czytania : bit_sys = &pgm_data[xxx]; a jak zapis???
Witam! Mam zamiar napisać program który zapisuje dane odebrane z zewnętrznego urządzenia do pamięci mikrokontrolera, po czym później ma mieć możliwość ich udostępniania. Z racji tego że danych ma być około 100kbajtów (pamięć nieulotna) postanoiwiłem użyć do tego celu mikrokontrolera ATMega128. Sam program zajmować bedzie w pamieci mikrokontrolera około...
Chodzi mi o umieszczeni np: static const uint8_t myArray[] = "taki sobie string"; we FLASH ale gdy się nigdzie tego nigdzie nie użyje. Żeby kompilator umieścił to we FLASH to muszę to gdzieś użyć.
Jak zapisac jakies dane zalóżmy np. zczytane z jakis peryferii do pamięci procesora, żeby później można było je gdzieś wykorzystać?(w asemblerze)
Witam, mam następujący problem: Chcę aby funkcja przy jej wywołaniu kopiowała się na stos po czym dopiero zaczęła się wykonywać. Jest to funkcja zapisu do flasha, a flash nie może być jednocześnie zapisywany i odczytywany. Nie mogę umieścić tej funkcji w RAMie przy pomocy __attribute__ ((long_call, section (".fastrun"))) ponieważ mam dwie aplikacje...
Mam problem potrzebuje zapisać dane co jakiś czas do pamięci flash podczas wykonywania programu której jest dużo w uC ATmega128. Wiem że robi się to poleceniem SPM wcześniej umieszczając adres w rejestrach r31:r30 a daną w r1:r0, lecz nie stety podczas wykonywania programu nic się nie zapisuje. Czy wie ktoś jak to zapisać ? (prawdopodobnie potrzeba...
Witam Potrzebuję kopiować dane z pamięci trwałej (np. flash) w której zapisane są dane do pamięci SRAM typu KM684000ALG-7 512Kx8 (4MBit). Pamięć z której będą kopiowane dane to np. taką jaką znalazłem o tej pojemności M29F040B90K1 pamięć Flash EPROM 5V 512Kx8 90ns PLCC32. Do przerzucania danych chę użyć procesora AVR np Atmega 16 lub 32. Nie używałem...
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.
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...
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...
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ć...
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...
A co chcesz konkretnie robić z tą pamięcią? Tylko zapis/odczyt w run-time? Czy chcesz rozszerzyć pamięć na program?
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...
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.
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...
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...
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....
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...
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...
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...
(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...
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...
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...
Próbowałem najpierw skopiować "na głupiego" kod z drugiego linku, niestety zawieszał się w EE_Init(); Spróbowałem ten cały przykład z mbed przenieść do SW4STM (ale bez biblioteki mbed, tylko do szablonu z CubeMX) i po drobnej kosmetyce chodzi całkiem dobrze. Kod jest dobry a przyczyną zawieszania pod SW4STM jest, jak się obawiałem, nieskuteczność tego...
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...
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ł...
stm32 zapis flash zapis flash stm32 stm32 flash zapis
grzanie octavia schemat behringer xenyx wyszukaj fragment tekstu
samsung wf70f5e0w2w tablet firmware
IRsend with PulseDistance Protocol: MQTT, Tasmota, IRremoteESP8266, 9-bit LSB, 0x721/0x622 TEA1524 Schematic for Philips PLCD300P3 SMPS, Typical Faults, and Design Tips