Witam! Mam problem z uruchomieniem modułów radiowych RFM12 pod STM32. Uruchomiłem je bez problemu na ATmegach8 korzystając z funkcji opisanych w [url=]tym poście. Jest to programowy SPI i przepisałem funkcje od nadajnika tworząc coś takiego: [syntax=c] #include "stm32f10x.h" #include "GLCD.h" #include <stdio.h> #define SCK GPIO_Pin_10 #define...
Witam, Stworzyłem płytkę z mikrokontrolerem STM32F407. Próbowałem ja zaprogramować przykładem "blink_led" ze strony Frediego i nie chciało działać. Oprogramowanie Eclipse + bleeding toolchain + openocd 0.7.0 zostało skonfigurowane wg tutoriala Frediego na Ubuntu. Nie chciało się poprawnie programować, więc próbowałem różnych porad z internetu, ale to...
Witam, Zaczynam zabawę z STMami i mam pewien problem. Z kilku kodów w internecie zlepiłem swój kod i niestety jak to zwykle bywa coś jest nie tak. Docelowo chciałem obsłużyć wyświetlacz TFT wykorzystując FSMC. Napotykam problem gdy próbuje zrobić w pętli głównej wysyłanie danych przy użyciu FSMC w pewnych odstępach czasu. Jeżeli w kodzie umieszczam...
Dzień dobry, Zacząłem naukę STM32 i mam problem z USART2. Chciałem się połączyć z hyperterminalem. Od strony terminala wszystko działa poprawnie (sprawdzone przez zwarcie tx i rx). Od strony stm-a wygląda to tak, że kiedy chcę odebrać jakiś znak, to program wisi na fladze oczekującej na odebranie znaku. Natomiast kiedy chcę wysyłać, to nic się nie dzieje...
Poniżej program do obsługi wyświetlacza TFT: Interesuje mnie dlaczego funkcja LCD_Clear(WHITE) na STM32 działa wolniej niż na Atmedze32 z kwarcem 16MHz. Wydawało mi się że powinno czyścić ekran szybciej na STM32 a już na pewno nie wolniej. Tylko nie zwracajcie mi uwagi na temat pętli opóźniającej;) ponieważ i tak nie jest wykorzystywana w LCD_Clear....
W ręce wpadł mi wyświetlacz 4'3 cala z wbudowanym kontrolerem FSA506. Posiłkując się tematem udało się go uruchomić. Niestety przedstawiony sposób komunikacji jest strasznie powolny. Bazując na działającym przykładzie z wykorzystaniem kontrolera SSD1289 próbowałem odpalić ten wyświetlacz przy wykorzystaniu FSMC. Szerokość magistrali jest taka sama,...
Witam :) Chce zapisać zmienną do pamięci EEPROM w procesorze. Testuje peryferia dynamicznie i nie wiem co się z nimi dzieje w trakcie działania. Wysyłają do mnie dane po USARCIE i chciałbym je zapisywać w wewnętrznej pamięci. Znalazłem realizacje zapisu, lecz wszędzie bazuje się na bibliotekach HAL, których nigdy nie używałem i się przekonać nie mogę....
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);...
Nie udało mi się niestety usunąć flasha. Openocd wypluwa coś takiego: > stm32f1x unlock 0 stm32f1x unlock 0 device id = 0x10016418 STM32 flash size failed, probe inaccurate - assuming 256k flash flash size = 256kbytes Target not halted in procedure 'stm32f1x' > stm32f1x mass_erase 0 stm32f1x mass_erase 0 device id = 0x10016418 STM32 flash size...
Open On-Chip Debugger 0.10.0 Licensed under GNU GPL v2 For bug reports, read Info : auto-selecting first available session transport "hla_swd". To override use 'transport select <transport>'. Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD adapter speed: 500 kHz adapter_nsrst_delay:...
Witam Używam mikrokontrolera STM32VET6 będącego częścią zestawu ewaluacyjnego wraz ze środowiskiem Keil i Jlinkiem. Chciałem go przetestować na szybko wgrywając przykładowy program do migania diodą - po wgraniu poniższego programu mikrokontroler przestał się komunikować z Jlinkiem (jtag nie rozpoznaje mikrokontrolera). #include <stm32f10x_lib.h>...
Witam Mam sobie taki mikrokontroler: STM32W108CBU64 (i 63). Używam OpenOCD w wersji 0.5.0. Używam programatora Versaloon. Po paru próbach skleiłem sobie wykrywającą ten MCU konfigurację OpenOCD: 31.3.1 Mechanism to select the JTAG-DP or the SW-DP. By default, the JTAG-Debug Port is active. If the debugger host wants to switch to the SW-DP, it must provide...
Witam, Mam następujący problem z biblioteką HAL do zapisu danych w pamięci flash. Posiadam dwie tablice 160 elementowe tabX oraz tabY (typ int16). Chciałbym zapisać dane te w pamięci nieulotnej flash, a dokładnie w adresach 0x08080xxx oraz 0x08090xxx. Cały mój problem pojawia się przy dokonywaniu polecenia EARSE przy zapisie drugiej tablicy. Aby poprawnie...
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...
Witam, mam taki oto problem. Chciałbym przeprowadzić transmisję SPI jednocześnie nie obciążając CPU, a więc odpowiedź jest jasna czyli DMA. Napisałem sobie taką funkcyjkę do transmisji danych: [syntax=c]void CopyTo( UNSIGNED8_PTR pToMemory, MEM_UNSIGNED8_PTR pLocalMemory, UWORD wLength ) { UWORD wAddress; UWORD i; UBYTE data; DMA1_Channel3->CNDTR=wLength;...
Witam ponownie, problem rozwiązany, a rozwiązanie jest proste (J-link SEGGER), tylko trzeba trochę poszukać, aby debugować arma przez sw-dp (JTMS,JTCK,GND,VCC), należy po pierwsze przestawić gdb server do pracy w sw-dp, podejrzewam, że w większości gdb jest podobnie, wiersz poleceń: C:\jlinkgdbserverCL -if swd Uruchomi się gdb server w tym trybie,...
Witam Idąc za PM0075: The main Flash memory can be programmed 16 bits at a time. The program operation is started when the CPU writes a half-word into a main Flash memory address with the PG bit of the FLASH_CR register set. Any attempt to write data that are not half-word long will result in a bus error response from the FPEC. If a read/write operation...
Dodano po 2 [syntax=basic4gl]2015-05-17T10:28:58 INFO src/stlink-common.c: Loading device parameters.... 2015-05-17T10:28:58 INFO src/stlink-common.c: Device connected is: L1 Med-density device, id 0x10186416 2015-05-17T10:28:58 INFO src/stlink-common.c: SRAM size: 0x4000 bytes (16 KiB), Flash: 0x20000 bytes (128 KiB) in pages of 256 bytes 2015-05-17T10:28:58...
chodzilo tylko o poprawienie komendy 'monitor reset halt'. Takze po tej modyfikacji projekt komus sie moze przyda ;) Przy okazji podpowiem ze natrafilem na problemy z : - exception kompilatora spowodowany umieszczeniem Coreutils w sciezce z nawiasami '(' -f interface/stlink-v2.cfg -f target/stm32f1x_stlink.cfg \ -c init -c targets -c "halt" \ -c "flash...
No to już jakaś pocieszająca informacja, choć raz już miałem problem wprowadzając w programie blokadę SWD i JTAG, musiałem trochę pokombinować z programatorem i przyciskiem RESET, żeby programator załapał kontakt z procesorem przed wykonaniem pierwszych rozkazów. Dodano po 7 Mam pytanie bardziej praktyczne - jak tego używać w ST_Link Utility. W Option...
Wyłączyłem optymalizacje. Wprowadziłem zmiany w startup. Main wygląda tak: [syntax=c]int main(int argc, char* argv[]) { // At this stage the system clock should have already been configured // at high speed. int x=0; x+=10; // Infinite loop while (1) { ++x;// Add your code here. } }[/syntax] Podczas klikania step into zmienna x się inkrementuje. Można...
Jak chcesz aby ktoś Ci pomógł, to podaj więcej szczegółów. Nie napisałeś nawet, jaki to dokładnie układ. Jeśli włączenie read-out protection sprawia problemy Twojemu programowi, to musisz się zastanowić, co takiego ten program robi, że może to być problemem. Przykładowo funkcjonalność read-out protection sprawia, że kod wykonywany z RAMu nie może już...
Takie coś musisz umieścić oprócz oczywiście konfiguracji i innych komend -c "dump_image backup.bin 0x8000000 0x80000" a przywrócenie, żebyś drugi raz nie pytał -c "flash write_image erase backup.bin 0x8000000 bin" Poprawiłem wielkość flasha 0x80000 = 512kB
Ponieważ nie zdradziłeś tajemnicy jakiegoż to STMa używasz to poniższa funkcja może być błedna (np L4 programuje się podwójne słowa a można też programować sekwencje 32 podwójnych słów za jednym zamachem). Czasami RM sugeruje odczytanie zapisanie słowa a czasami tylko sprawdzanie EOP. Zakładam że już właczyłeś w rejestrach programowanie i wykasowałeś...
Nie wiem o co chodzi, support STM mi powiedział, żebym wgrał kod do ramu oraz wektor przerwań. Cały problem od początku: Zadanie programu jest następujące: ze sterownika sczytuję wartości enkoderów i zapisuję je do pamięci flash. (powinno to być wykonywane timerem co 10ms). Następnie odczytuję te wartości z flasha w celu odtworzenia ruchu i odpowiednie...
Program działa, ledy się świecą. Oto kody: stm32f4_discovery_lcd.c : [syntax=c] #include "stm32f4xx.h" #include "stm32f4_discovery.h" #include "stm32f4_discovery_lcd.h" #include "fonts.c" /** (at)addtogroup Utilities * (at){ */ /** (at)addtogroup STM32F4_DISCOVERY * (at){ */ /** (at)defgroup stm32f4_discovery_LCD * (at)brief This file includes the LCD...
Witam wszystkich, ostatnio zacząłem się bawić uC STM32. Jest to moje pierwsze starcie z ARM-ami. Aktualnie próbuje uruchomić wyświetlacz TFT 4,3 cala, dokładnie jest to model firmy Ampire: AM-480272H3TMQW-TW7H. Wyświetlacz steruję za pomocą uC STM32F107VC. Wyświetlacz ma rozdzielczość 480x272 piksele z interfejsem równoległym 80 z szyną 16 bitów ustawioną...
Witam! Posiadam moduł wyświetlacza LCD 3.2", prawdopodobnie na sterowniku SSD1289 (sprzedawca twierdził, że na HX8347-A, jednak dopiero metoda inicjalizacji do SSD1289 zadziałała). Próbuję nim sterować przy pomocy mikrokontrolera STM32F103RBT6. Wszystko zdaje się działać dobrze, do czasu gdy chcę wyświetlić jasny kolor, np. RGB(240,240,240). Wtedy sterownik...
Ponieważ ja zawsze byłem zbyt leniwy, by pisać tak dużo instrukcji, ile potrzebują wywołania bibliotek, a jednocześnie lubię używać mikrokontrolerów z małą pamięcią, popełniłem na STM32F0 (płytka DISCOVERY) takie coś do włączania i wyłączania diod guzikiem. Program jest mało ambitny, bo ma ledwie ze 6 instrukcji w C, ale działa dobrze i może komuś się...
Zmieniłem trochę w projekcie. Zastosowałem najnowszą wersję FatFS. Plik z konfiguracją funkcji zadeklarowanych diskio.h pobrałem ze [url=]TEJ strony i przerobiłem go by pasował do STM32L. Po testach objawy wyglądają tak: Karty 512MB i 16GB: porgram mniej więcej w 3/4 przypadków zawiesza się po inicjalizacji (f_mount zwraca "FR_OK = 0, /* (0) Succeeded...
Witam, Mam problem - mam za zadanie zrobić coś w stylu skanera 3D na STM32. Na razie nie mogę opanować samej obsługi kamery w konfiguracji STM32F103VE+ wyśw. SSD1963 7" (zestaw EB-STM32_08_LCD7) i kamera OV7725 . Do zestawu dostałem przykładowe projekty w keilu. Bazując na projekcie do sprawdzania kamery z wyświetlaczem 4.3' wkleiłem działające biblioteki...
Witam, Próbuje uruchomić wyświetlacz oparty o ILI9341 z wykorzystaniem SPI. Wyświetlacz sprawdzałem pod Arduino i działa, jest sprawny. Próbuję podpiąć go do STM32F407ZET6. SPI działa, widać że są przesyłane dane na oscyloskopie. Zaczerpnąłem procedurę inicjalizacji wyświetlacza z Adafruit dla Arduino ale wyświetlacz jak był biały tak jest po wgraniu...
Witam, Dopiero co zaczynam bawić się ARMami, i na początek zakupiłem sobie moduł z propoxa (STM32F103VE) wsadziłem na mała płytkę uniwersalną ze stabilizatorem 3,3V do tego programator BF30... Tak więc skonfigurowałem sobie Eclipsa + CodeSourcery + openocd wg opisu na stronce tutro.net oraz skryptów załączonych do programatora. No i udaje mi się zaprogramować...
Debugowanie uruchomić próbowałem ale nie działa niestety. Dopisałem to ID do konfiguracji - teraz openOCD się już nie krzaczy, ale dalej nie mogę debugować. Doszedłem do tego że nie można załadować softu do procka. Wygląda to tak Open On-Chip Debugger 0.4.0 (2010-02-22-19:05) Licensed under GNU GPL v2 For bug reports, read http://openocd.berlios.de/doc/doxyge...
Witam, Mam problem z uruchomieniem debugowania w Eclipse. Po zbudowaniu środowiska w toolchainie : i dołączeniu plików makefile , startup i linkera z przykładu dla STM32 udaje się skompilować projekt. Niestety nie potrafię uruchomić deguggera. Po odpaleniu OpenOCD jest wszystko ok do chwili uruchomienia GDB gdy pojawia się błąd : "Execution is suspended...
BlueDraco Mam wersję Keila 4.5 i tutaj nie ma jeszcze tych podpowiedzi kontekstowych (gdy się naciśnie CTRL + SPACJA). Mam na płycie z EP wersję 4.72a. Aby dobrze działał to odinstalować wersje 4.5 i instalować nową, czy odrazu. Jak jest lepiej, żeby poźniej nie było problemów z działaniem? Jestem teraz w drugiej części kursu z EP o STM32F0 i jest...
Poczytałem manuala do JTAga i spróbowałem wgrać kod przez OCD. Wywołuje go z parametrami: -f scripts/interface/ftdi/jtag-lock-pick_ti... -f target/stm32f1x.cfg -c "adapter_khz 1000; reset_config trst_and_srst; init; reset init; flash write_image erase C:/ARM/project_eclipse/stm32_timer/out/s... reset run; shutdown;" Otrzymuje błędy:...
Witam, muszę szybko ogarnąć pewien projekt a tak naprawdę nigdy nie bawiłem się mikrokontrolerami nawet nie jestem informatykiem więc jeśli popełniam niżej jakieś trywialne błędy to przepraszam. ogólnie projekt polega na zapisie na kartę SD danych z przetwornika. Układ który muszę zastosować ma wyjście SPDIF i aby uprościć sobie obsługę po drodze chcę...
Staram się połączyć STM32F0 z kartą SD (w sumie to mikroSDHC), ale niestety marne są tego skutki. Próbowałem już kilka kodów znalezionych w internecie ale w końcu zatrzymałem się na znalezionym na jakiejś niemieckiej stronie.. Skompilowałem, wyskoczyło mi kilka błędów związanych z nazewnictwem i deklaracjami funkcji to je poprawiłem. Kod teraz wygląda...
Cała moja konfiguracja SPI jest w kodzie który zamieściłem... kod po zmianach z poprzedniego posta: [syntax=c]#include "stm32f4xx.h" #define EREVID (0x12|0x60) #define ENC28J60_BIT_FIELD_SET 0x80 #define ENC28J60_BIT_FIELD_CLR 0xA0 #define ECON1 0x1F #define ECON1_BSEL1 0x02 #define ECON1_BSEL0 0x01 #define ADDR_MASK 0x1F #define BANK_MASK 0x60 #define...
Cześć, od 2 dni zmagam się z modułami NRF24L01 i dwoma płytkami STM32. Płytki STM32 NUCLEO L053R8 i STM32F103 wykorzystujac biblioteki HAL i cubemx. Niby oba układy zwracają poprawne rejestry : Ale sama komunikacja w sobie nie działa. Nie odbieram żadnych pakietów. PYTANIE - czy w biblioteka dla modułu NRF rożni się czymś dla odbiornika i nadajnika...
To może wgraj oryginalną zawartość z Nucleo F411 jaka jest w nówkach na dzień dobry, by przynajmniej sprawdzić Nucleo plus ST-link. On tam miga i reaguje na przycisk może pamiętasz: No jest jakiś postęp chociaż nie wiem czy można to nazwać postępem. Wgrałem ten program, wyrzucił mi jakiś błąd elf loadera ale ostatecznie znalazł się w pamięci: Dodano...
Bazując na 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(); FLASH_Unlock(); EE_Init(); //PLL_init(); uart_init(); uart_write("start"); uint8_t value = 0; for (uint16_t i =...
Witam, mam dziwny problem z komunikacją I2C. Przed stworzeniem tematu przetestowałem przykłady użycia I2C udostępnione przez ST (komunikację I2C1 z I2C2 itp.) i wszystko było ok, niestety pod drobnych zmianach i podłączeniu RTC DS1307, uC nie może się z nim skomunikować. Nie wiem w czym jest problem, a siedzę już nad tym ze 2 dni, więc prosiłbym żeby...
Witam Zgodnie z poradami ze .text .global _start _start: (at) Label, not really required mov r0, #5 (at) Load register r0 with the value 5 mov r1, #4 (at) Load register r1 with the value 4 add r2, r1, r0 (at) Add r0 and r1 and store in r2 stop: b stop (at) Infinite loop to stop execution Nastepnie kompilujemy: $ arm-none-eabi-as -mcpu=cortex-m3...
Hej, Napisałem (chyba) najprostszy program w assemblerze który ma szanse zadziałać (no dobra prostsze było by ustawienie jednego rejestru - lecz nie w tym rzecz ;) ). Po skompilowaniu, zlinkowaniu i przekonwertowaniu na format binarny, wgrywam na uC i dzieją się dziwne rzeczy. Otóż, program: arm-none-eabi-as -mcpu=cortex-m3 -mthumb -mapcs-32 -gstabs...
Witam. Poskładałem Jtaga ze strony Freediego Chopina. Niestety nie mogę zaprogramować targeta(płytka HY-Mini z STM32F103VCT6). Wszystko jest konfigurowane wg tutoriala. To pokazuje mi konsola eclipse: Open On-Chip Debugger 0.5.0 (2011-08-09-23:26) Licensed under GNU GPL v2 For bug reports, read http://openocd.berlios.de/doc/doxyge...
Żadnych programów nie trzeba modyfikować - to wszystko kwestia ustawień. 1. Wtyczka do podglądu rejestrów nazywa się EmbSysRegView - Konfiguracja znajduje się niestety w głównych opcjach Eclipse, nie w opcjach projektu. Aby włączyć sobie to okienko trzeba wyklikać Window > Show View > Other > EmbSys ... 2. Wgrywanie programu jednym kliknięciem...
Witam Jak że jest to mój pierwszy wpis tego typu to proszę o wyrozumiałość. Słowem wstępu. Chciał bym się z wami podzielić kilkoma moimi doświadczeniami w programowaniu mikrokontrolarów STM32F103 i STM32L152 (STMDISCOVERY) za pomocą otwartej biblioteki libopencm3 ( ). Ja pracuję tylko na Ubuntu 64bit. Jako toolchain używam Summon ARM (link do instalacji...
Witam. Próbuję nieudolnie połączyć się z mikrokontrolerem. Przy próbie programowania otrzymuję następujące komunikaty i błąd: Licensed under GNU GPL v2 For bug reports, read http://openocd.sourceforge.net/doc/d... Info : This adapter doesn't support configurable speed Info : STLINK v2 JTAG v20 API v2 SWIM v0 VID 0x0483 PID 0x3748...
Witam, potrzebowałem podłączyć się z prostą płytką opartą na STM32F100C4T6 i użyłem dość starego programatora opartego na OOCDLINK A, udało mi podłączyć bez większych problemów, ale prędkość podłączenia pozostaje niezwykle wolna, co przekłada się na długi czas programowania i straszne lagi na telnecie i gdb. Testowałem już sam setup na dwóch różnych...
Pojawił się kolejny mały już problem ale nie wiem jak go wyeliminować. Układ programuje mi się dobrze ale muszę ręcznie go restartować (stm32f4...). Wcześniej dla LPC2478 skrypt programujący miał formę: [syntax=actionscript] -f interface/jtagkey.cfg -f target/lpc2478.cfg -c "reset_config trst_and_srst separate;arm7_9 fast_memory_access enable; arm7_9...
Mhm, cały przebieg kompilacji: $ make Assembling file: startup.S arm-none-eabi-gcc -x assembler-with-cpp -c -mcpu=cortex-m3 -mthumb -g -ggdb3 -Wa,-amhls=out/startup.lst -MD -MP -MF out/startup.d -I. startup.S -o out/startup.o Compiling file: gpio.c arm-none-eabi-gcc -c -mcpu=cortex-m3 -mthumb -O0 -ffunction-sections -fdata-sections -Wall -Wstrict-prototypes...
Siedzę nad tematem juz kawałek czasu i usiłuję uruchomić program na STM32F205. Program jest taki: openocd -f interface/jtagkey.cfg -f target/stm32f2x.cfg -c "init; reset halt; flash write_image erase test.hex; reset run; shutdown" Program się ładuje elegancko jak po sznurku a piny 6 i 7 portu B milcza jak zaklęte (choć powinny, moim zdaniem,...
Podłączyłem kabelkiem BOOT0 do +, odpaliłem STM32 ST-Link Utility, po wyborze opcji Erase Chip wyskakuje komunikat: 23:28:11 : Some flash pages are write protected! Nie mogę skasować pamięci flash. Ustawiłem aby łączyć się z urządzeniem "connect under reset". Jak trzymam przycisk reset i próbuję skasować flash, jest tak samo. Gdzie jest opcja hardware...
Po każdym zapisie trzeba flash odczytać. Nie trzeba*. Jeśli masz na myśli PM0075 (2.3.3) to "Read the programmed value and verify" odnosi się tylko do weryfikacji i nie ma wpływu na programowanie, źle interpretujesz wspomniany rysunek. To samo masz w 2.3.4, na końcu masz "read & verify" po kasowaniu. Z tym odczytem chodzi tylko o to aby sprawdzić...
Sam main.c raczej nic nie da ale proszę. /** ****************************************... * File Name : main.c * Description : Main program body ****************************************... * This notice applies to any and all portions of this file * that are not between comment...
Cześć, dotychczas podczas programowania wykorzystywałem jakieś IDE i automatycznie generowane projekty. Postanowiłem iść krok dalej i napisać własnego Makefile'a. Na razie wykorzystuję jeszcze skrypt linkera i plik startowy z IDE. Struktura projektu wygląda następująco: ├── Ac6LinkerScript.ld ├── Ac6Startup_stm32.s...
Witam wiem ze temat wałkowany, czytając poprzednie posty jak zwykle mam mętlik. STM32F103ZET Używając: monitor reset halt (lub reset_halt ) load dla ram i flash program staje zawsze w startup.s: Reset_Handler: /* +---------------------------------------... | Initialize the process stack pointer +---------------------------------------...
Próbuję za pomocą OpenOCD zaprogramować zewnętrzny flash SST39VF1601. Po trudach i bojach z kompilacją najnowszego snapshota OpenOCD (problem drivera niekompatybilnego z ARMv7M w 'oficjalnych' wersjach) w zasadzie wszystko już działa, z tym że pamięci zaprogramować nie mogę. Próbuję na dwa sposoby : flash protect 0 0 1 off flash erase_sector 0 0 1 load_image...
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...
Maxe: Twoja metoda nie działa już jej próbowałem co więcej po wprowadzeniu takiej lini: Dodano po 4 fantom: używam makefile'a Lucjana Bryndzy w którym miejscu powinienem dodać -I./lcd bo też nie dało mi to żadnych efektów. [syntax=c] # Automatic makefile for GNUARM (C/C++) # Copyright (C) Lucjan Bryndza <lucjan.bryndza(at)ep.com.pl> # #tutaj wpisz...
Witam, Programuje ten mikrokontroler w środowisku Eclipse. Program wgrywam za pomocą OpenOCD 0.5.0 bezpośrednio wpisując parametry w wierszu poleceń. Już na samym początku zauważyłem że po kompilacji pliki hex mają dużą wartość. Identyczny program skompilowany przy pomocy Keila zajmuje 9kB natomiast skompilowany w Eclipsie 18kB. Po wgraniu tegoż programu...
Cześć Mam projekcik na STM32, debuguje przy użyciu OpenOCD. Wszystko działa bez zarzutów do momentu wkompilowania w kod takiej oto funkcji znalezionej gdzieś w necie : Info : accepting 'gdb' connection from 3333 Info : device id = 0x10016420 Info : flash size = 32kbytes Warn : acknowledgment received, but no packet pending undefined...
To teraz jest jeszcze weselej, zrobiłem nową płytkę, wlutowałem komponenty, znalazłem nawet jeden błąd (zwarłem ścieżki, ale nic poważnego), a tu łaskawie keil zwraca mi coś takiego przy flashowaniu przez JLinka: [syntax=c] DLL: V4.15n, compiled Jun 18 2010 19:55:09 Firmware: J-Link ARM V8 compiled Sep 6 2011 16:33:14 Hardware: V8.00 S/N : 20100214...
Witam Mam dość dziwny objaw podczas śledzenia programu. Środowisko CrossWorks, jako programator Discovery stm32F4 z interfejsem SWD. W czasie działania programu w momencie wejścia do funkcji czyszczącej ekran LCD_Clear debugger odłącza się z komunikatem DEV_TARGET_CMD_ERR przy czym program w urządzeniu śledzonym pracuje dalej poprawnie. Funkcja wykorzystując...
Witam Po przymusowej reinstalacji systemu na której wszystko działało bez problemów byłem zmuszony na nowo instalować Eclipse wraz z OpenOCD dla mojego STM32F4. Podobnie jak wcześniej do programowania używam polecenia w : "openocd.exe -f board/stm32f4discovery.cfg -c init -c halt -c "flash write_image erase ${project_name}.elf"...
Witam wszystkich Tym razem chciałbym zaprezentować jeszcze programowy projekt radioodbiornika internetowego. Prezentowany projekt jest rozszerzeniem przedstawionego wcześniej projektu odtwarzacza i dyktafonu na STM32F407VG. Połączenie z Internetem zapewnia moduł WiFi WF121-A (internal antenna) produkcji Bluegiga (teraz Silicon Labs). Radioodbiornik...
Witam, rozpoczynam dopiero swoją przygodę z mikrokontrolerami serii STM32 i niestety już pierwsze problemy napotkałem przy konfiguracji środowiska pracy. Posiadam płytkę Discovery STM32F407 z programatorem ST-Link V2, próbowałem pod nią skonfigurować Eclipse'a, wykorzystując bleeding edge toolchain, Coreutils, OpenOCD. Wzorowałem się głównie na poradniku...
Z wstępnej obserwacji widzę, że działa o niebo lepiej z wr_str. Widać jednak różnicę w prędkości wykonywania programu. PROGRAM INIT zaczyna się wysyłanie danych z programu. Open On-Chip Debugger 0.9.0-dev-00415-g2d4ae3f-dirty (2015-06-12-17:54) Licensed under GNU GPL v2 For bug reports, read http://openocd.org/doc/doxygen/bugs.... Info...
Pracuje obecnie na tym nowym discovery z F7 na pokladzie, chociaz rejestry z tego co widze ma te same co F4. Przyszla pora na uruchomienie RTC za pomoca wbudowanego tam kwarcu 32.768 khz i zupelnie nawet nie moge go wlaczyc. Moglby ktos zerknac co robie nie tak? HSE i glowne PLL dzialaja dobrze [syntax=c] void RCC_Init() { RCC->CR = RCC->CR = RCC_CR_HSITRIM...
Mam teraz tak: [syntax=c]{ rom (rx): org = 0x08000000, len = 123k m_data (rx) : org = 0x0801EC00, len = 1k ram (rwx): org = 0x20000000, len = 20k } SECTIONS { /* placing my named section at given address: */ .myBufBlock 0x0801EC00 : { KEEP(*(.myBufSection)) /* keep my variable even if not referenced */ } > m_data . . . } const uint CRC_Programu __attribute__((section...
Witajcie, siedzę i szukam błędu w bibliotekach do obsługi NRF24L01. Skopiowałem je z biblioteki, którą wykorzystuje w ATmega8. Działa nawet dobrze tam, niestety na STM32F0DISCOVERY już nie chce. Będę bardzo wdzięczny za pomoc. To najpierw kody, które wyrażają więcej niż tysiąc słów ;) : main.c Czytałem już na tym forum w podobnym temacie, że SPI w STM...
W plikach nagłówkowych do biblioteki SPL/HAL te parametry są dobrze opisane: [syntax=c]/** * (at)brief Timing parameters For FMC NAND and PCCARD Banks */ typedef struct { uint32_t FMC_SetupTime; /*!< Defines the number of HCLK cycles to setup address before the command assertion for NAND-Flash read or write access to common/Attribute or I/O memory...
Kupiłem płytkę STM32F746G-DISCO. Chce wgrać na nią demo BSP. Jak to zrobić? Próba wykonania st-flash write BSP/Binary/audiosampletdm.bin 0x08080000 zwraca błąd: 2017-10-02T20:34:37 ERROR src/flash_loader.c: flash loader run error 2017-10-02T20:34:37 ERROR src/common.c: stlink_flash_loader_run(0x8080000) failed! == -1 stlink_fwrite_flash() == -1 Próba...
========================================... Option Bytes Programming functions ========================================... This group includes the following functions: - void FLASH_OB_Unlock(void) - void FLASH_OB_Lock(void) - void FLASH_OB_WRPConfig(uint32_t OB_WRP, FunctionalState...
Ok sprawa się nieco wyjaśniła. Mikroklocek nie idzie spać po użyciu WFE ale za to robi to po wywołaniu WFI. Ostatecznie mój kod, który wprowadza rdzeń w uśpienie wygląda tak jak poniżej i w tej formie to działa [syntax=c] /** * Entering STOP2 power save mode. In this mode all clocks except LSI and LSE are disabled. StaticRAM content * is preserved,...
Nie widząc gdzie wpisać load posłużyłem się h-jtagiem. Właśnie-gdzie i jak wpisać ten load i czy z jakimiś parametrami? Zerknij do mojego tutoriala o ARM toolchain - na końcu jest o debuggowaniu i tam właśnie jest użyta ta komenda. Używasz jej tylko przy GDB (debugger). Można też wgrać bezpośrednio - odpalasz OpenOCD, odpalasz telnet i używasz komendy...
Po co masz "klikniętą" opcję Halt w debuggerze? Wyłącz to koniecznie, bo ona jest zbędna, a może szkodzić. W OpenOCD 0.3.1 jest bug, który polega na tym, że pierwszy "load" po włączeniu zasilania STM32 się nie udaje (przynajmniej na JTAGu na USB, choć pewnie na innych też, bo to nie kwestia JTAGa raczej). Drugi i kolejne już jest OK. Nie powinno to...
Witam, Środowisko: Eclipse Helios Service Release 1 Build id: 20100917-0705 OpenOCD 0.4.0 GDB: arm-2010q1-188-arm-none-eabi Drivery do Amonteca - z Rowley Crossworks Problem: niezależnie od tego jakiego interfejsu używam - Amontec JTAG Key z zegarem 6MHz - Amontec JTAG Key z zegarem 1MHz (domyślny) - JTAG XILINX DLC5 z zegarem 500kHz (domyślny) programowanie...
Dostałem płytkę z zablokowanym prockiem STM32F103C8T6, niestety nie mogę się dostać do niego ani JTAGiem(loader failed) ani przez serial bootloader - nie widzi procka. Poprzedni użyszkownik twierdzi, że zaznaczył wczystkie opcje dotyczące: - read protection, - user option bytes - flash memory write protection option bytes w programie Flash Loader Demonstrator....
Poniżej jest przytoczony fragment zapisu startu ARMputera BF210. Jak widać bootloader U-boot również raportuje błąd w czasie wykonywania komendy 8, ale radośnie go zlewa i ty uczyń podobnie. Komendę podaj, wyniki zlej. U-Boot 1.3.3 (Dec 15 2008 - 18:17:51) DRAM: 32 MB Atmel: Flash: 0 kB DataFlash:AT45DB011 Nb pages: 512 Page Size: 264 Size= 135168 bytes...
Witam Mam problem z debugowaniem i programowaniem mikrokontrolera STM32F103VE. Używam plików udostępnionych na stronie FreddieChopina. Problemów jest kilka: 1. Nie da się zaprogramować mikrokontrolera. Wcześniej przy openocd 0.4.0 cały czas po resecie występował Hard Fault. Teraz zainstalowałem 0.5.0 i już tego nie ma, za to próba wgrania pliku ELF...
Dzięki :) - właśnie tak wywnioskowałem z pliku *.h i napisałem coś takiego - chyba działa. Dziwi mnie tylko brak konsekwencji w nazewnictwie. Dodano po 1 Dalsze problemy: Nie potrafię nic zapisać do skonfigurowanej pamięci (LCD). Kontroler LCD nie jest fizycznie podpięty ale to chyba nie ma znaczenia. Podejrzewam,że należy załączyć stosowny bank pamięci...
Konfiguracja FSMC Dodano po 2 Chyba sam znalazłem rozwiązanie: FSMC_BCR1->WREN = 1
Konfiguracje mam taką: [syntax=c] void LCD_FSMCConfig(void){ // set FSMC_BCR1 FSMC_Bank1->BTCR[0] = (1<<12) |(1<<14) | // EXTMOD=0x1 mode B (This bit enables the FSMC to program inside the FSMC_BWTR register, so it allows different timings for read and write.) (1<<6) | // FACCEN - NOR Flash memory access is enabled (1<<4)...
Hmm może mamy inne procki i dlatego ty nie potrzebujesz nic kombinować ? Przypuszczam nawet, że masz innego procka niż inżynierowie z ST, bo u nich aby jakiekolwiek zmiany w option bytes weszły w życie potrzebny jest RESET układu (programowy), czego Ty nie robisz (a przynajmniej ani słowa o tym nie ma w Twoim poście), więc... 2.4.2 Write protection...
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...
Witam. Mam dwa następujące pytania. Jak powinno wyglądać prawidłowe adresowanie adresów Flash i Ram procesora STM32F407VGT6 zestawu Discovery. Po wybraniu w Keilu odpowiedniego procesora automatycznie pojawiają się takie nastawy : (zaznaczone) IROM1: Start 0x8000000 Size 0x100000 (zaznaczone) IRAM1: Start 0x20000000 Size 0x20000 (nie zaznaczone) IRAM2:...
Koniec końców kompilacja sie powiodła. Nie korzystałem z przykładowego projektu bo uważam, że w ten sposób i tak do końca tego nie zrozumiem i predzej czy później wszystko sie posypie. Wykorzystałem pliki Keil przygotowane dla kompilatora gcc i ruszyło. Działa również debugowanie, chociaż nie do końca. przy wprowadzeniu zmian do programu i ponownej...
Zmieniałeś coś w konfiguracji GDB z przykładowego projektu? Profilaktycznie proponuję aktualizację do OpenOCD 0.6.1, choć nie powinno to mieć żadnego znaczenia... Źródłem takich problemów może być wiele rzeczy, w tym wadliwie działający firmware - np przechodzący w tryb wstrzymania, wadliwie działający debugger - np brak poprawnego połączenia itd......
Więc tak : Tak, korzystam z stm32f4discovery Najpierw chciałem odpalić symulator w Keil 4.7. Dostaję błąd : *** error 65: access violation at 0x0000000C : no 'read' permission i tak dalej. W google znalazłem ten problem i rozwiązanie. Odpowiednio zastosowałem rozwiązanie dla mojego przypadku. Utworzyłem plik.ini w którym wpisałem : MAP 0x8000000,...
Teraz inne pytanie, szukałem przykładów bootloadera dla stm32 i znalazłem projekt całość pracuje na pamięci FLASH. 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? Możesz ale należy pamiętać że w czasie kasowania/zapisywania sektora procesor "stoi". During a...
Przecież w kodzie powyżej nie ma żadnego zapisu do Flash... Jest w EE_Init(). Może źle się wypowiedziałem. EE_Init sprawdza czy wymagany na EEPROM obszar pamięci jest "sformatowany" jak nie to go "formatuje", czyli zapisuje na początku dwóch bloków ich jakby identyfikatory. I właśnie ich nie można zapisać. Wygląda to tak: pokaż, w jaki sposób wywołujesz...
Cały plik main. [syntax=c]/** ****************************************... * File Name : main.c * Description : Main program body ****************************************... * * COPYRIGHT(c) 2016 STMicroelectronics * * Redistribution and use in source and binary forms, with or without...
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...
OK, dużo tego, szczególnie że nie bardzo wiem jak to zrobić z flashVma. Ale na spokojnie się wczytam. Będę działał. Dziękuję za pomoc. Wywal "flashVma" z "MEMORY {}", wywal symbole typu __flashVma_start i __flashVma_end, wszystkie użycia "flashVma" zastąp przez "flash". Dziwne, bo próba zaprogramowanie bezpośrednio z OpenOCD nawet poprawnego programu...
Tylko że w F1 zabezpieczenie występuje zawsze, gdy wykonasz OB erase... Czyli nie da się zmienić (ponownie zaprogramować inną warość) WRP i Data0/1 bez przymusowego RDP1 :-/ Z ciekawości poszukam jak to jest opisane dla F3... Dodano po 11 Hmm.. tak to wygląda: 4.3.1 Read protection The read protection is activated by setting the RDP option byte and...
(at)Monys Widzę że jak nie gotowca to nie pójdzie. Dałem Ci link do dokumentacji. A tu masz gotowca: [syntax=c] int EraseFlash(uint32_t address, int lockatexit) { if(address & 2047) return -1; // must be 2048 bytes aligned if(FLASH -> CR & FLASH_CR_LOCK) { FLASH -> KEYR = 0x45670123; FLASH -> KEYR = 0xCDEF89AB; while(FLASH -> CR & FLASH_CR_LOCK) {/*...
Najlepszego w Nowym Roku i w następnch (rokach też). Proszęż uprzejmież : [syntax=c] #ifndef NOUVOTON_SD_CARD_H_INCLUDED #define NOUVOTON_SD_CARD_H_INCLUDED // #include "NouvotonSDCard.h" #define __IO volatile typedef struct { __IO uint8_t CSDStruct; /* CSD structure */ __IO uint8_t SysSpecVersion; /* System specification version */ __IO uint8_t Reserved1;...