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.
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"...
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?
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ń....
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.
W wyszukiwarce wpisz "stm32 eeprom emulation".
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...
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...
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...
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...
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...
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...
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...
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?
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...
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...
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ę,...
(może nie do końca początki bo coś już umiem) chyba jednak początek:). Uzupełniając powyższą odpowiedź należy wrócić do podstaw. AVR i RAM mają zupełnie różne architektury. AVR ma rozdzielone przestrzenie adresowe a ARM ma jednolitą. Dlatego w AVR musisz wykonywać jakieś magiczne sztuczki, aby odczytać wartość z pamięci programu, a w ARM nie. W ARM...
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....
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.
Dzięki za schemat widziałem jakieś na chińskich stronach, ale mi się nie udało tego ściągnąć, bez logowania. Jeśli chodzi o JTAG to jeśli udałoby się go uruchomić to mógłby być przydatny. Ale też na początek prostsze może wydawać się przetestowanie tego SERDB po I2C po pinach UARTU, który też daje dostęp do rejestrów RIU. Więc możnaby je monitorować...
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...
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...
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 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?...
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...
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...
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...
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...
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...
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);...
Ta procedura jest po prostu błedna. Po każdym zapisie trzeba flash odczytać. Tu tego nie ma. Napisałem teraz dla F3 co prawda taką na kolanie i bez zamykania, i sprawdzania innych problemów - ale rejestry wyglądają podobnie [syntax=c]int ProgramFLASH(uint16_t *buff, uint32_t addr, uint32_t len) { int result = 0; if(addr & 1) return -1; while(FLASH...
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...
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....
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]...
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...
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/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ść...
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]
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...
Czyli niepoprawny program przypadkiem Ci działał (bo deklarowanie zapisywalnych zmiennych we flash raczej ciężko uznać za poprawne), a taki mniej niepoprawny już się nie kompiluje. Trochę szukanie dziury w całym, skoro jedyne poprawne rozwiązanie to dodanie "const" do _WSZYSTKICH_ obiektów które będą we flash... Program w sensie kodu był niepoprawny....
Zaraz będzie, że krytykuję albo się naśmiewam, ale widzę tutaj poważne braki w wiedzy. I właśnie na to liczę, że ktoś mi wytknie braki w wiedzy ;) Wiem, że SSD1289 wypada słabo w porównaniu z konkurencją. Nie mogę się zgodzić natomiast co do zawężania obszaru. Jest to jak najbardziej możliwe w tym układzie. Rejestry 0x44, 0x45, 0x46 umożliwiają zawężenie...
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,...
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...
bo SD każdy użytkownik może sobie wyjąc i odczytać, a chciałem utrudnić taką zabawę :) W takim razie lepiej chyba dać do flash-ki ale bez systemu plików. Komunikaty nie muszą mieć stałej długości, zawsze można na początku zrobić tabelkę z adresami poszczególnych komunikatów żeby miejsca nie marnować i móc zapisywać dowolnej długości komunikaty (oczywiście...
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...
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...
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...
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...
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...
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...
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...
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....
Bzdura. Do lock/fuse/itp są zupełnie inne komendy. Programowanie tego wygląda kompletnie inaczej niż flasha. Nie jest to żaden "oddzielny adres". Jak pisałem, zażyj sobie magnezu, napij się czegoś mocniejszego lub użyj innej metody, która cie uspokaja zanim coś napiszesz. Bo niestety bzdury sam opowiadasz i wykazujesz się nieznajomością toolchaina...
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();...
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...
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...
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?...
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żą...
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ś...
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...
Witam, Pytanie jak w tytule: ilu bitowe są wskaźniki w STM32F4xx? Chodzi o dostęp do pamięci (RAM czy FLASH) powyżej 64kB? Czy wystarczy zadeklarować tablicę: const TABLICA[64][2048]={......} żeby można było ja potem odczytać np. uint16_t wynik=TABLICA[13][1209] - czy taka operacja odczyta element 1209-ty z podtablicy numer 13?
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...
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...
Programować Flash się da Boot0 jest ściągnięty do masy Programu nie da się wgrać. IDE to CooCox CoIDE. Wcześniej przy wgrywaniu programu pojawiał się komunikat o pomyślnym wyczyszczeniu pamięci, pomyślnym wgraniu i pomyślnym restarcie Teraz nie pojawia się nic, poza wywołaniem programu który ma to zrobić. I nie jest to wina IDE bo w STLink Utility jest...
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
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,...
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
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...
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)...
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...
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ą...
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...
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ą...
Pytanie trochę z innej beczki: Próbuje zapisać strukturę do FLASHa. Robię to w taki sposób: [syntax=c] char *bytebybyte = (char*)&EEPROM_Data; char bajt; int size = sizeof(EEPROM_Data); Erase_EEPROM(); Unlock_EEPROM(); for(i = 0; i < size; i++) { bajt = bytebybyte[i]; Save_EEPROM_BYTE(1+i,bajt); //Adres względny - sektor 7 } Lock_EEPROM(); [/syntax]...
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,...
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...
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...
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...
Przeczytałem dział o RDP. Widzę, że są trzy poziomy zabezpieczeń. Level0 -brak; Level1 - zabezpieczony przed debugowaniem i odczytem z wew. bootloader'a oraz przy pracy z ramu Level2 - całkowicie zabezpieczony, brak możliwości przejścia na niższe poziomy zabezpieczeń, wyłączony JTAG i SWD. Czy to znaczy, że w Level2 nie będę wstanie w ogóle już zmienić...
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)...
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 uklady wyykonawcze to uklady z rownolegla szyna danych (8 bitow) - tylko do zapisu (odczytanie tych rejestrow zawsze zwraca 0x00) tak wiec piszac aplikacje obslugi tych ukladow trzeba operowac na pamieci ram i wyniki transferowac do rejestrow - w ten sposob zawsze moge sprawdzic co bylo i jest w danym rejestrze. uklady posiadaja tez rownolegla...
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...
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/9151185000_... Druga część artykułu o najtańszych nowych mikrokontrolerach z roku 2017. Ekosystem developerski Środowisko developerskie mikrokontrolera ma ogromny wpływ na jakość pracy z nim i w konsekwencji - na produktywność. Na to składają się różne czynniki – jakość IDE, dostępne biblioteki, płytki...
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)...
Witam, mam problem z zapisywaniem danych do pamięci Nand Flash komunikującej się z STM32F746IG za pośrednictwem interfejsu FSMC. Gdy wygeneruję projekt z CubeMx konfigurujący tylko pamięć flash wszystko działa, tzn. zapis, odczyt, kasowanie, czytanie ID itp. Problem pojawia się gdy do projektu dodam TIMER (w sumie cokolwiek co generuje przerwanie),...
https://obrazki.elektroda.pl/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 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ń...
Od kilku dni walczę z niby banalnym tematem. Przewałkowałem krok po kroku dokumentację, noty aplikacyjne i dostępne przykłady ale nadal nie mogę ruszyć. Chcę przesłać przez SPI5 wykorzystując DMA2 (strumienie: 3 do odczytu i 4 do zapisu na kanale 2) dane do/z układu ADE7953 . Sama transmisja SPI robiona programowo (sprawdzanie flag TXE i RXNE) działa...
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...
stm32 flash odczyt odczyt flash stm32 zapis pamięci flash stm32
alternator motocyklu tuner rtl2832 picasso komputer silnik
odzyskiwanie danych android odzyskiwanie danych android
Busch+Müller tylna lampka rowerowa nie włącza się Ustawienia anteny satelitarnej Astra 19.2°E w Hartenholm