No to wyjątkowo słabo tą dokumentację przeglądałeś (; Na pierwszej stronie manuala masz coś takiego: For information on programming, erasing and protection of the internal Flash memory please refer to: ● PM0075, the Flash programming manual for low-, medium- high-density and connectivity line STM32F10xxx devices ● PM0068, the Flash programming...
Widać, że coś się odczytało i jest czysta pamięć. Nowy układ nie będzie zabezpieczony przed odczytem. A jeszcze dopytam, z tego starego STM32 zero szans żeby coś odczytać? Jedyne co o nim wiem że robi zwarcie pomiędzy 3.3V a GND. Jeżeli jakiś np. port jest uszkodzony nie oznacza to, że na 100% rdzeń się uszkodził i interfejs do pamięci flash również....
Ale to by znaczyło że, że takiego prostego mechanizmu jak w AVR nie ma poprzez zablokowanie zewnętrznym programatorem?
Niezależnie od tego, co z nimi potem robisz, najwygodniej czytać je zwyczajnie przez adresy po jednokrotnym ustawieniu odwzorowania QSPI w przestrzeni adresowej, a nie poleceniami odczytu pamięci. W EP możesz kupić elektronicznie dowolny numer.
Tyle to ja wiem, tylko dlaczego programować można dopiero skasowane komórki? Przecież podczas zapisu i tak nadajemy im konkretne wartości. Flash jest wolniejszy od RAM, co ujawnia się przy wyższych częstotliwościach zegara. No tak, ale jak jest z szybkością odczytu do 24MHz gdy porównujemy te pamięci?
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.
Flash loader demonstrator. Umożliwia ona m.in. zapis i odczyt pamięci programu mikrokontrolera STM32 przez bootloader poprzez USB Jak ustawić w/w program pokazano w 13 min [youtube]https://www.youtube.com/watch?v...
W wyszukiwarce wpisz "stm32 eeprom emulation".
Tutaj udokumentuję moją podróż z tanią płytką deweloperską / hobbystyczną STM32F103C8T6 "blue pill" zakupioną w Ali Express. Pomimo układu scalonego oznaczonego jako "STM32F103C8T6", wewnętrzna pamięć flash wydaje się mieć 128k zamiast 64k, co czyni go bardziej podobnym do STM32F103CBT6. Wydaje się, że nie jest to nieoczekiwane w przypadku podróbek/klonów...
Nie mogę sobie poradzić z odczytem pamięci która jest podpięta pod stm32discovery. Funkcja którą mam odczytuje jedynie 1 stronę z pamięci NAND. Patrzyłem na przykłady które są dołączone do stlink utylity lecz przykładu do NAND nie znalazłem. Może ktoś posiada źródła do przykładu z kością NAND512W3A lub podpowie co dodać do mojej funkcji żeby czytała...
Yup. O wiele lepszy będzie jakiś odczyt z pamięci czy coś takiego. 4\/3!!
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...
Jak jest zablokowany to nie odczytasz. kontroler potrzebował odblokowania, i nawet coś odczytuje. Jeżeli możliwe było odblokowanie to znaczy ze był RDP Level 1, którego zdjęcie powoduje skasowanie pamięci - więc i tak nie będzie co czytać - bo po co czytać pustą pamięć FLASH. Wiadomo, że tam są same 0xff
Znalazłem kod obsługi wyś 7-segmentowego, pozmieniałem rejestry pod swój mikro procesor (ATmega32). Tylko mam problem z linia " static const uint8_t __flash DIGITS To standardowy błąd eclipse i pluginu do AVR, nie wpływa ten błąd na kompilację, jedynie na "podkreślanie" składni w Eclipse. Rozwiązanie tego problemu znajdziesz m.in. w tym wątku: https://forum.atnel.pl/topic15543.html#p...
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 przerób go sobie na lpc2146 - komentarze w środku...
Czy da się zrobić tak, aby wszystko działało, ale aby pamięc nie była widziana? Jedno drugiemu przeczy. Ma działać debuger a odczyt pamięci ma być niemożliwy? Po co więc zabezpieczenie przed odczytem, skoro podłączając debuger można odczytać pamięć? W drugą stronę, skoro nie da sie pamięci odczytać, to jak ma to zrobić debuger?
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...
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...
(at)JacekCz Przejrzyj ofertę pamięci dataFLASH, są pamięci z intgefejsem SPI (obudowy zazwyczaj SO08) lub równoległym (większe obudowy). Odczyt sekwencyjny jest szybki (do kilkunastu MB/s), zapis odbywa się blokami o stałej długości dla danego typu pamięci i jest raczej wolny (do kilkuset kB/s przy zapisie do wcześniej skasowanych bloków). Masz też...
No proszę. Z kolei ja mam płytki Blue Pill z identycznym prockiem jak na zdjęciu przy których ST-Link raportuje 128kB ROM i 20kB RAM. Podpowiesz gdzie można odczytać ilość RAM w ST-Link?? jedyne co udało mi się znaleźć to rozmar Flash.. Do odczytu rozmiaru flash i ramu użyłem st-info . Niestety wyniki dla wszystkich zakupionych BluePill wyniki są takie...
Nie mam żadnej płytki z STM32F072CBxx, dlatego sprawdzić na żywym nie mogę. Odczyt rejestru nie może generować błędu, jeżeli projekt jest skompilowany dla tego właśnie mikrokontrolera. Jeżeli błąd jest podczas odczytu, a projekt zawiera definicjami rejestrów dla stm32f072xb, to sprawdziłbym co jest podłączone do programatora. Czy to na pewno jest STM32F072CBTx?...
Wprawdzie program mojego bootloadera napisałem korzystając z bibliotek ST, ale odblokowanie dowolnych stron FLASH'a do zapisu bardzo ładnie działa i nie mam z nim najmniejszych problemów. Zrobiłem to w następujący sposób (kolejność jest ważna): 1. Odblokowanie FLASH'a: FLASH_Unlock(); 2. Skopiowanie ustawień bitów rejestru USER OPTION BYTES: KopiaOBR...
Szanowni, Napotkałem na problem z zabezpieczeniem pamięci Flash przed odczytem. Pracuję na płytce testowej STM32F103 Nucleo, piszę w C z użyciem SPL, edytor: System Workbench for STM32. Mianowicie, po zaprogramowaniu procesora za pomocą ST-LINK Utility v4.1.0 swoim kodem, w opcjach oprogramowania Target->Option Byts ustawiam opcję Read Out Protection...
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ę,...
Podczas zapisu do Flash w uC, które mają jeden bank Flash, próba odczytu powoduje zatrzymanie procesora i poczekania do końca zapisu. Nie jest to problemem przy obsłudze przerwań UART, bo czas zapisu jest krótszy, niż czas transmisji znaku przez UART.
Mam również problemy z układem STM32F030 (obudowa TSSOP20). Główny problem polega na tym, że ST-Link (wykorzystuję ST-Link na płytce discovery) łączy się prawidłowo z układem ale nie programuje go. Nie działa również programowanie option bytes. Za każdym razem wyskakuje błąd weryfikacji już na pierwszym adresie flash (0x08000000). Natomiast odczyt pamięci...
No tak, bez funkcji HAL i LL nijak nie dałoby się odczytać trzech słów z pamięci Flash. Zresztą takie czytanie pamięci bez wywołania funkcji wygląda niepoważnie i nieprofesjonalnie. Weźmy np. taki kod: #define UID ((uint32_t *)0x1FFFF7AC) idhash = UID[0] ^ UID[1] ^ UID[2]; - czysta amatorszczyzna. żeby go napisać, trzeba wiedzieć, że UID jest trójelementowym...
Kontaktował się ktoś z ST w tej sprawie? Ciekaw jestem co oni na to? Mają zamiar to poprawić, czy będą udawać że nic się nie dzieje? Pisałem już wcześniej, że z ST się kontaktowałem i razem doszliśmy do wniosku, że przyczyną zakłóceń jest odczyt z pamięci flash. Teoretycznie gdyby napisać program działający z RAMu powinno być ok, ale już nie miałem...
Witam Chcę wykorzystać część pamięci FLASH do zapisu danych, aby nie utracić ich po wyłączeniu zasilania. Udaje mi się zarówno zapisać jak i odczytać z FLASHa ale nie jest możliwe nadpisanie danej komórki. Po próbie nadpisania wcześniejsza wartość pozostaje bez zmian. Funkcję do zapisu i odczytu: u8 FLASH_odczytaj(u32 Address) { return...
Zdecydowanie w rejestrze SR procesor zapisuje wszystko co go boli a również poprawność operacji. Zapis do flash'a jest dość mocno "strzeżony" i jeżeli pominiesz coś po drodze to się skończy odmową ( a czasem procesor może "polecieć"do wyjątku). Akurat w przypadku obsługi tej pamięci można podejrzeć biblioteki standardowe ST. A tak na marginesie to bez...
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]...
http://obrazki.elektroda.pl/7258579400_1... 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. Całość...
Pytanie 1: http://infocenter.arm.com/help/index.jsp... 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...
Witam Próbuje od jakiegoś czasu zmusić jeden procesor do zaprogramowanie części pamięci w drugim za pomocą protokołu swd. Bazowałem na początku na dokumentacji odnośnie EFM32 (jedyny cortex m3 który znalazłem w miarę opisany). Niestety zatrzymałem się na etapie, możliwości odczytu, zapisu do pamięci ram oraz odczytu z pamięci flash. Niestety nie jestem...
Występuje wyjątek bo nastepuje dostęp RW do pamięci flash ktora jest tylko do odczytu a wszystkie stałe umieszczane są bezpośrednio we flash. Najprościej do funkcji dodać jeszcze jeden argument ze wskaźnikiem na bufor wyjściowy. [syntax=c]char *STRING_DeleteStr(char * dst, const char *string, const char *del, u8 mode)[/syntax]
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...
w razie czego jakbym zablokował sobie linie od SWD. Nie da się trwale zablokować SWD (poza blokada odczytu pamięci flash, ale wtedy BOOT0 i tak Ci nie pomoże). W razie jakbyś zablokował sobie SWD z poziomu softu, to w ST-LINKu w opcjach zmieniasz tryb połączenia na "connect under reset" i jeśli masz wyprowadzony reset, ST-LINK sam sobie poradzi. A...
Czy można skopiować jakiś program bezpośrednio z jednego urządzenia na drugie (STM32F4 Discovery)? Trochę mało konkretne to pytanie. Jeśli przypadkiem Ci chodzi o skopiowanie programu z jednego Discovery do drugiego (tego samego typu), to nie ma problemu (jeśli akurat nie jest ustawiona opcja blokady odczytu). Programem ST-LINK odczytuje się i zrzuca...
Ok, ta było źle, ale ten problem pokazałby się później. Ja obecnie mam problem z zapisem do FLASHa już przy "formatowaniu EEPROMu" Wykonuje taki kod: http://obrazki.elektroda.pl/3024595400_1... eeprom.h: http://obrazki.elektroda.pl/4466315700_1... I tak jest do końca strony. Dzięki
Wcześniej użyłem volatile bo chciałem wymusić odczyt tych tablic za każdym razem z pamięci FLASH. A nie z jakiegoś rejestru gdzie wartość mogła by zostać zapamiętana. W tym celu, żeby po przeprogramowaniu pamięci, program na pewno operował na nowych wartościach. Ale mam rozumieć że w tym wypadku volatile nie pełni roli wymuszenia każdorazowego dostępu,...
Z tego co widzę masz tu ustawienia które są ok dla uVision v4. W v3 była taka różnica że w ustawieniach uLinka trzeba start zmienić z 0x8000000 na 0. Możliwe, że trzeba było tak samo zrobić w ustawieniach mapy pamięci (zakłada target). W v4 jest już to zrobione jak należy. PS. Ten komunikat może też chyba wyskoczyć gdy flash jest zablokowany przed odczytem....
No wiec zupełnie bez przekonania, ale dodalem bezposredni odczyt po programowaniu i zgodnie z przewidywaniem nic nie pomogo. Jakby pomogło to pewnie jakiekolwiek opóźnienie w kodzie miało by identyczny efekt, co w sumie... Ale dodatkowa informacja z tego jest taka ze zorientowałem sie ze wystepują sytuacje w której ta dodana weryfikacja (bezposrednio...
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...
Liczysz CRC zewnętrznie (na podstawie pliku .bin), doklejasz wartość do tego pliku, w programie odczytujesz sobie wartość z miejsca zaraz "za" programem. Ostatnio ktoś o to pytał nawet - http://www.elektroda.pl/rtvforum/viewtop... , a na forum jest całkiem sporo tematów o innych rozwiązaniach (np. http://www.elektroda.pl/rtvforum/viewtop...
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...
Dziękuję wszystkim za pomoc! Uruchomiłem bootloader z kartą SD, ale nie z projektu EP. Miałem duże problemy aby odczytać kartę SD. Wykorzystałem szablon Freddiego dla stm32f103 i FatFs w opcji read-only. Całość z obsługą prostego szyfrowania zajmuje mniej niż 8k. Odnośnie debugowania to łatwiej mi jest pisać i debugować osobno bootloader i główną aplikację...
Witam, Do poruszenia tego tematu zachęcił mnie sąsiedni wątek, w którym kolega pisze, że wyrabia się z kodem wynikowym poniżej 32kB (ograniczenie darmowej wersji Keila). A że nie chcę mu zaśmiecać wątku, to otwieram nowy....;-) Sprawdziłem swój "szkieletowy" program, w którym zaimplementowana jest póki co obsługa kilku peryferiów (klawiatura 4x4, wyswietlacz...
Jak procesor wykonuje kod już nie ma tam linkera, jak przekopujesz do tablicy kod działającej funkcji i ją wywołasz to ona się wykona, jak będzie w niej jakiś błąd to procesor to wyłapie Tak, tylko linker łączy pliki i tak powstaje kod maszynowy. Więc według Ciebie mogę wziąć funkcję z innego projektu (innej kompilacji) i też ma się poprawnie wykonać?...
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...
tmf napisał: Kolego, kompilator nic nie wie o adresach, typach pamięci i całym tym bałaganie. Cóś jednak wie czasami - bo jak by nie wiedział to jak by avr-gcc generował poprawny kod dla NAS? Przecież nie generuje. NAS powoduje tylko związanie z danym obiektem jednobajtowego identyfikatora przestrzeni, a reszta leży po stronie frontendu. Każde odwołanie...
Generalnie adres w PC wskazuje na kilka instrukcji "po" faktycznym problemie, bo zanim problem "dojdzie" do wykonywania, to PC jest już nieco dalej. Przed PC na stosie masz odłożony też LR - możesz sprawdzić też tam czy czegoś dziwnego nie ma wcześniej. Generalnie ciężka sprawa zwykle jest z tymi HardFaultami... Sprawdzam stos -> w chwili wystąpienia...
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...
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...
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...
Bzdura. Do lock/fuse/itp są zupełnie inne komendy. Programowanie tego wygląda kompletnie inaczej niż flasha. Nie jest to żaden "oddzielny adres". Chyba nie do końca masz rację. Zrobiłem taki eksperyment. Wziąłem STM32L152RE (bo ma EEPROM) i spreparowałem jeden plik hex z trzema obszarami. Flash (od 0x08000000, blink jakiś), EEPROM (od 0x08080000, tekst...
Witam, Mam mały problem związany właśnie z tą pamięcią. Buduję układ z wykorzystaniem LCD 7' i potrzebuję do pamięci FLASH wgrać kilka ikonek do interfejsu graficznego. Ikonki generuję sobie przez program Pixel Factory i tam generuje mi się tablica z ciągiem bajtów dla określonego obrazka(ikonki). I moje pytanie czy da się takie dane (tablicę z bajtami)...
A swoją drogą to nie mogę zrozumieć dlaczego po takim zabezpieczeniu nie ma możliwości na całkowite wykasowanie zawartości procesora. Bo to potencjalna furtka (; Załóżmy, że takie kasowanie najpierw czyści zabezpieczenie, potem flash - sposobem "dojścia" jest więc odłączenie zasilania pomiędzy krokiem pierwszym a drugim. Jeśli byłoby odwrotnie (najpierw...
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();...
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...
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ś...
Odczytać zawartość całej pamięci flash. Komendy do tego celu do znalezienia w manualu OpenOCD. 4\/3!!
bzdury pisza nie zablokowaleś a zabezpieczyles przed odczytem jestem na 100% pewny ze nie musisz wyrzucac do kosza plytki [url=http://www.elektroda.pl/rtvforum/to...
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...
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żą...
W moim kodzie jest (w zasadzie będzie bo to testy na razie) dużo skoków i odczytywania stałych z pamięci. Rozumiem działanie waitstat-ów, których zadaniem jest "dopasowanie" wolniejszej pamięci Flash do szybkiego rdzenia, pobierającego dane z większą szybkością niż ta na to pozwala. Niestety dalej nie bardzo rozumiem działanie instrumentu prefetch...
Teraz to już się zupełnie pogubiłem. Założyłem ten wątek tylko by zapytać, czy będą problemy z odczytem danych z pamięci Flash powyżej 64kB w ARM cortex M4, i czy spodziewać się tutaj jakichś problemów. W AVR8 trzeba było użyć Named Adress Spaces, tutaj nie trzeba i w sumie moja ciekawość została zaspokojona. Jeden z Kolegów zapytał po co mi to, to...
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"....
Witam, Moje pytanie dotyczy co zrobić z cache instrukcji, cache danych i buforem przedwstępnego ładowania prefetch podczas zapisu lub kasowania pamięci w flash. W RM piszą, że jeżeli podczas zapisu modyfikuje flash to również zostanie zmodyfikowany cache. W RM jest też napisane, że podczas kasowania flash (danych lub instrukcji) trzeba się upewnić,...
Na płytce z STM32F207ZG ustawiłem BusTurnAround = AddrSetup = 0, AddrHold = 1, DataSetup = 3, FSMC clock = 60MHz. Dostosowałem Twój kod (mam pamięć w innym banku) i nie zwiększają mi się liczniki errorX. Sprawdziłem kilka razy. Którego trybu używasz (A,B,C,D)? Czy masz wyzerowany bit EXTMOD? Czy wyzerowane są pozostałe bity (te które dotyczą pamięci...
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ń....
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);...
Powracam z nowym pomysłem, którym są template'y Może na wstępie napiszę po co mi to w ogóle jest. Otóż mam taką fanaberię, żeby stworzyć "framework" do ARMów w C++. Wszystko byłoby fajnie, gdyby nie trudności z przechowywaniem danych w pamięci FLASH. Otóż taka na przykład klasa Pin dla Cortex-M3 (STM32) wymaga dwóch wskaźników - na komórkę pamięci odpowiedzialną...
Mam problem ze zdjęciem blokady odczytu pamięci FLASH z procesora STM32F439 zasilanego z przetwornicy. Przy czym nie wiem czy to ma znaczenie. Wcześniej w żadnym projekcie na STMie nie zasilałem procesora z przetwornicy (przynajmniej nie bezpośrednio, jak była przetwornica to na 5V a potem post regulator liniowy na 3.3V), jak i nie używałem blokady...
Dodanie odblokowywania i zablokowywania flasha po zapisie nie pomogło. W programie zakomentowana została funkcja zapisu do flasha. Niestety to także niewiele pomogło. Pamięc nadal ulega skasowaniu w sytuacjach opisanych w pierwszym poście. Kolejna dziwna sprawa. Program wgrany do procesora i odczytany z niego (bez wyłączana zasilania czy resetu procesora)...
Mam problem z programowaniem przez OpenOCD 0.8.0 kontrolera STM32F429ZIT6 w STM32F429IDiscovery (STLINK-V2 lub zewnętrzny J-Link). Pierwsze 1MB programuje się prawidłowo. Z drugim są problemy. Problem jest raczej tylko z kasowaniem czego wynikiem jest brak możliwości programowania. Wykonując instrukcje OpenOCD (kasowanie , zapis, odczyt i diagnostyka)...
Nie wiem o co chodzi, support STM mi powiedział, żebym wgrał kod do ramu oraz wektor przerwań. Cały problem od początku: Zadanie programu jest następujące: 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...
Sprzęt jest zbyt wolny do wypełnienia całego ekranu w ułamku sekundy. Absolutnie !!! Błędnie Wysyłasz informacje o kolorze piksela ( w sensie wydajności). Nie tak, jak powinno to wyglądać, jeśli chodzi o prędkość wyświetlania grafiki. LCD_SetPoint to masakra dla dla wyświetlania bitmap (grafiki). Nie wiem, jaki Posiadasz sterownik wyświetlacza itd....
Jeśli ten moduł, to wypadałoby poszukać informacji, co to właściwie jest, bo opis był pewnie tłumaczony przez Google z chińskiego na angielski, a potem z angielskiego na polski - lepiej czytać po angielsku, mniej jest błędów, już widywałem takie "kwiatki", jak nazwanie płytki do próbnego montażu elektroniki deską do krojenia chleba... Coś tam piszą...
Muszę Ci powiedzieć, że ustawiałem bit STKALIGN w rejestrze CCR a także go resetowałem i wiele to dało... Podsumowywując: - kopiowanie (zapisywanie) z użyciem rozkazów STR i pochodne - nie działa - kopiowanie (zapisywanie) z użyciem rozkazów STREX - nie działa - kopiowanie (zapisywanie) przez DMA - nie działa - kopiowanie (zapisywanie) przez aliasy...
-- EDIT -- W sumie założyłem, że te funkcje dotyczą emulowanego we flash eepromu wg pomysłu ST. W sumie jednak nie wiem co to za funkcje i co robią, ponieważ ich związek z tematem jest dosyć nikły... Tak więc nie jestem w stanie precyzyjnie odpowiedzieć na pytanie, a to co napisałem poniżej może być zupełną bzdurą. -- EDIT END -- 3. Koledze Freddie...
Podałeś przykład z mnożeniem niedostosowanych do FFP liczb, to ja podam kontrprzykład: for(float i=0;i<10;i+=0.00000001); Zadziała z float? Oczywiście nie. O czym to świadczy? Wyłącznie o tym, że programując trzeba myśleć. Rozwiązanie problemu który przedstawiłeś zajmuje jakieś 3 sekundy - wystarczy zastosować typ double (lub po prostu zmienić wartości,...
https://obrazki.elektroda.pl/8440857400_... Każdy lubi Arduino, od najmniejszych modułów na Attiny85 po największe moduły oparte na mikrokontrolerach MEGA2560. Niestety, mają one swoje ograniczenia - jeśli potrzebujemy więcej mocy obliczeniowej, wyższej precyzji czy większej liczby wejść analogowych, to nie mamy zbyt wielkiego wyboru...
Próbuję napisać obsługę pamięci AT45DB041D. Komunikacja z układem jest, ale zapis i odczyt nie działa poprawnie. Dane w pamięci zapisywane są w dziwnej kolejności. Podczas odczytu pokazuje tak jak bym odczytywał strony 0,2,2,6,4,10,6,14,... [syntax=c] uint8_t flash_busy() { uint8_t status; cs(); spi_put(0xd7); status=spi_get(); cd(); if(status&&0x80)//gdy...
Dobra, a jak skonfigurować te linie i w jaki sposób w ogóle coś przesłać/odczytać? Powiedzmy, że chcę póki co zapisać, a potem odczytać jeden bajt z użyciem QSPI. Chodzi mi o konkretny kawałek kodu bo jakoś nie mogę znaleźć w internecie żadnego przykładu na komunikację z SRAM po QSPI. Widziałem coś dla pamięci flash, ale tam to jest jakoś inaczej. Trzeba...
Witam OK, zamieszczam nowy kod źródłowy i wsad do mikrokontrolera programu radiomagnetofonu, w którym usunąłem błąd powodujący wyciek pamięci podczas grania radia oraz dodałem dwa usprawnienia poza tym. Błąd wycieku pamięci polegał na zgłoszeniu faktu braku pamięci przez dekoder AAC podczas kolejnej próby nawiązania połączenia z serwerem wybranej stacji...
Witam serdecznie po raz kolejny :) proszę o pomoc ze względu na fakt, iż troszeczkę się pogubiłem. Próbuje obsłużyć panel dotykowy TSC2046 (nigdy wcześniej tego nie robiłem) na wyświetlaczu 320x240 ze sterownikiem ILI9320. Używam trybu 8bitowego, ale w 12 bitowym dzieje się to samo. Problem polega na tym, że od czasu do czasu, pomimo moich zabezpieczeń...
A czy da się jednocześnie zadeklarować magistralę FSMC do LCD(magistrala 16 bitowa) i zadeklarować magistralę do pamięci FLASH NAND (magistrala 8bitowa). I w pętli odczytywać z pamięci NAND FLASH dane i wysyłać je do LCD? Chciałbym użyć 8 bitowej bo są tańsze i jest są ogólnie dostępne. Czy trzeba użyć 16 bitową NAND FLASH?
Wielkie dzięki. Instrukcja load niestety nie działa w tego typu zastosowaniu. Wystarczy zmienić na monitor flash write_image erase main.bin 0x08000000 Reasumując Gdyby ktoś kiedyś chciał zaimplementować używanie flasha jako eeprom: Można tak: Zainicjować sobie strukturę obojętnie jaką w sekcji variables. #define FLASH_PAGE_SIZE ((u16)0x400)...
Dokładnie tak, interesowało mnie dlaczego kod nie działa w takiej sytuacji. Miałem takie problemy z testowaniem własnego kodu po wrzucaniu do ram lub flash naprzemiennie, niestety nie dotarłem do przyczyny i sobie darowałem. Płytka to olimexino stm32 z STM32F103RBT6. Zasadniczo wszystko ma swoje źródło w tablicy wektorów, znajdującej się w pamięci...
Przeczytałem w dokumentacji, że STM32F429 mają do 2MB pamięci Flash podzielonej na dwa banki z możliwością równoległego odczytu i zapisu. Czy ktoś używał takich pamięci? Jak to jest z kompilacją programu powyżej 1MB - czy muszę wywoływać jakąś komendę, żeby przełączyć się między bankami, gdy wywołuję funkcję Foo() w banku 1 z funkcji Bar() w banku 0?...
Pytam jak ją skasować. do czego tu kod. (nie posiadam funkcji przy sobie)! Nie ma sensu próbować kasować flagi OVR, skoro znacząco prościej jest nie dopuścić aby została ona ustawiona. Osiągasz to przez odczytanie DR dokładnie tyle samo razy ile go zapisałeś. Drugie, po co mam czytać 6 bajtów skoro ich nie ma. To jak w NRF24L01, nadając coś zawsze...
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),...
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 . https://filmy.elektroda.pl/11_1551555088... https://filmy.elektroda.pl/90_1551555174... https://filmy.elektroda.pl/15_1551555225... https://filmy.elektroda.pl/89_1551555287... Jedna z dwóch gier...
Witam. Zdaje sobie sprawę, że mój problem nie jest jedyny jednak zarówno w sieci jak i w praktyce nie znalazłem konkretnego rozwiązania. Problem dotyczy Komunikacji STM32L100 z pamięcią FLASH M25PX33 obsługiwaną po SPI. Nie widzę tu raczej problemu z pamięcią czy też z połączeniem procesor-pamięć. Używam programatora ST-Link z płytki Discovery F4, STM32L100...
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...
https://obrazki.elektroda.pl/8717321000_... Cena $5 (20zł) dotyczy oczywiście producenta, u nas jeszcze VAT, ale i tak powinniśmy się zmieścić w 30zł. Ale do rzeczy, co się zmieniło w porównaniu do RP2040: 1. Jest teraz do wyboru płytka 7×7mm, QFN60 (RP2350A) z 30 GPIOs lub 10×10mm, QFN80 (RP2350B) z 48 GPIOs 2. 4 MB pamięci QSPI flash,...
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, checksumie itp. które są potem w przypadku reklamacji...
W oknie debugera możesz zobaczyć ile czasu wykonują się poszczególne fragmenty programu. Czy możesz pokazać zrzut ekranu z taką informacją? Na pewno pomoże to wielu Kolegom, szczególnie tym początkującym. (at)bartosz.tarnowski Mowa jest o STM32F4, czyli Cortex-M4, nie M3. Poza tym, w tych układach jest akcelerator dostępu do pamięci programu, który...
Witam, poczytałem sporo informacji nt. skryptów linkera, ale niestety jednej rzeczy nie mogę zrozumieć. Mam przykładowy zapis (sam napisałem): [syntax=c] .text : { . = ALIGN(4); __text_start__ = .; /* zmienna zawierająca początek sekcji text */ *(.text) /* kod wykonywalny aplikacji */ *(.text.*) *(.rodata) /* dane tylko do odczytu przechowujemy we flashu...
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)...
stm32 flash odczyt odczyt flash stm32 zapis pamięci flash stm32
silnik dymić biały wykorzystać wyświetlacz radia śmigła elektrowni wiatrowej
teltonika konfiguracja sprzedam tp118
Regulacja jasności podświetlenia zegarów Iveco Daily - metody i problemy Regulacja napędu bramy garażowej Siebau - instrukcja krok po kroku