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...
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?
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?
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
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"...
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.
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ż....
W wyszukiwarce wpisz "stm32 eeprom emulation".
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...
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...
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...
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...
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...
No tak, bez funkcji HAL i LL nijak nie dałoby się odczytać trzech słów z pamięci Flash. Wiesz że masz tu rację. Gdybym akurat nie przeglądnął HALa dla F030F4 to bym dalej tkwił w błędnym przekonaniu (jak wielu ludzi, w tym autor wątku) że dla tych kostek UID akurat nie jest zaimplementowany. Czyli jednak korzyść z HAL jakaś się objawiła. A zasadniczo...
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...
(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ż...
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)...
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...
Temat jakoś umiera śmiercią naturalną. Pozwolę sobie nieco odświeżyć. Hardware: - HY-mini (Cortex M3) - LCD ze sterownikiem ssd1289 (FSMC) - karta sdhc (SDIO) Software: - fatfs R0.10 („testowałem” też wcześniejsze wersje) - „HAL” dla fatfs – silnie wzorowany na przykładach dołączonych do HY-mini i przykładach sugerowanych...
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.
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?...
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,...
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...
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...
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?
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]...
Po każdym zapisie trzeba flash odczytać. Nie trzeba*. Jeśli masz na myśli PM0075 (2.3.3) to "Read the programmed value and verify" odnosi się tylko do weryfikacji i nie ma wpływu na programowanie, źle interpretujesz wspomniany rysunek. To samo masz w 2.3.4, na końcu masz "read & verify" po kasowaniu. Z tym odczytem chodzi tylko o to aby sprawdzić...
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...
Obecnie korzystam z STM32F030F4P6. No to nie masz dużego wyboru. Jeśli masz tych zmiennych nie więcej niż kilkadziesiąt, to wystarczy jeśli zajmiesz na eeprom dwa obszary 1k. Czyli stronę 14 i 15 a PAGE_NB_PVP ustawisz na 1. Jeżeli chciałbym, by EEPROM zapisywał mi od strony załóżmy 15, to wtedy ta linijka kodu przyjmie taką postać?: #define EEPROM_START_ADDRESS...
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"....
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, 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...
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...
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...
Odczytać zawartość całej pamięci flash. Komendy do tego celu do znalezienia w manualu OpenOCD. 4\/3!!
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...
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...
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...
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...
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...
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...
Panowie, teraz pewna partia wprowadziła modę na rybę, nie wędkę - popłyńmy na myśli prezesa. Gotowiec: działają tak choćby karty SD, pamięci Flash czy EEPROMy - jak to się wtedy ma do Twojej koncepcji, bo tak się składa, że z punktu widzenia mastera coś musisz jednak nadać żeby cokolwiek odebrać... Nie ten procek, co go autor ma, ale ficzer przydatny,...
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ś...
Witam, pozwolę sobie na wykopaliska archeologiczne, ale myślę, że to może się jeszcze komuś przydać. Większość przypadków Hard Fault podczas działania DMA w STM32F1 powstaje przez błędną konfigurację kanału DMA przy użyciu biblioteki standardowej. Błędny fragment kodu: hlayer.c:167:43: warning: assignment makes integer from pointer without...
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...
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żą...
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...
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...
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
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...
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...
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);...
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ć,...
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ń....
OpenOCD zaktualizowanie tak jak kompilator wcześniej. Przerabiam przykład od początku teraz na bazie tego o którym mówiłeś LPC Będe wklejał tutaj co dokładnie przerabiam. Jeśli coś robię źle to mam nadzieje że mnie poprawicie. Jeśli dobrze to mam nadzieje że komuś się przyda. 1.Import projektu lpc1114_blink_led i rename na stm32f0_blink_led 2. Zmiany...
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ą...
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?...
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...
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...
-- 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...
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...
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...
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)...
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...
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ę...
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,...
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...
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...
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)...
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....
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...
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ń...
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...
więc chyba nie pomogę A jednak. Naprowadziłeś mnie na ten dostęp do pamięci, i czy coś mogłoby interferować. Zacząłem szukać, i w końcu znalazłem: cyklicznie odświeżane przez debugger, okno podglądu peryferium SPI . Okno schowane wśród innych, i zupełnie pominięte. Odczytujący rejestry SPI debugger, co jakiś czas, tak wstrzeliwał się pomiędzy transfery,...
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)...
michalko12 napisał: >"A ja się pytam po co te podkręcanie? Bo procek nie wyrabia? To dupa z ciebie bo nie potrafiłeś dobrać procesora na etapie projektowania, a jeśli tak dla zasady to napisz to i dopisz, że nikt nie powinien tak postępować. " Mój drogi zupełnie się z tobą nie zgodzę, jednak tu na forum obowiązują pewne normy - nikt tu nikogo nie obraża....
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...
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,...
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...
stm32 flash odczyt odczyt flash stm32 zapis pamięci flash stm32
regulacja nacisku igły rozdrabniarka gałąź zasilacz domofonu elfon
malowanie remont alarm rowerowy
Podłączenie silnika DC 310V do zasilania AC 230V - skutki Jak zdemontować nagrzewnicę w Nissan Micra K12?