Pomijając sensowność używania sprintf do SKOPIOWANIA stringa do jakiejś zmiennej, to błędów jest bardzo dużo. 1. Skasowałeś stronę którą chcesz zapisywać? 2. Odblokowałeś zapis do flasha? 3. Twój zapis jest dziurawy, bo jak zero będzie na nieparzystej pozycji, to pętla nie zakończy się wtedy kiedy będziesz chciał 4. Odczytujesz FlashStatus, to sprawdź...
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...
Kiedyś, jak używałem starych bibliotek to do zapisywania we flashu używałem czegoś takiego: motohours = motohours+*(uint16_t*)Address; //sczytuje Niezłe :) A na przyszłość, jak chcesz przechowywać jakieś dane to polecam użyć rodziny STM32L1XX. Posiada ona wbudowany EEPROM, podobnie jak atmegi. Jest łatwiejszy dostęp od strony programistycznej.
Sprawdziłem to i zwracam honor freddie :) , po poprawnym skonfigurowaniu optionbytes - a można to zrobić w ten sposób: [syntax=c]while(FLASH->SR & 1<<0);//BSY: Sprawdzam czy flash nie jest zajęty. //Jeśli jest to będzie się kręcić pętla i kręcić. FLASH->OPTKEYR = 0x45670123;//Jak taką sekwencją zapiszę klucz, to się odblokuje jednorazowo...
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...
Flash procesorów STM32 ma wytrzymałość 1000 cykli zapisów. Korzystasz z kilku bajtów a zapisujesz całe 4096. W dodatku nie wiem po co wyrównujesz do 256 te bufory, przecież one są w RAM.
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....
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ę...
https://obrazki.elektroda.pl/9462291700_... Chciałbym zaprezentować rozwinięcie eksperymentalnego odbiornika SDR, jaki opisałem ostatnio: https://obrazki.elektroda.pl/6947080100_... https://obrazki.elektroda.pl/7046555300_... Najbardziej w tym momencie interesującym fragmentem płyty jest głowica: https://obrazki.elektroda.pl/9911930900_...
Dzięki za odpowiedź. Danych do kodu nie wstawię z powodów, które już podałem. Ale może znasz jakiś prostszy sposób, by użytkownik, nie mający pojęcia o przygotowaniu kodu dla mikrosterownika mógł w nim umieścić duże bloki swoich danych? Moje rozwiązanie dobrze się dotychczas sprawdza, ale chętnie poznam inne możliwości. Tak to wygląda dotychczas w pliku...
W wyszukiwarce wpisz "stm32 eeprom emulation".
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 :) 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ę....
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...
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...
Walczę już kilka dni próbując różnych podejść i niestety się nie udaje, więc postanowiłem spytać, może ktoś miał coś podobnego. Mikrokontroler stm32F407VGT6, potrzebuję zapisać bajt w pamięci flash pod określonym adresem. Mam 2 funkcje do zapisu i odczytu jednego bajtu w sektorze 2 pamięci flash: void flash_init(void) { FLASH_PrefetchBufferCmd(ENABLE);...
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, 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...
Cześć, mam zadanie do rozwiązanie a nie wiem czy się da. Mianowicie mam w programie jakąś zmienną np. : int cena =0; ... Program się wykonuje "coś się dzieje" - przychodzi komenda zmiany cena =100; po czym zasilanie jest odłączone i płytka nie jest zasilana w żaden możliwy sposób. Po uruchomieniu układu oczekuję, że zmienna "cena" będzie równa 100 a...
Witam. Czy ktoś ma może przerobiona wersje programu z noty do emulowania eeprom lub inny podobny wynalazek, który by potrafił uzywać wiekszej ilości flesha ?? Ten gotowy ma 1 lub 2kB a ja potrzebuje 40kB na konfigurację... Gotowiec zaoszczędził by mi dużo czasu... Dodano po 12 Tak sobie oglądam ten kod i chyba wystarczyło by zwiększyć rozmiar stron......
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, mam problem z pamięcią nand flash (S34ML01G200TFI0) a mianowicie z prędkością zapisu/odczytu. Piszę własny sterownik i ogólnie wszystko działa tzn. zapis, odczyt, kasowanie, kopiowanie... Problemem jest to, że operacja odczytu jednego page'a trwa aż 7ms(mierzone przy pomocy oscyloskopu)! Zegar mam ustawiony na 216Mhz, poniżej ustawienia rejestrów...
https://obrazki.elektroda.pl/2553827400_... Cześć, pod tą niecodzienną nazwą tematu prezentuję projekt małego, automatycznego odtwarzacza muzyki do umilania posiedzeń na toalecie. Oczywiście to jedno zastosowanie, w innych sytuacjach pewnie też może się przydać ;) Głównym założeniem była niewielka złożoność, banalny interfejs, bezobsługowość...
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.
Udalo mi sie w koncu, dokonczyc program. Zaczne moze od polaczenia: gpio13 <->mosi (sda) gpio14<-> sck (scl) gpio16<-> reset gpio3<->dc gpio5 ->pwm do sterowania podswietleniem (nie podlaczac bezposrednio pod podswietlenie tylko przez tranzystor - wiekszosc modulow ma taki tranzystor na plytce) cs wyswietlacza mozna podlaczyc...
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...
To ja podniose temat: chodzi o uszczegółowienie logiki działania procesora przy zapisie do wewnetrznego flash. Jesli wykonuje zapis do flash to kontroler wstrzymuje dzialanie programu na czas zapisu/kasowania - to oczywiste. I jesli przychodzi przerwanie a obsluga jest w RAM (tak jak i wektor przerwan) to przerwanie wykonuje sie - to tez oczywiste....
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...
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"...
W sumie racja, bo wygenerowac sobie wartości potrafie tylko nie wiem właśnie jak ugryźć zapis do pamięci FLASH.
Hmm, chodzi o to, że Level 1 to cokolwiek oprócz 0xAA i 0xCC, czyli również 0xFF? Właśnie we flash programming manual to jakoś tak tajemniczo i krótko było opisane ;) Bo pomyślałem sobie jeszcze, że może jest odczyt bieżących RDP, WRP, Data0 itp., potem erase i zapis nowych, po czym dopiero po Launch (czyli chyba de facto soft reset?), jeśli RDP się...
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},...
Puściłem w pętli zapis 200 bloków po 512B. Zapis trwał około 9s. Wychodzi 45ms na jeden blok więc mniej więcej zgadza się z tym co wcześniej ustaliłem. Problemem mogą być małe porcje danych jakie zapisujesz. Pamięci flash w kartach SD mają bloki po np. 128kB. Jeśli zapisujesz 512 bajtów to kontroler karty musi skopiować dane ze starego bloku, dołożyć...
Każdy pojedynczy zapis w obrębie 1 strony flash wymagający ustawienia dowolnego bitu na '1' oznacza skasowanie całej strony flasha i jej przepisanie z nową wartością. Co zabija flash? Jego kasowanie...
o no widzisz, opanowales temat ;) co do stlinka nie pomoge, nigdy w zyciu go w rekach nie mialem... wprowadzając w programie blokadę SWD i JTAG Znam to ;] Jednak jesli chcesz maximum security, to dopisujesz druga instrukcje w rozbiegowce (tuz po inicjalizacji stosu) ktora wylacza SWD/JTAG (jeden zapis stalej pc-relative do AFIO->MAPR). Wtedy jest hardcore...
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ąć...
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ł...
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....
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...
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....
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...
[syntax=c] #include "stm32f10x_conf.h" #include "stm32f10x_gpio.h" #include "stm32f10x.h" #include "stm32f10x_rcc.h" #include "stm32f10x_flash.h" #include "misc.h" #include "stm32f10x_exti.h" #include "stm32f10x_flash.h" #include "integer.h" //#include "rtc.h" #include "diskio.h" #include "ff.h" #include "ffconf.h" #include "stdio.h" //------- Pin Defs...
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 od dwóch dni walczę z bibliotekami Fatfs, i mam niezidentyfikowany błąd, wykończyły mi się pomysły. Sprawa wygląda tak posiłkuje się przykładami z książki STM32 w praktyce Autor: Krzysztof Paprocki. W zasadzie chce skompilować gotowy kod , (przykład R9 sd_fatfs) działam na układzie STM mini http://allegro.pl/zestaw-uruchomieniowy-...
Przepraszam , że nie dokończyłem wczoraj ale przysnołem. Nie poszło tak prosto bo nie otrzymuje zapisu na kartę , cały program kompiluje się mi w porządku tzn otrzymuje hex -a, zadaniem poniżej przedstawionego programu jest tylko odczyt jednej wartości z wejścia adc1 oraz zapisanie jej na karcie do pliku o nazwie plik, poniżej przedstawiam listing z...
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...
Nie znam takiego sposobu. Ale jak potrzebuję to korzystam z fajnego narzędzia Freescale Embedded GUI Converter Utility. Tworzy on dla danego obrazka plik c i h i ma sporo możliwości jak sposób zapisu 8/16bit, kompresja itp. Ewentualnie bardziej karkołomny sposób jak konwersja WinHex-em za pomocą copy block->C source.
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.
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.
Jeszcze jedno pytanie mam tak w sumie. Komentarze, które tam dodałem w kodzie mają sens? Wzorowałem się na jednym pdf, który jest dostępny na forum, lecz próbowałem to zrozumieć a nie jedynie "przeklepać na głupiego".
Witajcie, siedzę i szukam błędu w bibliotekach do obsługi NRF24L01. Skopiowałem je z biblioteki, którą wykorzystuje w ATmega8. Działa nawet dobrze tam, niestety na STM32F0DISCOVERY już nie chce. Będę bardzo wdzięczny za pomoc. To najpierw kody, które wyrażają więcej niż tysiąc słów ;) : main.c http://obrazki.elektroda.pl/4732813300_1...
Nie ma możliwości zapisywania poszczególnych BAJTÓW (w uproszczeniu), a wygląda że to próbujesz zrobić. Funkcje zapisują zwykle 2 bajty na raz, adres zapisu powinien być więc parzysty, a Ty powiększasz zmienną Address tylko o 1 między wywołaniami.
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...
Witam Chcę zapisywać z własnego programu dane do flash procesora, jednak program zawiesza się w tym miejscu: [syntax=c]void FLASH_write(void) { FLASH->KEYR = 0x45670123; FLASH->KEYR = 0xCDEF89AB; while(FLASH->SR & FLASH_SR_BSY); FLASH->CR |= FLASH_CR_PER; //Page Erase Set FLASH->AR = Page_60; //Page Address FLASH->CR |= FLASH_CR_STRT; //Start Page Erase...
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...
Ciężko odpowiedzieć na tak zadane pytanie. To tak jakbyś zapytał jak sprawdzić wartość jakiejś komórki pamięci RAM (czyli powiedzmy jakąś zmienną). No po prostu odczytując ją :D Tak samo różne opcje zabezpieczeń. One są zapisane w pamięci, tyle że FLASH. Żeby je sprawdzić to trzeba je odczytać. No inaczej się nie na napisać. Ale mała podpowiedz: Option...
Usiłuję skorzystać z tej funkcji żeby zapisywać sobie wartość pewnej zmiennej do pamięci flash. Problem polega na tym, że za cholerę nie mogę zmusić bibliotekę do pracy. Dołączam sobie do projektu plik stm32f10x_flash.c i przy próbie kompilacji dostaję długi ciąg błędów sprowadzających się do tego, że kompilator nie rozumie typu uint32_t. Gdy dołączę...
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ć...
Hmm... Przez "niektóre komórki" rozumiesz tak totalnie jakieś arbitralne adresy, czy całe strony? Dziwne trochę, bo przecież flash da się kasować tylko stronami... Masz w swoim programie funkcje zapisu do flash'a? 4\/3!!
zapis flash stm32 stm32 flash zapis zapis pamięć flash stm32
dyplom elektryk domofon schemat kasety wzmacniacz mostkowy schemat
samsung wf70f5e0w2w tablet firmware
Czy TBA120S można zamienić na TBA120T? Wyłącznik świateł stopu a tempomat w Mitsubishi Lancerze