Proszę bardzo.
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...
Ok, to tak działa - po włączeniu zabezpieczenia Read Out Protection - Enable i Apply, procesor staje się niedostępny dla odczytu pamięci flash. Po ponownym odbezpieczeniu - Disable - Apply, procesor się odblokowuje, ale zostaje skasowana cała pamięć flash.
//wlaczenie opoznienia FLASH FLASH ->ACR |= (FLASH_ACR_LATENCY_1); Dla częstotliwości 72 MHz, żeby pamięć Flash działała musisz ustawić jej dwa cykle opóźnienia a nie jeden.
To od razu zapytam, czy przy STM32F103VC można obsłużyć pamięć nand flash?
Ja w takich przypadkach stosuję metodę którą na swoje potrzeby nazwałem "split objects". Obiekt u mnie składa się po prostu z dwóch części - stałej i zmiennej. Zwykle "główny" obiekt jest stały, a ten "zmienny" fragment jest podrzędny, jednak są sytuacje w których robię to odwrotnie, głównie wynikające z polimorfizmu lub dlatego że łatwiej/lepiej jest...
1. W Debug Configuration zamień DBG (DSF) na Standard DBG (na samym dole). 2. W Startup, w pierwszym okienku, wpisz reset halt (razem!). 3. Wywal komendę exit. 4. Odblokowałeś pamięć FLASH STM32?
Zwykle nie mają i zwykle nie jest to problemem, gdyż można bezproblemowo zapisywać wbudowaną pamięć flash, aby sobie taki EEPROM "emulować". Często układy te mają też podtrzymywana bateryjnie pamięć (np. do 4kB w STM32F4), która również może zastąpić EEPROM.
Jest to płytka STM32F103RB NUCLEO. Podpięcie pinu BOOT0 pod masę nic nie daje nadal program zanika Sprawdziłem pamięć flash poprzez STM32 ST-LINK Utility i jest w niej program aczkolwiek nie działa http://obrazki.elektroda.pl/5116944600_1... Dodam jeszcze, iż kiedy połączę się płytką w STM32 ST-LINK Utility to wciśnięcie przycisku reset...
Witam. Mikrokontrolery STM32 mają w sobie embedded flash memory. Jest to pamięć EEPROM, NAND Flash czy NOR Flash? Nie znalazłem tego w manualu.
Chodzi cały czas o grafiki typu interfejsu użytkownika - przyciski, suwaki itp. Nie o wyświetlanie skomplikowanych animacji czy filmów, nie ma tu przesyłu dużego strumienia danych, a więc nie ma znaczenia w jakiej pamięci są grafiki i czy są przesyłane przez procesor czy nie - mogą być i przez procesor, i przez DMA, np. SPI->FSMC. LCD_WriteRAM_Prepare();...
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"...
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ż....
Aby wyjaśnić Ci Twój problem, podaję Ci metodę "czytania" typów zmiennych, który wyjaśnia wszystko. Jest kilka zasad: 1. Czytanie zaczynamy od nazwy zmiennej 2. Czytamy w prawo dopóki nie dojdziemy do "końca", po osiągnięciu "końca" czytamy w lewo od nazwy zmiennej 3. Obowiązują nawiasy, które są "lokalnymi końcami" Tak więc: const char * const l_wartosc[]...
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...
No ale jakto? Wszędzie piszą, że BOOT0 powinno być podciągnięte do masy podczas startu procesora żeby odpalił się z pamięci flash :/
pamięć wirtualna Pamięć wirtualna bez MMU? Niezłe wyzwanie.
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...
uC zapisuje za każdym razem 64 bajty danych do pamięci flash
Być może da się pokombinować z wyzwalaniem transferu timerem. Z drugiej strony nie bardzo rozumiem, jaki miałby być z tego pożytek - przesadzenia całego oprogramowania do RAM łatwe nie jest, a na czas zapisu procesor zatrzyma się przy dostępie do Flash, chyba że to model z dwoma bankami.
Dzięki DXFM za odpowiedź :) Tzn. wiem i potrafię zadeklarować tablicę na sztywno w pamięci FLASH - z tym jest wszystko ok. Ale mnie chodzi o coś takiego: mam pewną funkcję, która w swoim argumencie ma zmienną - może ona być modyfikowana przez użytkownika (coś w stylu sin(a*x), gdzie a jest tą zmienną od usera). Teraz... wyliczam np. 512 wartości funkcji...
Czy to oznacza że nie ma potrzeby uruchamiać bootloadera w RAM, gdy będę kasował/zapisywał na sektorach na których nie ma kodu bootloadera? Uruchomienie kodu w RAM jest konieczne tylko gdy chcesz aktualizować kod samego bootloadera. Jeśli nie masz tego w planie, to nie jest Ci to potrzebne i cały bootloader może być w pamięci flash. 4\/3!!
LPC11E i parę innych serii. W rodzinie STM32F też się parę serii znajdzie. Można też użyć zewnętrznej pamięci na I2C lub SPI za grosze - to po pierwsze. A po drugie: Pamięć Flash w STM32 może być programowana pojednyczymi słowami, więc nie ma żadnych problemów w użyciu jej do przechowywania często zmienianych danych. Jesta na to parę sposobów, w zależności...
Odpowiedź na Twoje pytanie jest dosyć prosta - protokół SWD nie ma rozkazu zapisu do flash i tego się po prostu nie da tak zrobić jak zapisu do RAM. Oprogramowanie na PC, które się komunikuje przez SWD z układem (np. program do ST-Linka, OpenOCD) wgrywa do RAMu specjalną procedurę, która fizycznie realizuje zapis (poprzez odpowiednią sekwencje zapisów...
No to posłuchajmy merytorycznych argumentów przemawiających za dodatkowymi elementami, większą płytką, większymi kosztami montażu i dłuższym kodem I2C, zwłaszcza w przypadku F1xx z małymi stronami pamięci Flash.
Nie ma właśnie nic więcej wspomniane o tym, przewija się raz jeszcze na początku ta fraza, ale żadnego objaśnienia Jest w DS objaśnienie (koło strony 500, "Theory of Operation" ) The EEPROM operates using a traditional Flash bank model which implements EEPROM-type cells, but uses sector erase. Additionally, words are replicated in the pages to allow...
Bardzo często EEPROM jest emulowany w pamięci FLASH w sposób niewidoczny dla użytkownika. Nie można emulować funkcjonalności takiej jak wytrzymałość na ilość cykli zapisu/kasowania albo możliwość nadpisania pojedynczego bajtu. Jak nie można? Potrzeba 1kB EEPROM 100'000 zapisów (jak np w AVR), przeznacza się na pamięć 10kB FLASH, która ma ograniczenie...
Biblioteki z ST są zakręcone..niestety. Czy ja wiem? Są po prostu beznadziejne <: A jak się spojrzy na kod, to "OMG" <: Zaletą mojego pomysłu jest to że struktura ze zmiennymi jest jakby zrzutowana na pamięć więc dostęp do niej nie wymaga użycia żadnych dodatkowych funkcji. W istocie, w tej emulacji EEPROMu o której pisałem powyżej dostęp faktycznie...
Zgadza się. Dlatego każdy plik .h w moim projekcie został podzielony na dwie części. Jedna która dołącza się jeżeli pewien ciąg został zdefiniowany, a druga jeżeli nie. W pliku c dołączam bez definicji i wtedy mam wszystkie zmienne globalne i prototypy funkcji. Jeżeli będą mi one potrzebne w innym pliku c do przed include robię define i wtedy mam tylko...
Ja mam tak: __attribute__ ((section(".bootloader&... int program_page(unsigned short *data, unsigned int adr) {... } i linker: .bootloader 0x08000000+128K-1K : { *(.bootloader) } i działa
-- 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...
Z nagrywaniem jest kwestia "na co?" - ale to zależy od tego, czego użyjesz. Można programowo wygenerować wzorce sygnałów, jakie są potrzebne, i na jakimś Pi odczytywać z karty SD (czy mikroSD - różne bywają tam gniazda na kartę) odpowiednie wzorce i puszczać je na pin, który będzie połączony z wejściem wzmacniacza. Na każdy sygnał trzeba będzie ze 200kB,...
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?
Pytanie, jaka moc obliczeniowa i jaka pamięć jest do tego potrzebna, i czy program może działać wielowątkowo. Oprócz Raspberry Pi (jest tego kilka typów) są jakieś Orange Pi, Banana Pi, Nano Pi... wszystkie mają podobne możliwości, jak komputery, mają różne procesory (niektóre 4-rdzeniowe), więc i różną moc obliczeniową - trzeba ustalić, które mają...
Ależ jest i to znacznie lepszy mechanizm bo zabezpieczyć procesor można zarówno programatorem jak i z poziomu programu a odbezpieczenie wymaga skasowania całej pamięci i odblokowanie nie nastąpi do momentu kiedy cała pamięć nie będzie wykasowana (algorytm sprawdza wszystkie komórki - zabezpieczenie przed trikiem z wyłączeniem zasilania po rozpoczęciu...
Mam jeszcze pytanie odnośnie samego działania SWD i programowania... Jeśli BOOT0 = 0 to startuje ten kod który jest we Flash. Jak to się dzieje, że mimo działającego programu OpenOCD potrafi przerwać jego pracę i zacząć wgrywać program ? Jeśli dobrze doczytałem to jest to tylko możliwe jeśli są włączone sygnały SWDIO i SWCLK ? i drugie pytanie: Jeśli...
Nie da się - STM32 z zewnętrzną magistralą do podłaczenia pamięci dopiero mają wejść do produkcji w tym roku...
Zamiast próbować wgrywać program z Eclipse, to skasuj to co tam jest przez OpenOCD - tylko i wyłącznie. Istnieje też (mało prawdopodobna) opcja, że zablokowałeś pamięć, więc w manualu poszukaj jak ją odblokować ("flash protect" oraz "stm32f1x unlock"). 4\/3!!
to tablicy unsigned charow w flashu stm32 juz nie mozna trzymać? sprawdzilem na tablicy uint8_t zarówno zapis jak i odczyt działa bez zarzutów. W takim razie nie wiem co mogło być przyczyną problemów w przypadku pojedynczych zmiennych. To, że ci nie działa tak jak trzeba to jest wina twojego softu, nie flasha ani kompilatora. Sprawdź jak zmusić GCC...
Co większe STM32 mają możliwość podłączenia (i to nawet dużej) pamięci zewnętrznej (RAM, ROM, Flash...). Na to trzeba sporo pinów, o ile pamięć nie jest szeregowa.
no ale flash też jest w ROMie (czy aby na pewno jest to pamięć niezapisywalna - wolałbym aby było inaczej ale jak się nie da to trudno)
Przeczytaj sobie np ten temat: http://www.elektroda.pl/rtvforum/topic17... Od siebie napiszę tylko tyle, że jak porównasz kody bez bilioteki ze źródłem biblioteki to zauważysz jedną rzecz: coś co często można zrobić w dwóch linijkach (konfiguracja) tam jest robione w dwustu. Jest tam mnóstwo niepotrzebnych obliczeń do sprawdzania jaki bit gdzie...
Właśnie generacji z Excel'a chciałem uniknąć bo jak napisałem będzie to nie wygodne przy dużej liczbie elementów tablicy. Musi być wyliczony cały sinus ponieważ operacje które muszą się wykonać jak najszybciej. Jak na razie zostaje tylko Excel. Bądź Pan Pro-Inżynier, użyj Pan fid = mopen('probki.c', 'w'); if (fid == -1) error("upss...
Flash musisz kasować blokami, to nie działa jak EEPROM, że możesz skasować pojedynczą komórkę. Gdzieś widziałem przykład emulacji pamięci EEPROM za pomocą pamięci flash... O, już wiem, w książce p. Lucjana Bryndzy o ARMach 9 jest przykład, który wykorzystuje 2 bloki pamięci flash. Jest tam zrobione wirtualne adresowanie itp. Ale można zrobić też tak,...
Jest jakiś ratunek dla tego procka ? Czy lutować nowego ? Flash loader demonstrator - spokojnie "odratujesz" ale będziesz musiał usunąć aktualny program. Przed podłączeniem programatora sprawdź ustawienie pinów BOOT. Jeśli nie możesz się połączyć, to coś nie tak jest ze sprzętem. Czy z poziomu programu użytkownika można ustawić bity odpowiedzialne...
A jak sprawa z RTOSem wygląda jak są obecne w uC dwa lub więcej fizyczne rdzenie? Czy to trzeba jakoś specjalnie przygotować RTOS do tego czy on powinien sam wiedzieć już co robić? Widzę że widzisz RTOS jak desktopowy OS. Pomino tego że się nazywają Operting System to niewiele mają ze sobą wspólnego. Procesory wielordzeniowe to temat rzeka i jednym...
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...
(at)michalko:"Dokładnie, wystarczy zmieniać tylko adres bazowy głównego programu w skrypcie linkera. " No właśnie nie. Zmienna FLASH_BASE w tym wyrażeniu, to nie adres bazowy programu, ale adres bazowy całej pamięci FLASH 0x80000... (sprawdziłem). Najmniej inwazyjna zmiana, to właśnie podmiana w tym wyrażeniu FLASH_BASE na jakiś PROGRAM_BASE (celniej...
Mam w takim razie pytanie jaki programator jtag jest najtańszy, a zarazem oczywiście umożliwi mi w miarę bezproblemowe zaprogramowanie/debugowanie układu. To zależy, czy masz LPT - jeśli tak, to patrz wyżej, jeśli nie, to patrz np tutaj - http://www.elektroda.pl/rtvforum/topic11... Po drugie potrzebuję procesor, do którego będę mógł podłączyć...
Witam! Chcę wgrać parę danych do pamięci mikrokontrolera STM32F107 (ustawienia domyślne). Nie wiem za bardzo jak powinien wyglądać kod linkera do takiego zapisu? Korzystam z CodeSourcery ze strony Freddiego. Nie posiadam debuggera, więc kod mogę wgrywać tylko poprzez bootloader na USART. Pamięć chciałbym zapisać paroma danymi 32bit, a następnie mieć...
Masz rację - wydaje Ci się... (; Latencja to nie jest jakiś delay czy preskaler, po prostu przy nie-sekwencyjnym wykonywaniu rozkazów (skoki), potrzebne są te 2 cykle na załadowanie bufora. Spadek wydajności przez taką latencję oscyluje pewnie w rejonie kilku procent, więc nad czym się tu zastanawiać? Jeśli podniesienie częstotliwości "nic nie dało"...
Witam, Mam kilka pytań do znawców odnośnie pamięci FLASH w uC STM32. Chciałbym zapisywać dane do FLASH z poziomu działającego programu. Czy wstępne czyszczenie pamięci jest konieczne i dlaczego jest ono stosowane? (skoro i tak zapisujemy tu komórki) Jaka jest rzeczywista szybkość odczytu z FLASH w porównaniu do SRAM w kontrolerze? (jak rozumiem granicą...
Czy to cud że jakoś działa? Dobrze ująłeś.....jakoś działa....pod gołym niebem. Może ST poprawiło tę pamięć flash, może.... :wink:. Odpaliłem to samo co miałem na STM, na LPC'u, nawet ułożenie elementów jest identyczne.....i nic niczego nie zakłóca.
Witam, Mam pewne pytanie dotyczące zmiennej globalnej wyspecyfikowanej jako const. Taka zmienna nie może zostać zoptymalizowana i jest trzymana w sekcji nazywanej .rodata, która to znajduje się w pamięci FLASH. (W mikrokontrolerach stm32) W takim razie jeżeli zadeklaruje np. tabelicę: [syntax=c]const uint8_t tablica[1000]; [/syntax] to oznacza, że taka...
Tak się nie da. Chyba, że kod programu zostanie podzielony na dwie sekcje i jedna będzie umieszczona przed tablicą a druga za tablicą.
cześć takie dwie sprawy. 1. Zakładając że mam zadeklarowane dwa takie ciągi znakowe [syntax=c]char *str1 = "string numer 1"; char str2[] = "string nr 2";[/syntax] oraz jakąś funkcję która wysyła przekazany ciąg znaków dla przykładu na RS choc może być to jakiś LCD [syntax=c]void wyslijRS(char * ciag);[/syntax] z tego co rozumiem to str1 jest ZMIENNĄ...
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...
Eee... No ale bez sbrk() malloc() nie ma prawa działać... Chyba że jest to gdzieś w reszcie plików zaimplementowane. Pooglądaj wynikowy plik .map - tam zobaczysz co wylądowało w RAM a co we flash. Pliki które masz w tym przykładzie nie są zbyt dobre - szczególnie skrypt linkera... Składnia która jest tam zastosowana wg mnie w ogóle jest niejasna i dziwna...
No to by też tłumaczyło, dlaczego kalibracji nie robią raz i zapisują trwale do pamięci nieulotnej. Ale dlaczego manual o tym nie wspomina ? Jaki jest czas retencji danych w pamięci flash tych ARMów ?
Tak na chłopski rozum to tablica przerwań może się zaczynać tylko od adresów, które mają 7 najmłodszych bitów równe 0 i dlatego w rejestrze VTOR te bity są nie zaimplementowane. Wyszczególnienie bitu 29 jako selektora FLASH/RAM służy chyba do zaznaczenia, że np. pamięć zewnętrzna nie może służyć do przechowywania tablicy wektorów przerwań, pomimo że...
https://obrazki.elektroda.pl/2759406900_... 8-bitowe mikrokontrolery nadal można znaleźć w wielu projektach, ale dzięki nowemu, niedrogiemu 32-bitowemu z rdzeniem AMR Cortex-M0+ taktowanym 48 MHz — STM32C0 — firma STMicroelectronics dąży do wyparcia 8-bitowych jednostek. Co może się odbyć wskutek: „ograniczonego wpływu...
Temat poruszony: https://www.elektroda.pl/rtvforum/topic3... Jeśli chodzi o podstawową funkcjonalność to jest podobna. GD32 bazuje na innej konstrukcji gdzie pamięć programu jest kopiowana z szeregowego flash do SRAM i stamtąd uruchamiana (co ma szczególne znaczenie przy wyższych prędkościach zegara). Wada - dłuższy coldstart. Co do...
(...) ustawiłem wektor przerwań i początku pamięci flash w linkerze z odpowiednim offsetem (0x3800) Co to za magiczny offset? :D
OMG, ale po co ładujesz wciąż plik .bin... Załaduj po prostu plik .hex czy .elf - parametr offset nie ma wtedy żadnego znaczenia (jest ignorowany), bo pliki te zawierają adresy. Co do parametru "unlock" - jeśli masz układ z zablokowaną pamięcią, to ta komenda nie zadziała zawsze - jak widzisz - w niektórych układach po odblokowaniu pamięci konieczny...
http://obrazki.elektroda.pl/5847962200_1... Dzięki Szwedzkiej firmie Oberon Microsystems Inc., która przeportowała Microsoft.NET Micro Framework (NETMF) możliwe jest pisanie programów dla mikrokontrolerów SMT32 w popularnym języku C#. NETMF wykonuje kod bez pośrednictwa systemu operacyjnego tak jak to jest w przypadku tradycyjnego komputera...
Pamięć NAND nie jest mapowana w przestrzeń adresową FSMC. Pamięć NAND wymaga wysyłania jej durnych rozkazów, i jest to ekwiwalentnie pokręcone jak obsługa kart SD/MMC (tyle że prościej). Dodatkowo zapomnij, że będziesz sobie w stanie tą pamięć ot tak zapisywać jak słowo pod wskaźnik do RAMu czy FRAMu. FSMC definiuje ci tylko adresy pod które mozesz...
Profilaktycznie zrób clean i make all, przy pomocy OpenOCD ręcznie skasuj całą pamięć w układzie (np. "flash erase_sector 0 0 last"), a następnie dopiero zaprogramuj. Co się dzieje zaraz po starcie można prześledzić przy użyciu listingu assemblerowego, czyli pliku .lss lub coś podobnego. 4\/3!!
Kierowany ciekawością weryfikowałem poradnikową wydajność egzekucji programu z obszaru pamięci Flash, jak i RAM. Faktycznie kod z RAM przy bazowych częstotliwościach wykonuje się wolniej ( przy wyższych częstotliwościach jest szybszy jeśli pamięć Flash nie posiada kontrolera z pamięcić podręczną ). Dodatkowo po przeanalizowaniu budowy konkretnej implementacji...
Witam. Czy ktoś spotkał się z problemem kasowania komórek pamięci FLASH mikrokontrolera STM32 po szybkich zmianach jego zasilania? Mam urządzenie wkorzystujęc SMT32F103RBT6. Zasilane to przetwornica na LM2576 ->5V, potem stab. liniowy 3,3V. Od strony eletronicznej wszystko zaprojektowane jest poprawnie. Urządzenie działa poprawnie. Jednak, gdy np, szybko...
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...
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...
Zaczynałem na AVRach, później przesiadłem się na STR7xx, ugryzłem LPC, a teraz tworze projekty na STM32 i są to naprawdę świetne uC. Łatwo zacząć, bo jest dobre darmowe środowisko bez konieczności godzinnych konfiguracji, tutaj instalujemy i jest gotowe do pisania programu dla STM32 lub odpalenia przykładów zawartych w IDE. Na początek dobra też jest...
Witam, Zaczynając z modułem mikroprocesorowym skasowałem program demo (używając flash loader demonstrator). Później wgrywałem przykładowe programy z CooCox'a. Wszystko działało, tzn. na lcd/touchpanelu były wyświetlane programy z folderu "example", można było z powodzeniem wgrać program i działał on w pełni poprawnie(program był wyświetlany na lcd i...
Chętnie poznam kogoś komu udało się zniszczyć pamięć flash programując ją podczas normalnego poznawania układu czy rozwoju jakiegoś projektu... Mnie się wciąż jeszcze nie udało... 4\/3!!
https://obrazki.elektroda.pl/5728376300_... Black Pill to nowa płytka prototypowa. Black Pill to następca popularnej i niedrogiej Blue Pill. Sercem Black Pill jest układ STM32F401CCU6 lub STM32F411CEU6 firmy STMicro zawierający jednordzeniowy procesor ARM typu Cortex-M4F o taktowaniu odpowiednio 84MHz lub 100MHz. Kompatybilność Black...
Ja tak obecnie robię w STM32, tyle że na tych prockach zapis do pamięci Flash jest bardziej niż prosty, na LPC2xxx jest gorzej, a na Atmelach nie wiem jak jest. Generalnie można wykorzystać sprytne algorytmy "wear leveling" i pamięć jest praktycznie nie do zajechania... pdf: http://www.st.com/mcu/download2.php?file...
Witam ,Posiadam pilot od łódki Viking Boat. Podczas próby wgrania oprogramowania przez pomyłkę została usunięta cała pamięć z układu. Mam pytanie: Czy istnieje możliwość zgrania całej zawartości flash z układu STM32L dawcy i wgrania go ponownie? Nadmienię, że posiadam kopie plików BIN i HEX, ale po próbie ponownego wgrania programem STM32 ST-LINK UTILITY...
TO masz pecha. BO początku pamięci flash nie da się tak wykorzystać.
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...
Witam, Zastanawiam się nad kupnem zestawu STM32-103STK Olimexu (http://www.shop.kristech.eu/product_inf... Wszystkie peryferia mi odpowiadają. Jedyne co mnie zastanawia to mała pamięć flash (124KB). Chciałbym uruchomić na tym zestawie odtwarzacz MP3 (dekodowanie softwearowe) + mass storage, a nie jestem pewien czy dostępna...
Przykładowy linker dodany do cubef4 dla mikrokontrolera np. stm32f439NI ma tak podzielone obszary pamięci: We fragmencie kodu który pokazałeś widać "jak na dłoni", że pamięć flash _NIE_ jest podzielona, więc nie wiem w czym problem... Czy używając pamięci 2MB z dual bankiem mogę zapisać program na obydwu obszarach pamięci bez żadnych dodatkowych kroków...
Kontroler karty operuje na sektorach 512B nie blokach 128kB Czytaj uważnie. Ja pisałem o blokach w pamięciach NAND flash, a nie o tym co emuluje kontroler karty SD. Zbych_: skąd masz taką informację? Z lektury datasheetów pamięci NAND flash, które są wkładane do kart SD, np. pamięci ST (obecnie numonyx) 8Gb (1GB) mają bloki w rozmiarze 128kB.
A te pamięć jakoś wyłączyłes z zasobów dostępnych dla programu albo zarezerwowales? Bo jakoś tego nie widzę (żadnych segmentów czy w najgorszym razie jakaś tablica jak to tmf woli)
To nie mikrokontroler "marnuje pamięć", a źle napisana biblioteka. Kod na uC 32-bitowy na ogół nie jest dłuższy niż odpowiadający mu kod na uC 8-bitowy, bo to samo da się zrobić mniejszą liczbą operacji. Za jakość bebechów biblioteki odpowiadają jej autorzy. Projekty, które na STM32 robią dużo więcej, niż da się zrobić na śrenim ATmega, na ogół zajmują...
Witam Rozbierając ecigaret Aspire Typhon 100 zauważyłem że na pcb jest układ stm32f072c8t6 i złącze do programowania SWD 5 pinowe (SWDIO-3.3V-NRST-SWCLK-GND). Na stronie dystrybutora znalazłem soft do wgrywania upgradu i 2 pliki bin z softem. Pierwszy plik to oryginał a drugi to upgrade, gdzie poprawiono pewne rzeczy. Po podłączeniu urządzenia pd usb...
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...
Ściągałem kiedyś ze strony ST program StM32-StLink-Utility i tam był driver. Z tym że ja używam StLinkV2. Znalazłem ST-link-v1 [url=http://www.st.com/web/catalog/tools... i zainstalowałem tą aplikację i nie mogłem się połączyć. W akcie desperacji ściągnąłem sterowniki na XP i je zainstalowałem...
Nie ma to jak wrzucać dokładny kod błędu... main.c:32:32: error: Roleta_EEPROM causes a section type conflict with Roleta_EEPROM2 volatile struct Roleta_offsets Roleta_EEPROM[7] __attribute__ ((section(".eeprom_mem&... __attribute__ ((aligned (32))) = ^ Jak chcesz to mieć...
Od kilku dni bawię się płytką st32f401-c disco. Nie wiem dokładnie jak działają timery. Potrzebuję mieć przerwanie co 10ms. Z tego co przeczytałem w internecie powinno to wyglądać tak: [syntax=c]T IM_TimeBaseInitTypeDef TIM_TimeBaseStructure; TIM_TimeBaseStructure.TIM_Period = 9999; // 100Hz - 10ms TIM_TimeBaseStructure.TIM_Prescaler = 41; // 1000000MHz...
w architekturze harward gdzie pamięć danych nie może być użyta do przechowywania wykonywanego kodu programu (w przeciwieństwie do organizacji von Neumana). Nie do końca jest to prawdą. W przypadku AVR owszem, ale takie uogólnienie na wszystkie procesory w architekturze harwardzkiej jest nadużyciem. Przykładowo STM32 - są wykonane w architekturze harwadzkiej...
Swoją drogą to ciekawe ile FLASH w chińczyku wytrzyma cykli, datasheet oryginalnego ST podaje że na bank ponad 1000 i 10000 standardowo. Między innymi właśnie to bym chciał sprawdzić - wybrać sobie jakiś obszar pamięci Flash w MCU i go zajechać ;).
https://obrazki.elektroda.pl/7232055200_... [uC zidentyfikowany jako stm32f401. Zacznijmy od początku , urządzenie to papieros elektroniczny. Uszkodzony podczas flashowania. Po podłączeniu do programatora musiałem wykasować pamięć flash żeby usunąć ROP Level 1. Po ponownym wgraniu oprogramowania do pamięci uC urządzenie niestety nie...
Rozwiązanie najprostsze: nie włączać watchdoga przez bajt konfiguracji w pamięci Flash - włączyć go programowo.
Skoro tak, to mimo zastosowania się do Waszych porad na pinach A nadal panuje stan niski. Dlaczego przy włączaniu bitu GPIOAEN należy zastosować sumę? Jeśli chodzi o bit FLITFEN to co mam rozumieć przez power down dla FLASH? Pamięć flash może przechodzić w tryb power down? Dobrze się domyślam, że chodzi tu o proces zapisu?
Dlatego proponowałem Tobie rozwiązanie z STM32 oraz FPGA. Niech mikrokontroler trzyma całość na karcie SD czy Flash szeregowym, które są tanie i szybkie. Tutaj obejdzie się Mico32. albo wstawić jakiś mały soft-procesor w roli maszyny stanów jak Mico8. Druga opcja to równoległy Flash oraz mały CPLD do rozruchu. Nie będzie tu potrzebny mikroklocek. Od...
rb401, bardzo dziękuję za obszerną odpowiedź. Myślałem nad STM32, ale wydawał mi się wtedy zbyt duży kolos do nauki. Kupiłem więc ATMega 128, ze względu na dużą pamięć flash, nie biorąc pod uwagę pamięć RAM. Swój wybór uwarunkowałem też tym, że ludzie na ATTiny robią odtwarzacze *.wav, z podpiętą kartą SD. Cały problem polega na tym, że nie potrafię...
Funkcjonalność urządzenia będzie dość mocno rozwijana, więc i danych do przesyłania będzie sporo (powiedzmy stan 50ciu zmiennych). To nie jest zbyt wygórowane wyzwanie dla ESP8266, ale wszystko zależy od tego ile to będzie bajtów i w jakich jednostkach czasu. Jeśli ESP może spełnić moje oczekiwania, to czy wystarczą mi komendy AT w które jest wyposażony...
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...
Witam, Po paru dniach ślęczenia udało mi się - tak myślę :) , skonfigurować rcc na 72MHz. : void rcc_init(void) //RCC init włączający procesor na 72MHz { RCC->CR|=0x1; //wlacz HSI wewnętrzny oscylator, włączany jako pierwszy po zasilaniu. while(!(RCC->CR&0x2)); //poczekaj na HSI sprawdza czy HSI się włączyło RCC->CFGR|=(0xF<<18);...
Najpierw napisz do czego będziesz go wykorzystywać? Do programowania pamięci NOR Flash o rozmiarze 64MB (512mbit). Tylko i wyłącznie do tego. JTAGiem przez STM32 z OpenOCD trwa to dwie godziny. Seggerowski J-Flasher jest z 10 razy szybszy ale ten rozmiar go akurat przerasta i się wysypuje. Z 16MB i 32MB sobie radzi, z 64MB już nie. Poza tym mikrokontrolery...
zapis pamięć flash stm32 programator pamięć flash stm32 stm32 zewnętrzna pamięć flash
zasilacz przegrzanie satel bateria integra monitor zapala chwile
Wymienne łożyska w pralkach Whirlpool 6kg 40cm Wentylator nie działa w piecu Vokera 25 - brak napięcia