Proszę bardzo.
OK. Udało się wreszcie. Problem tkwił w funkcji do zapisu danych. Wydawało mi się że zapis był realizowany poprawnie. Zapisywałem zmienną 16 bitową naraz a wolno tylko po pół słowa, jednak po zapisie zbyt dużej ilości danych sprawdzałem tylko jedną komórkę i wyświetlałem na wyświetlaczu i się zmieniała - więc myślałem, że jest wszystko z zapisem porządku...
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.
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...
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?
//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.
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.
pamięć wirtualna Pamięć wirtualna bez MMU? Niezłe wyzwanie.
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"...
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[]...
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 :/
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...
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ż....
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.
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...
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.
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...
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...
Witam Dodałem trzy usprawnienia do programu radioodbiornika internetowego. Pierwszym usprawnieniem jest już możliwość odtwarzania strumienia AAC-LC nadawanego przez część radiostacji internetowych. Drugim usprawnieniem jest możliwość samoczynnego wznowienia odtwarzania wybranej radiostacji przez program radioodbiornika w przypadku, gdy serwer radiowy...
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...
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,...
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!!
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...
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
Możesz rozwinąć tą myśl? Dlaczego miałyby być miejsca niewidoczne skoro to świeżo zakupiony procesor bez jakiś zabezpieczeń. A może pamięć ma być uszkodzona?
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ć...
Nie da się - STM32 z zewnętrzną magistralą do podłaczenia pamięci dopiero mają wejść do produkcji w tym roku...
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.
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...
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. Jestem w trakcie pisania bootloadera po magistrali CAN dla STM32F103VE. Opieram się głównie na publikacji AN2557 zamieszczonej na stronie ST. Potrafię przesłać aplikację użytkownika po magistrali CAN do uC i zaprogramować pamięć Flash od wybranego adresu w górę. Na wstępnie odblokowuje pamięć Flash (FLASH_Unlock(); ) następnie podgrywam aplikację...
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ą...
Witam serdecznie! Ostatnio mój STM32f051R8 odmówił mi posłuszeństwa. Podczas zwykłego zgrywania na pamięć flash płytki wyskoczył mi komunikat: C:\CooCox\CoIDE>"C:/CooCox/CoIDE/bin\cof... program STM32F051R8 "C:/CooCox/CoIDE/workspace/zadanie1/zada... --adapter-name=ST-Link --port=SWD --adapter-clk=1000000 --erase=nothing...
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....
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?
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...
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...
Tak się nie da. Chyba, że kod programu zostanie podzielony na dwie sekcje i jedna będzie umieszczona przed tablicą a druga za tablicą.
Witam, jestem początkującym programistą procesorów ARM. Posiadam płytę ewaluacyjna MCBSTM32 z procesorem STM32F103RB oraz środowisko do programowania Keil uVision3. W zestawie jest rowniez programator ULINK Cortex. Na początek chciałem zaprogramować program demonstracyjny "Blinky" dla tej płyty. Wszystkie ustawienie "option for target" (device, target,...
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...
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Ą...
Bo pamięć Flash jest po prostu znacznie wolniejsza (chyba 24MHz max).
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 ?
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...
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...
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...
To nie jest tak ze problem pojawia sie zawsze ale na powiedzmy 5 tys zapisów. Przy duzej ilosci zapisow do flash wychodza dopiero problemy. Sa jednak bardzo nieregularne - czasem czesciej niemal co chwila a czasem bardzo rzadko A nie jest przypadkiem tak, że już udało Ci się zamęczyć tą pamięć Flash taką ilością zapisów? Dodano po 2 Ponowię pytanie...
(...) ustawiłem wektor przerwań i początku pamięci flash w linkerze z odpowiednim offsetem (0x3800) Co to za magiczny offset? :D
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...
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...
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...
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...
Już od wielu lat znam problem ale nigdy nie chciało mi się do niego przysiąść. Czyli lenistwo poziom expert. Do obsługi FLASHa używam nieznacznie przerobionych kodów autorstwa w123456xy (nie z elektrody, tylko gdzieś w internecie znalazłem). I problem taki: Dam optymalizację -O0, działa. Dam -Os, nie działa. Do tej pory radziłem sobie po prostu pozostawiając...
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...
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...
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...
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...
To, że STLINK z Keil'em może się "nie lubic" to akurat nie jest nic odkrywczego. Ale jak JLink nie daje rady to coś nie jest tak jak być powinno. Obie opcje w sekcji DEBUG ustaw na Normal. Spróbuj też z poziomu STLINK Utility odczytać "Option Bytes" (lub ogólnie sprawdzić czy to oprogramowanie potrafi coś zrobić z procesorem np. skasować pamięć). Jeżeli...
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...
(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, 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...
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ą...
Spróbuj wyczyścić całkowicie pamięć przed tą próbą programowania. Uruchom raz OpenOCD z konsoli z takimi parametrami: openocd -f board/st_nucleo_f103rb.cfg -c "init; reset init; flash erase_address unlock 0x8000000 0; shutdown;"
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.
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...
To już wiem, że mam zablokowaną pamięć Flash. Chyba nawet domyślam się, że mogłem tego dokonać próbując wgrać binarkę przez vsgui dołączonym do versaloon'a. OpenOCD wypluwa: Open On-Chip Debugger 0.8.0-rc2 (2014-04-15-16:15) Licensed under GNU GPL v2 For bug reports, read http://openocd.sourceforge.net/doc/d... xsvf adapter...
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...
Ś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...
Karol966 - mówisz że z pliku .bin dane trzeba najpierw zaszyfrować żeby mogły trafić do flash ? Ale ja nic nie mówię a się dopiero pytam ;) Generalnie wygląda to tak, że po stronie PC z pliku np *.hex poprzez szyfrowanie otrzymujemy inny plik (może to też być *.hex jak i zapewne *.bin). Dalej przez jakiś program ładujący czy też prosto przez kartę...
To nie jest dobry pomysł. Bootloader nie powinien dzielić żadnych danych z aplikacją i powinien być kompilowany oddzielnie. Najpierw uruchamia się bootloader, który albo coś robi, albo przekazuje sterowanie do aplikacji. W tym momencie dane bootloadera powinny zginąć i zginą, bo aplikacja zainicjuje pamięć danych na nowo. Aplikacja musi być kompletnym...
(at)stmx Są bezpieczni, ponieważ to nie jest dokładna kopia STM32F103xx. Pamięć flash jest osobno i rdzeń wykonuje program z pamięci ram. Peryferia są funkcjonalnie zgodne, ale nie ma sposobu aby udowodnić kopię na poziomie krzemu, ponieważ dostępne są struktury RTL dla tych modułów. Implementacja struktury w krzemie to już indywidualna sprawa wytwórcy....
zapis pamięć flash stm32 programator pamięć flash stm32 stm32 zewnętrzna pamięć flash
sterownik lm339 pralka blokada polar atmega obciążalność portów
komunikacja radiowa satel galmet wyswietlacz
Ekspres do kawy Miele – lokalizacja bezpiecznika, modele, serwis, usterka zasilania Mercedes Vario – siła siłownika hamulca pneumatycznego, typy 24/30, ciśnienie 8–10 bar