tprs->child = (struct TPARSER**)malloc (sizeof(TPARSER)); //dynamiczna allokacja pamieci To jest chyba źle, alokujesz rozmiar pamięci o wymiarach sizeof(TPARSER) a potem pod te wskaźniki dajesz znów malloc, nie powinno być coś w stylu?: tprs->child = (struct TPARSER**)malloc (sizeof(TPARSER*)*ElementsOfTab);
W moim przypadku to wygląda tak, że mam wypracowaną własną warstwę abstrakcji sprzętu. Przykładowo do SPI jest maszyna stanów co mieli strumień bajtów danych + nagłówek z kolejek (typu FIFO jako bufor cykliczny). Pod to callbacki do sprzętu (open, write, read, close, ioctl), i rybka czy w środku jest if (queue) wyslij czy na przerwaniach. Nagłówek zawiera...
Coś naplątałeś... Aby uzywać malloca bez dziwnych errorów, musisz zadeklarować odpowiednią ilość miejsca na stertę . Co z tego, ze twoje zmienne zajmują niewiele ramu, skoro najpewniej ustawiles sobie parę kB sterty, i gdy przekroczysz te pare kB, program ci sie natychmiast wykrzaczy, bo oczywiście najpewniej nigdy nie sprawdzasz, czy malloc przypadkiem...
No więc reasumując - jeśli element i tablica będą miały taki sam typ, to pomiędzy nimi kompilator na 100% niczego nie umieści. W przeciwnym wypadku może (ale nie musi) być tam "dziura". Dodano po 15 Jak można się wskaźnikiem poruszać wewnątrz struktury po komórkach tablicy ? Jak to napisać ? W sposób "zgodny ze sztuką" nie jest to możliwe. Można za...
Niestety dalej hard fault. Na tej funkcji na pierwszym LWIP_DEBUGF. Hard fault występuje na drugim wywołaniu tej funkcji. [syntax=c]struct pbuf * pbuf_alloc(pbuf_layer layer, u16_t length, pbuf_type type) { struct pbuf *p, *q, *r; u16_t offset; s32_t rem_len; /* remaining length */ LWIP_DEBUGF(PBUF_DEBUG | LWIP_DBG_TRACE, ("pbuf_alloc(length=%"U16_F")\n",...
Jak chcesz wysyłać kilka zmiennych o różnych rozmiarach, to zrób strukturę. Ja mam np taką [syntax=c] struct CfgEEiic { uint32_t crc; // crc musi byc pierwszom zmienna w strukturze uint32_t CntWrite; uint32_t CntRst; uint16_t szt; uint32_t total; char txt[16]; }; struct CfgEEiic Cfg; [/syntax] Później wysyłasz tą strukturę przekazując adres i rozmiar...
Może coś takiego? TaskStatus_t opcjonalne dla warunku typu try-catch do obsługi błędów. [syntax=c]#include "stdint.h" typedef enum E_TASK_STATUS { TaskStatus_Success, TaskStatus_ErrorDebounce, // itd }TaskStatus_t; typedef TaskStatus_t (*TaskFunction_t)(void); typedef uint8_t TaskEvent_t; typedef struct S_TASK { TaskFunction_t function; TaskEvent_t...
Witam W budowanym urządzeniu zapragnąłem wysyłać informacje diagnostyczne przez USART. Nie znalazłem żadnej informacji o kolejce FIFO znanej mi z AVR-ów - szkoda :cry:. Zmuszony zostałem do wykorzystania DMA. Konfigurując DMA musiałem podać rozmiar bloku pamięci do wysłania więc skorzystałem z operatora sizeof() dla struktury: [syntax=c]struct ramka_t...
Witam, od kilku dni walczę z pobieraniem adresu po DHCP. udało się komuś uruchomić to ? Podglądając transmisję widzę że leci: DHCP Discover DHCP Offer i na tym koniec :( oto kod: int main(void) { static struct pt s; struct uip_eth_addr mac = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06}; uip_ipaddr_t ipaddr; struct timer periodic_timer,...
Wielkie dzięki. Instrukcja load niestety nie działa w tego typu zastosowaniu. Wystarczy zmienić na monitor flash write_image erase main.bin 0x08000000 Reasumując Gdyby ktoś kiedyś chciał zaimplementować używanie flasha jako eeprom: Można tak: Zainicjować sobie strukturę obojętnie jaką w sekcji variables. #define FLASH_PAGE_SIZE ((u16)0x400)...
1) Za czekający na flagę while() w przerwaniu grozi ci publiczny lincz i ukamienowanie 2) ten ISR moze i nic nie gubi ale nigdzie nie masz flagi 'odebrałem_paczke_i_czekam_na_jej_obslug... Pewnie dlatego cos ci sie gubi gdzies glebiej w kodzie. Powinienes miec conajmniej podwójne buforowanie, o ile nie zupelnie oddzielne FIFO. Najlepiej tagowane......
Mam problem z odpaleniem komunikacji (master nadaje) na przerwaniach w STM32F103. W poolingu działa OK, natomiast na przerwaniach nie chce ruszyć, już kombinowałem na różne sposoby i bez efektu. Inicjalizacja I2C: [syntax=c]void I2C_Init(void) { // I2C GPIO CONFIG RCC->APB2ENR |= RCC_APB2ENR_IOPBEN; // Software reset I2C I2C1->CR1 |= I2C_CR1_SWRST;...
Witam serdecznie. Początkowo miałem problem z uruchomieniem układu, nawet pisałem do Piotra czy nie ma jakiegoś błędu w zamieszczonym kodzie. Problemy były dwa, po pierwsze używałem płytki testowej na której był umieszczony kwarc, którego z niewiadomych mi powodów zostawiłem. Po drugie istotny jest rodzaj bramki lub konwertera napięcia na wyjściu. Np...
Witam, Mam problem z uruchomieniem prostego kodu "echo" z wykorzystaniem bibliotek STMCube oraz interfejsu CDC. W standardowym pakiecie bibliotek od ST nie ma przykładu virtual com port na płytkę STM32F407 discovery. Skorzystałem więc z generatora kodu CodeMX. Wygenerowany kod przykładu USB Device CDC działa tylko po części. Załączam treść pliku c gdzie...
A ja już chyba wiem co jest nie tak. Prawie mi się udało rozkodować obrazek. EDIT. Jednak nie tak prosto jest. Kolorów mi się nie udało zdekodować. Nie mniej jednak jestem na 99% pewny o co tutaj chodzi. Te pierwsze obrazki (8bitowe, co miały po 76kB), po "małej" (4 godziny konwertowania :D) zabawie z danymi wskazują że to jest format YCbCr. Bardzo...
Wielkie dzięki za projekt. Trochę czasu mi zajęło zanim się za niego zabrałem - pełno projektów na uczelni. Wielkie dzięki jeszcze raz! Przystosowałem projekt do swoich wcześniejszych wypocin ale dostaje dziwne błędy: uip\fs.o:(.rodata.file_404_html+0x0): multiple definition of `file_404_html' uip\fsdata.o:(.rodata.file_404_html+0x0)... first defined...
Dzięki za załącznik, zacząłem coś tworzyć SPI już mi działa bez CLK, przerwanie też ale mam problem z animacją, która by sprawdziła czy taśma działa ok. Nie wiem co z tymi błędami zrobić 1) [syntax=c] #define NLEDS 8 static struct wspix_ wsdata[NLEDS]; // przy drugiej linijce dostaje błąd // error: array type has incomplete element type [/syntax] 2)...
Witam! Kilka słów o projekcie. Urządzenie wykonuje odczyt z czujników - częstotliwość pomiarów i ilość punktów pomiarowych jest zmienna. Pomiary następnie są wysyłane do urządzenia nadzorującego w odpowiedzi na jego zapytanie. Moim założeniem jest kolejkowanie pełnych ramek z pomiarami i czasem ich wykonania w postaci listy jednokierunkowej, a gdy jest...
Mam dziwny problem ze wskaźnikiem na funkcję. W kodzie jak poniżej pole initDriver nie jest inicjowane adresem funkcji (0x0800ecd0), tylko jakby popsutym (0x8800ecd1). Wygląda jakby coś niepotrzebnie ustawiało dwa bity w adresie, najmłodszy i najstarszy. Jakie może być wytłumaczenie? [syntax=c] drv = (struct at_ble_drv_t*) ble_memalloc(sizeof(struct...
Napisałem program obsługujący komunikację RS232 dla płytki STM32 P103: - dokumentacja płytki https://www.olimex.com/dev/pdf/ARM/ST/ST... - schemat https://www.olimex.com/dev/images/ARM/ST... Niestety łącząc docelowo przez konwerter RS232 -> RS485 i podłączając do serwomechanizmu RS28 dynamixel podłączyłem raz zasilanie 15V,...
Cześć! Po kilku małych projektach opartych na Nucleo i Discovery postanowiłem wykonać trochę bardziej skomplikowany i praktyczny projekt - odtwarzacz plików WAV z karty SD i... zwracam się do Was z prośbą o pomoc 😄 Projekt oparty jest o STM32F103RCT6 do którego podłączone jest gniazdo kart microSD i DAC (PCM1780). Za pomocą FatFs odczytuję plik WAV...
Dzięki za odpowiedzi! gaskoin wydaje mi się, że sprawdzanie bufora w przerwaniu po odebraniu znaku nie będzie zbyt optymalne bo komunikacja wygląda tak: Zapytanie: AT\r\n Odpowiedź: AT\r\n// Z włączonym echem OK\r\n Więc w trakcie odbierania znak \n pojawia się klika razy przez co będę blokował przerwanie podczas odbierania danych. Teoretycznie echo...
dataSize (w javie / C# byśmy opuścili, bo to jest zintegrowane w typie tablicowym) A inicjowało by to się jak poprzednio: [syntax=c]const Metryczka metryczki[] = { { FONT8x8, sizeof(FONT8x8)/sizeof(FONT8x8[0]),8,8,0 }, { FONT10x10, sizeof(FONT10x10)/sizeof(FONT10x10[0]),1... }, // h=10, w=8, modyfikator=1 { FONT12x12, sizeof(FONT12x12)/sizeof(FONT12x12[0]),1...
Funkcja transmit_bytes_polling przyjmuje po prostu ciąg bajtów do wysłania. Funkcja może przyjmować jawnie const unit8* na wejściu, ale nie musi - w kolejnym parametrze i tak podajesz wielkość w bajtach, stąd zdecydowałem się na const void*. reinterpert_cast i tak musiałby się w którymś miejscu pojawić. Z racji tego, że mamy tu jednak jawnie przekazaną...
Zawsze robie clean. Nie po zmianach, które wprowadziłem. To nie ma związku. W projekcie, w main() mam przygotowanie obszarów tablic, w których będą wykonywane transformaty fft. Zakomentowanie tego, co poniżej nie powoduje w/w błędów. Odkomentowanie powoduje błąd. [syntax=c]int dims_obraz[2] = {Ma,Na}; // dimensions of fft obraz int dims_znak[2] = {Ma,Na};...
Zakładam że twoja bitmapa jest 16 bitowa bo tak będzie nałatwiej. Każda bitmapa skłąda się z dwóch nagłówków: [syntax=c] struct bmp_file_header { uint16_t type; uint32_tsize; uint16_t r1; uint16_t r2; uint32_toff_bits; }__attribute__((packed)); struct bmp_info_header { uint32_t size; uint32_t width; uint32_t height; uint16_t planes; uint16_t bit_count;...
Od kilku dni zabawiam się kamerką OV7670, próbuję pobrać z niej obraz w formacie RGB565 i o mało ambitnej rozdzielczości QCIF(bo taki zmieści się w całości w RAM). Program, który napisałem ma za zadanie w przerwaniu pobrać obraz do pamięci, zatrzymać przerwanie i zapisać zawartość do pliku bmp. Oto mój kod : Otw. pliku 0 Init OV7670 1 System Clock 120...
Generalnie jest tak, że problem powoduje już alokowanie przez funkcję kiss_fftnd_alloc(). Wywołanie wygląda tak, jak powyżej: [syntax=c]config_norm = kiss_fftnd_alloc (dims_obraz, ndims, 0, 0, 0); // position x,x,_0_,x,x tell, that is FFT froward[/syntax] Jej implementacja wygląda tak: [syntax=c]kiss_fftnd_cfg kiss_fftnd_alloc(const int *dims,int ndims,int...
Witam BusTurnAround mam na 1 a AddrSetup i AddrHold, zmieniałem od 0 do 5. Problem jest tylko wtedy gdy robię tak np: Zapisuje sobie jakieś dane w 1000 strukturach JakasTablica, Wiem jakie są w niej liczby a potem je tylko czytam i przesuwam wskaźnik o długość struktury [syntax=c]typedef struct { unsigned int Dane1; unsigned short Dane2; unsigned char...
Dzień dobry Po wielu dniach podchodzenia jak do jeża zabrałem się na serio do zapisu paru danych (siedmiu liczb uint32_t (słownie 7) ) do pamięci flash. Ponieważ bez Was by się to nie udało postanowiłem się podzielić moim "osiągnięciem". Muszę zapisać jasność ekranu i skalowanie ekranu dotykowego. Wyszło tak : [syntax=c]/* * 6 wspolczynnikow kalibracji...
Hej, na 'dzień dobry' : eclipse linaro syscalls od Freddiego linker skrypt -od Freddiego, zmodyfikowany lekko pod c8: __main_stack_size = 2048; __process_stack_size = 2048; rom (rx): org = 0x08000000, len = 64k ram (rwx): org = 0x20000000, len = 20k Makefile -od Freddiego (niewielkie poprawki) teraz kod: INFO("NOT ABLE TO ADD ANOTHER MESSAGE -MALLOC...
Witam, Napisałem kod obsługi interfejsu SPI dla uC STM32F303 oraz STM32F051. Kod ten obsługiwał komunikację z NRF24L01+. Miałem problem z tym programem gdyż mikrokontroler przy próbie posłania bajtu do urządzenia za pomocą funkcji: [syntax=c] while (SPI_I2S_GetFlagStatus(SPIx, SPI_I2S_FLAG_TXE) == RESET) ; SPI_I2S_SendData(SPIx, byte); while (SPI_I2S_GetFlagStatus(SPIx,...
Sorry, oczywiście ten plik należy stworzyć samemu. To jest z projektu testowego: [syntax=c] #include <stm32f4xx.h> #include <usb_dcd_int.h> #include <usbd_ioreq.h> #include <usbd_usr.h> extern USB_OTG_CORE_HANDLE USB_Dev; USBD_Usr_cb_TypeDef USR_cb = { USBD_USR_Init, USBD_USR_DeviceReset, USBD_USR_DeviceConfigured, USBD_USR_DeviceSuspended,...
Cześć. Wykonuje projekt na STM32F3Disvovery. Za pomocą modułu CAN MCP2515 pobieram dane sieci CAN z auta. Dane są zapisywane do zmiennej typu CAN_FRAME o nazwie can_msg. Następnie chcę zapisać na karcie sd do pliku .txt tablicę can_msg.data. Niestety zapisuje mi wszytsko w postaci char ASCII ( np: I9ÁcpG(at)ř˙ýż) jednak ja chcę aby zapisywało mi...
Środowisko to Eclipse MARS z nakładką dla stm32. Jeśli chodzi błędy to są tego typu, że kompilator informuję, że jest brak zadeklarowanej zmiennej lub funkcji. Funkcję są zadeklarowane w pliku .h, który jest dołączony do pliku .c ( w którym wywala błąd). Uznaje, że informacja kompilatora o tym błędzie jest troche dziwna ponieważ w kodzie w tym samym...
Czy znane są wam inne skuteczne algorytmy pomiaru amplitudy PWM? Pracuje na STM32F072CB i tylko taki mam do dyspozycji wedle założeń projektu więc przesiadką choćby na F1 nie wchodzi w grę... Do tego celu jest więcej niż wystarczający. Metoda pomiaru jest dobra. Dodatkowe pytania: 1. Czy oglądałeś ten przebieg na oscyloskopie? Może po prostu nie jest...
Komunikuje sie za pomocą RMII. Naszkicuj też schemat z elementami wokół PHY oraz doprowadzeniami do STM'a Niezbyt cię rozumiem. W pierwszym poście masz schemat podłączenia PHY. Poniżej podaje schemat połączeń do uC. Jeśli ci nie o to chodziło to napisz. http://obrazki.elektroda.pl/6109371600_1... Co do MCO to rzeczywiście lepszy pomysł....
Bardzo możliwe, że masz rację Freddie, chociaż nie sprawdzałem czy uda mi się wygenerować fsdata.c pod linuxem. Znalazłem jeszcze jeden skrypt makefsdata i ten wykonuje się pod windowsem xp, generując poprawny plik. Niestety nie wiem kiedy uda mi się sprawdzić działanie serwera po podmianie plików. Oto jego zawartość, może komuś się przyda, a wiem że...
I kontynuuję temat. Na razie kod taki: Czyli coś jest nie tak z wykrywaniem kolizji nadal... A moze prosty algorytm wektorowy - mniej wiecej tak z kolizjami radza sobie nowsze gry... [syntax=c] #include <stdio.h> #include <assert.h> #include <math.h> #include <SDL/SDL.h> #include <SDL/SDL_gfxPrimitives.h> typedef struct...
Witam, podłączyłem do mojej płytki 2 moduły nrf odpowiednio odbiornik do SPI1 a nadajnik na SPI2. Niestety mam problem z obsługą tych układów, nie zgłaszają mi one przerwań na pinach który ustawiłem jako wejściowy z pull-up oraz triggerem reagującym na zbocze opadające (sprawdzałem piny zwierając je do masy przerwanie zostało wywołane poprawnie). Funkcje...
Temat stary, ale ostatnio chciałem wykorzystać taką unię: [syntax=c]typedef __packed union { __packed struct { uint8_t R : 5; uint8_t G : 6; uint8_t B : 5; }; uint16_t word; } RGB565;[/syntax] Skompilowane na PC (clang 3.8) daje oczekiwane rezultaty (czyli sizeof(RGB565) == 2). Natomiast w uVision Keil 5, otrzymuję rozmiar równy 3 bajtom (projekt dla...
Witam po dłuższej przerwie. Problem polega na tym że uruchomiłem ADC z DMA na płytce STM32F469DISCO (wg różnych filmów z youtube - problem taki że u wszystkich działa a u mnie nie :D ), wynik wysyłam po USB CDC i zamiast ADC 12 bitowego otrzymuje 8 bitowy. Jest tak że kręcąc potencjometrem wartość po przekroczeniu 255 wraca do 0 i rośnie ( i tak kilka...
Czy ja dobrze widze F0xx tez ma wsparcie? Tak, już od dosyć dawna, bo od wersji 0.2.0 (maj 2016). Już kompiluje najnowszego bleeding edge, a w weekend pierwsza próba odpalenia blinking LED na Distortos. Jakbyś natrafił na jakieś problemy - a wiadomo że zawsze się na jakieś natrafia - to pisz, na pewno pomogę (; Mam płytkę Nucleo-F411RE to mogę przy...
Witam, Od kilku dni walczę z problemem uruchomienia serwera Echo TCP na FreeRTOS+TCP. Działam na zestawie discovery z mikrokotrolerem STM32F746NGH.Warstawę Ethernetu przetestowałem bez używania FreeRTOS na stosie LwIP i na pewno działa. Opis problemu: Po inicjalizacji sprzętu wywołuję funkcję FreeRTOS_IPInit, która tworzy zadanie prvIPTask odpowiedzialne...
struct header { union { struct header *h_next; size_t h_magic; }; size_t h_size; }; void isix_alloc_init(void) { struct header *hp; extern char __heap_start; extern char __heap_end; mem_lock_init(); hp = (void *)&__heap_start; hp->h_size = &__heap_end - &__heap_start - sizeof(struct header);...
sizeof stm32 typedef struct stm32 sizeof tablica
halogenowy transformator podtrzymać sekunda elektrozaczep brzeczy
kontrolkę poduszki powietrznej pralka electrolux panel sterowania
Pomiar ciśnienia pompy rotacyjnej w MF 6180 ARPC_configuration.exe legitimacy, malware risk, vendor checks, digital signature verification