"const/static/volatile to magiczne zaklęcia dla mikrokontrolera, który wie, że oto czyta specjalne i bardzo bardzo ważne tajemnicze instrukcje, które musi wykonać dokładnie tak jak napisano i bez żadnych nadinterpretacji". Klaatu... verata... n... Necktie. Nectar. Nickel. Noodle. Nie rozumiem. To Twoje wytłumaczenie tych pojęć? Czy może imputujesz...
Tyle że const powinno być w prototypie funkcji: I oczywiście w prototypie też jest, inaczej kompilator pyskuje:) A walczysz o każdy cykl zegara, że podstawienie wartości do rejestru i zwiększenie objętości programu o 4 bajty jest takim problemem? Nie walczę, ale zwiększanie nawet o cztery bajty programu tylko po to aby pozbyć się ostrzeżeń?
P.S. "volatile const" nie ma zbytnio sensu... Jedno przeczy drugiemu... W tym przykładzie nie ma, ale zupełnie nie przeczy. Np. tak powinieneś deklarować rejestr sprzętowego RTC. http://www.informit.com/guides/content.a... Albert
HAL_StatusTypeDef HAL_USART_Transmit(USART_HandleTypeDef *husart, uint8_t *pTxData, uint16_t Size, uint32_t Timeout); Nie wiem - tyle ze uznali ze poniewaz mogą to nie należy nic const - antować. Nie jest to oczywiście jedyny przykład, po prostu pierwszy jaki mi przyszedł do głowy. No i te ich pożałowania godne "callbacki"... Nie neguje nędzności biblioteki,...
nie żadne "volatile", tylko po prostu "const". Zmieniłem. Swoją drogą to nie wiem czy atrybuty można łączyć tak jak pokazałeś, na pewno można je łączyć po prostu po przecinku wewnątrz nawiasów. Kiedyś o to pytałem i wyszło że można i tak. Choć krócej będzie po przecinkach. Pozamieniam. Twoja tablica nie jest wgrywana, bo dałeś noload - to chyba powinno...
W funkcji nie będziesz mógł zrobić czegoś takiego pomimo że przekazałeś tablice z ramu: void logoBMP(const unsigned char *bufer) { bufer Dodano po 4 const char const * l_wartosc Chyba trochę za dużo tych constów, nie sądzisz? 4\/3!! Właśnie chyba nie, wydaje mi się że bez któregoś z const kompilator umieszczał wskaźnik do tablicy wskaźników w ramie...
(at)Freddie Chopin , z tym 'const' good point ;) Tego akurat nie uważam za szukanie dziury w całym. Jednak skoro się zaangażowałeś, przejrzałeś bloga, udzielasz się w temacie, to zamiast pisać: Ty również należysz do ludzi, którzy nie wiedzą do czego służy const... A szkoda... nie mogłeś napisać, że powinno być i uzasadnić? BTW - autor słówko "volatile"...
Na tego hala szkoda słów. Ano... Widać nadal nie opanowali słówka "const"... (; 4\/3!! Choć MISRA200.. ileś się chwalą;D
Bez reinterpert_casta na uint8*. Zrób funkcję przyjmującą const void* i po problemie, żadne rzutowania nie będą potrzebne. Popatrz na prototypy np. fwrite, memcpy itd. Dokładnie taką implementację mam :) Moja wypowiedź związana z tym reinterpret_castem na uint8* dotyczyła tego, że musiał on by być, gdyby te funkcje przyjmowały const uint8* :)
Ruch jednostajny z małym przyspieszeniem? Czy gdy a=const ma znaczenie wartość a? EDIT: tak miałem na myśli jednostajnie przyspieszony ;> sry za błąd Pudło. Po co mam się rozpędzać do setki w 2 sekundy i potem jechać tą setką przez minutę, żeby potem 2s hamować, skoro mogę przez 30 sekund rozpędzać się do jakiejśtam prędkości (nie chce mi się liczyć...
Chyba już wiem o co biega. Porcedurka EEPROM_read() powinna wyć podobna jak w pliku eeprom.h: /** \ingroup avr_eeprom Read one byte from EEPROM address \a __p. */ __ATTR_PURE__ static __inline__ uint8_t eeprom_read_byte (const uint8_t *__p) { do {} while (!eeprom_is_ready ()); #ifE2END <= 0xFF EEARL = (unsigned)__p;...
Funkcja taka powinna przyjmować wskaźnik na "const char*", skoro i tak go nie zmienia (wiem że go nie zmienia, bo jakby próbowała, to byś miał zwiechę przy stringach z flasha) i wtedy problemu nie ma. Taki dobry nawyk (; Jeśli "parametr wskaźnikowy" nie jest modyfikowany, to powinien być const i tyle. Kompilator czepia się całkiem słusznie, bo zakłada,...
Freddie Chopin - dzięki za podpowiedź, w wolnej chwili poczytam. Michałko12 - oczywiście masz rację, użyłem skrótu myślowego, chodziło mi o static const typ nazwa_zmiennej = wartość , by była to stała we Flash. Pozdrawiam, KT
Mam tablicę ze zdefiniowanymi fontami, które bede chciał wrzucić potem na wyświetlacz: Przecież to się nawet nie kompiluje, bo jest niepoprawne składniowo (i nie chodzi mi tu o trywialną kwestię kolejności)... Te okrągłe nawiasy? Prawda.
Przy okazji widać jak się większość zna na programowaniu, skoro w całym tym temacie słówko "const" w prototypie funkcji pojawiło się tylko raz, w poście mi14chal - we właściwym miejscu oczywiście... A ja się dziwiłem, że w całym bzdurnym SPLu też go nigdzie nie ma... No bo tutaj słówko const jest potrzebne, ale widać inni wiedzą lepiej. A co do SPL...
My tu o ARMach, ty o AVRach, A gdzie to jest napisane? a nie od dziś wiadomo, że na avr-gcc (ze względu na architekturę harwardzką) słówko "const" jest nic nie wartym zlepkiem literek.4\/3!! To nie ma znaczenia. Dodanie innych magicznych słów powoduje wygenerowanie rozkazów dostępu do flasha, ale adresy nadal są generowane takie jakby stałe miały być...
No bez przesady. Programuje się go akurat trudniej, przecież masz różne tryby 16 i 32 bitowe, złożone adresacje itd. A co mnie to obchodzi pisząc w C albo C++? Nic. Programuje się to prościej, m.in. dlatego że jak chce mieć stałą we flashu, to piszę "const" i już, a nie niekończące się zabawy z PROGMEM i wszystkie związane z tym problemy (różny sposób...
(at)wojlej 1. sizeof char jest zawsze równe 1 więc jest tu zbędne 2. Dwa razy kopjuesz dane. Najpierw do tablicy a później do struktury. Szybciej będzie bezpośrednio odczytywać do struktury tak: [syntax=c] char *tab = (char*)&Struktura_odczytana; for(i = 0; i < size; i++) { tab[i] = Read_EEPROM_BYTE(1+i); //Adres względny - sektor 7 } [/syntax]...
Racja, przeciez to logiczne. Po dodaniu najzwyklejszego opoznienia printf wreszcie dziala :) Chcialem jeszcze dopisac obsluge operatora \n wiec zmodyfikowalem funkcje __vfprintf w taki sposob jednak nie dziala: static int __vfprintf_(printf_file_t *stream, const char *format, va_list arg) { char character; stream->length=0; // clear...
nope, to nie dziala można by stworzyć jedna strukture z *nazwa a pozniej strukture z wskaznikami do tej struktury, ew tablica tych struktur ... i powinno wyjsc na to samo :) fajnie że działa, rozwiązanie takie młotkowe troche ale ważne że działa :)
Taki kod jest po prostu bezsensowny i tyle. Kod z inicjalizacji _jest_ sensowny i _działa_. Jak napiszesz: #define STALA 12345 char* ptr=&STALA; to wydaje Ci się, że to jest poprawne? To nie jest poprawne i nie skompiluje się z prostego powodu - twoja stała jest dyrektywą preprocesora, czyli zostanie rozwinięta jeszcze przed kompilacją programu. Kompilator...
wynikGSM faktycznie jest wskaznikiem , ale const . A zapisanie czegos do consta to jak mieszanie stwardnialego gipsu :] Dlaczego Podejrzewam jednak, że "oni" mieli rację, tylko Ty źle zrozumiałeś... ? Ano dlatego, ze gdy wpisujesz zero pod wskaznik nie-const ktory wskazuje na pierwszy element tablicy to szlag trafia tablice. Dane zostaja w pamieci,...
Freddie Chopin , tak już jest jak ktoś nie śledzi wątku i jego idei (; Tylko opiera się na tytule tematu... Wyobraź sobie, że śledzę ten wątek od początku i naprawdę nie rozumiem co zacytowane przeze mnie we wcześniejszym poście zdanie miałoby oznaczać... Nie wiem czemu niby na innych toolchainach z innymi bibliotekami można się oprzeć tylko na jakichś...
Objaśnisz kilka słów więcej? W kodzie jest "volatile uint8_t *PORT;", co oznacza najzwyklejszy na świecie wskaźnik na "volatile uint8_t". Dzięki. Zaćmienie, jeszcze się kawa nie rozpuściła, w pełni rozumiem ... Żeby było śmieszniej, sam użyłem podobnej idei do stworzenia poziomu abstrakcji nad pojedynczym pinem (ale wolałem użyć referencji do portu...
Jeśli stosujesz wzorzec "dependency injection", to po prostu trzeba go stosować "na całego" - Twoja funkcja buildSPI() powinna tak samo przyjmować referencje na selektor (choć wtedy oczywiście nie ma ona większego sensu). Albo jeśli dobrze myślę, mogłaby też definiować selektor jako statyczny, prawda? Jeśli w rzeczywistej aplikacji nie planujesz tworzyć...
W tamtym temacie pokazałeś błąd w funkcji xmit_spi_multi(). Gdzie on jest, bo ja go nie mogę zauważyć? ? Dodano po 18 Gdzie tu jest głąd? [syntax=c]/* Send a data block fast */ static void xmit_spi_multi(const BYTE *p, /* Data block to be sent */ UINT cnt /* Size of data block */ ) { do { while (!(SPI2->SR & SPI_SR_TXE)) ; SPI2->DR = *p++; while (!(SPI2->SR...
Hej, Podpinam się pod posta. Próbowałem wrzucić funkcję pod wskazanym adresem, ale mi się nie udało :). Postanowiłem wrzucić zatem jakąś zmienną pod wskazany adres no i z podobnym rezultatem. Tak jak w poście postępuję: MEMORY { rom (rx): org = 0x08000000, len = 128k - 18k BOOT(rx): org = 0x0801B800, len = 18k ram (rwx):...
tymon_x - Ty masz te funkcje read(), write() itd tylko dla SPI czy ta sama funkcja robi też coś innego? Jeśli to są "typowe" funkcje open(), read(), write() to jak zmapowałeś struct spi na "int fd"? 4\/3!! Swoje :) [syntax=c]struct dev { struct queue in; struct queue out; }; struct header { u32 length; }; #define DEV(p) ((struct dev*)p) #define HEADER(p)((struct...
Ale wiesz, że to nie jest to samo co `value Pomyliłem się przy pisaniu, oczywiście miało być *(value+11). Opcja kolejki jest mało sensowna, chyba że interesują Cię odczyty z przeszłości, nie wiadomo jak stare, ale potencjalnie bardzo stare, bo kolejkę dopychasz na maksa a odczytujesz tylko okazjonalnie. Do tego co robię wydaję się odpowiednia gdyż...
jak wiadomo C++ jest głupie Och, nie o to mi chodziło. Z pierwszym ostrzeżeniem nie mogę sobie poradzić i nie mogłem już wcześniej. Drugi natomiast powoduje różnica typów danych. Nie wiem jak tą zmienną zamienić na const char ale długość jest chyba taka sama więc nie powinno być z tym problemu. Wcześniej ten kod działał. To tylko program testowy. =>...
Zwykle program doliczy inicjalizatory dla .data do sekcji która mu najbardziej pasuje, strzelam że będzie to sekcja znajdująca się w odpowiedniej pamięci jako ostatnia przed .data - jeśli taką sekcją jest .rodata, to właśnie tam Ci ją może doliczyć. Zauważ jednak, że w skrypcie linkera nie ma wcale zadeklarowanego, że te inicjalizatory mają być w .rodata...
Zauważ np. że gry komputerowe - które już jednak się tak nie czołgają i jednak z każdą kolejną generacją komputerów wyglądają znacząco lepiej - nie są pisane w assemblerze. Są pisane w języku, który na tym (i każdym innym forum o mikrokontrolerach) uznawany jest za synonim wolnego i przerośniętego kodu - C++. Freddie nie znęcaj się. Zawsze mity żyją...
Dzięki (at)Freddie Chopin gdb w wersji poniżej wersji < 8.3 w moim projekcie niestety zrezygnowało ze współpracy (może projekt za duży (ok 800k kodu i g3) - nie wiem). [syntax=c]/tmp/jenkins/jenkins-GCC-7-bui... internal-error: type* copy_type(const type*): Assertion `TYPE_OBJFILE_OWNED...
Witam! Eclipse Kepler Sourcery CodeBench Lite 2011.09-69 OpenOCD 0.6.1 STM32F103ZET6 Szablon projektu - Freddie Chopin Do tej pory wszystkie projekty na STM32 działały dobrze jednak teraz buduję większa aplikację i pojawiają się problemy. Objawia się to losową zmianą wartości zmiennych np. zadeklarowanych jako const czy przerwaniem __Default_Handler....
Witam Na wstępie środowisko środowisko na bazie tutorialu Freddie Chopin-a , z dołączonym "STM32F10x_StdPeriph_Lib_V3.5.0" Płytka bazowa ZL27 Kamami. Kompilator CodeBench Lite for ARM EABI Praca bez systemu operacyjnego (na ARM) Problem jest następujący. Chciałem uzyskać możliwość pełnego wysyłania danych przy pomocy Printf na wiecej niż standardowe...
(at)starob: dzięki za naprowadzenie. (at)Freddie Chopin: fakt, zupełna głupota. Co prawda bawiłem się wskaźnikami, lecz za dużo obliczeń i w dodatku dodatkowe obliczenia dla 1 "linii". Wybrałem wersję tablicową: warning: assignment discards 'const' qualifier from pointer target type [enabled by default] picture = &image->data[...
SPLa przestał żyć. Nie przesadzaj - przecież ten cały STM32 Cube i będący jego częścią "HAL" (równie adekwatna nazwa jak "SPL"...) to SPL z minimalnie pozmienianym API. Dalej jest tak samo badziewny i napisany przez kogoś kto "nie ogarnia" programowania (wciąż brak jakiegokolwiek "const" przy wskaźnikach - na to chyba nigdy nikt tam nie wpadnie). Często...
Jesteś pewien, ze nie uint32_t? Bo jak mnie pamięć nie myli uint16_t wśród rejestrów występował tylko w USART-cie i USB. Nie jestem, ale to bez znaczenia - typ docelowej zmiennej w przypisaniu "cośtam = SPI1->DR;" jest kompletnie bez znaczenia, odczyt zostanie zrealizowany w taki sposób jaki jest narzucony przez typ samego SPI->DR. Jeśli DR jest zdefiniowane...
mój Distortosowy projekt ma problem z rozmiarem binarki. W tej chwili Distortos + USB host + FatFS zajmują ok 50kb. Ty to tak na poważnie czy to czysto teoretyczna dywagacja? STM-y z USB OTG poza kilkoma modelami (do drona sądząć po nazwie katalogu to chyba nie użyłeś takiego z 64 FLASH) mają min 128kB (a jeżeli wywalimy "odpadowe" H7 i F7) to min...
Finalnie po babraniu się w wolnych chwilach, udało mi się wreszcie porównać (przetestować) kilka algorytmów do konwersji zapisu binarnego do reprezentacji w kodzie BCD. Zrezygnowałem z jakiś własnych hacków i implementacji, ale skupiłem się na kilku popularnych metodach. Szczegóły można znaleźć w http://obrazki.elektroda.pl/4926512300_1...
Korzystam z gotowca Freddie'ego Chopin'a dla uC stm32f103 i używam CodeSourcery. Mam następujący problem: Próbuję obliczyć splot korzystając z funkcji: Linking target: out/stm32_blink_led.elf arm-none-linux-gnueabi-g++ -mcpu=cortex-m3 -mthumb -TSTM32F103xB_rom.ld -g -Wl,-Map=out/stm32_blink_led.map,--cref,... -Wl,--gc-sections -nostartfiles...
AVR GCC z pakietu WinAVR 20080610 jest bardzo agresywny i przy optymalizacji często nieskończona pętla while(1) zostaje przekształcona w RJMP +0 i... reszta programu jest pomijana! Doświadczyłem tego sam, jak i parę innych osób - nawet na tym fourm. Umieść kod tak, żebym mógł go skompilować, bo jak zwykle nie wierzę. Mam ten kompilator, korzystam i...
Witam ponownie, W STM32F3 SPI jest tak samo dziwne jak STM32F0, więc zapis/odczyt do/z rejestru DR trzeba realizować przez magiczny wskaźnik, gdyż inaczej SPI wysyła/odbiera 2 bajty. Postanowiłem sprawdzić jak to jest w STM32F4, konkretnie użyłem płytki STM32F429I-DISCOVERY i napisałem naprędce poniższy programik: [syntax=c] 1 2 /***************************************...
Problem jest też taki, że na który poziom abstrakcji by się nie wznosił, to np. brak dostępu do zasobu jest brakiem dostępu do zasobu - i tak muszę czekać. Ale tego chyba nikt nie przeskoczy - chyba, że np. zastosujemy więcej kanałów SPI, I2C, itd.... Przykładowo mam bufor w RAM'ie na dane wysyłane do GLCD. Tyle bajtów, żeby wypełniły cały ekran wyświetlacza....
Witam Jak wyliczyć coś takiego za pomocą preprocesora ? Criterion for valid user code: The reserved Cortex-M0 exception vector location 7 (offset 0x 0000 001C in the vector table) should contain the 2’s complement of the check-sum of table entries 0 through 6. This causes the checksum of the first 8 table entries to be 0. The bootloader code checksums...
Hej Freddie, tym razem to już mam poważny problem i proszę Cię o pomoc. Problem mam cały czas z przerwaniami. Nigdy mi w sumie tak naprawde nie zadziałaly na tym projekcie od stm. Przerobiłem Twoją tablice wektorów przerwań: /** \file vectors.c * \brief STM32 (STM32F101 - STM32F103) vector table and __Default_Handler() * \details STM32...
Zamiast bronić serii błędów raczej uwzględnij uwagi, które dostajesz Ależ ja chwale sobie twoje uwagi, szczególnie że jesteś nielicznym który podjął się konstruktywnej krytyki. Natomiast z powodu założeń, w 30% nie do końca mi pasują. Może jestem niezbyt zdolnym uczniem i potrzebuje czasu. Programując w tym stylu daleko nie zajdziesz. Całkiem możliwe,...
Wrzuć PEŁNY wykaz błędów. Sprawdź też, czy w programie możesz używać zmiennych typu uint32_t - po dołączeniu tego problematycznego nagłówka powinno to być możliwe. Witaj Dzięki za reakcję. Do projektu mogę dołożyć typ uint32_t. Zakomentowałem problematyczny plik, zdefiniowałem testową zmienną tego typu i kompiluje się bez problemu. Poniżej załączam...
no i teraz dla odmiany stosujesz dwa skrypty linkera... -T AT91SAM7S256_RAM.ld -T generic-hosted.ld to chyba nie jest najlepsze z rozwiązań... 4\/3!! Bez generic-hosted.ld jest masa unresolved externali. Gdzies na zagranicznym forum znalazlem, zeby dodac to do opcji linkera. Wywale wszystko i zainstaluj yagarto. Zobaczymy jak to wyjdzie... Dodano po...
Witam, Mam problem z debugowanie procesora LPC2478. Środowisko: postawione zgodnie z tutorialem ze strony Freddiego Chopinna czyli Eclipse (helios edition with HDT hardware debugging) + OpenOcd + Code Sourcery Lite edition Procesor: ARM NXP LPC2478 z kwarcem 12MHz Aplikacja: Na tym etapie mrugająca diodka na timeocie opartym o przerwanie timer0, PLL...
OpenOCD zaktualizowanie tak jak kompilator wcześniej. Przerabiam przykład od początku teraz na bazie tego o którym mówiłeś LPC Będe wklejał tutaj co dokładnie przerabiam. Jeśli coś robię źle to mam nadzieje że mnie poprawicie. Jeśli dobrze to mam nadzieje że komuś się przyda. 1.Import projektu lpc1114_blink_led i rename na stm32f0_blink_led 2. Zmiany...
Witam, Bazuje na projekcie ze strony Freddie Chopin dla stma F4 z dodanymi bibliotekami STM32F4xx_StdPeriph_Driver. Zdefiniowałem sobie konfigurację timer'a w następujący sposób: [syntax=c]void Timers_Config(void){ RCC_APB2PeriphClockCmd(RCC_APB2Periph_TI... ENABLE); NVIC_InitTypeDef NVIC_InitStruct; NVIC_InitStruct.NVIC_IRQChannel = TIM1_CC_IRQn; NVIC_InitStruct.NVIC_IRQChannelPreemptio...
Mam na schemacie np. silniki ale są na razie nie podłączone. Mam TB6612 ale niepodłączone (bez zasilania głównego). Mam CP2102. Jeszcze sekcja zasilania. Ale jak mówiłem sprawdziłem w Keilu - działało normalnie. Wklejam ustawienia debugera. http://obrazki.elektroda.pl/1495441700_1... http://obrazki.elektroda.pl/6369576600_1...
Witam, od jakiegoś czasu testuję zestaw uruchomieniowy STM32F429 discovery. Bazuje na modyfikacji przykładu Freddiego Chopina. Od jakiegoś czasu próbuje coś wyświetlić bez korzystania z bibliotek od ST (to mam już za sobą). Na początku dodam, że wyświetlacz startuje, wyświetla kolorowe tło (LTDC->BCCR). Następnie ustawiam żądany rozmiar okna korzystając...
Jakie Bez tego mechanizmu ciężko ogarnąć takie tematy jak zagnieżdżanie przerwań czy zmiana kontekstu po przerwaniu. Idea jest taka, że w twoim przypadku SysTick musi mieć wysoki priorytet (najwyższy w "systemie", w znaczeniu w RTOSie), tak aby tick był regularny i się nie gubił. Przełączanie kontekstu na najwyższym priorytecie zaś jest średnio zabawne,...
Tak więc jeśli Twój program, po podobnym przesunięciu nie działa prawidłowo, to trzeba się zastanowić, czy on w ogóle działa prawidłowo (; Bez przesunięcia na pewno działa prawidłowo :) No to niezły kwas, muszę to przetrawić :) Uznanie dla umiejętności. Dodano po 14 To na pewno chodzi o kopiowanie tablicy wektorów na początek. Jak wstawić do mojego...
No wiec tak, te dwie rzeczy są takie same w obu twoich przykładach i ich nie zmieniałem: __main_stack_size = 0; __process_stack_size = 1024; Przedstawiam poniżej to co teraz mam w moim projekcie: STM32F103RC_rom.ld [syntax=c]/*****************************... * author: Freddie Chopin, http://www.freddiechopin.info/...
Na początek cały kod: #include <stdint.h> #include <avr/io.h> #include <stdlib.h> #include <avr/interrupt.h> #include "HD44780.h"//radzio #include "TWI.h"//radzio #define PCF8574ADDR 0x20//adres PCF #define MAX_OBR 220 //to daje 0.576ms/kroczek #define PRAWO 1 #define LEWO -1 #define STOP 0 //zmienne globalne...
Witam, mam taki problem, program na lpc1768 nie startuje mi po zaniku napięcia, czy też odłączenia i podłączenia po pewnym czasie, najpierw muszę go zresetować ręcznie, później dopiero startuje. Używam makefile z przykładu lpc1114 na stronie Freddie Chopin. Środowisko eclipse + arm-none-eabi. Makefile [syntax=c]#=====================...
dokladny błąd wywalany to: Processing Rule : Width Constraint (Min=10mil) (Max=100mil) (Preferred=16mil) (All) Violation Arc (-5354.843mil,-2925.575mil) TopLayer Actual Width = 7.874mil oraz Processing Rule : Width Constraint (Min=10mil) (Max=100mil) (Preferred=16mil) (All) Violation Track (-5354.843mil,-2824.394mil)(-5354.843mil... TopLayer...
Witam wszystkich. Uzywam Eclipse + OpenOCD (0.9.0) + GCC. Do tej pory używałem STM32F103 (Cortex-M3), a teraz przesiadłem się na STM32F373 (Cortex-M4). Wziąłem ze starego programu skrypt linkera, startup, vectors.c i posklejałem do kupy odpowiednio je modyfikując. Program generalnie odpala się, mogę sterować GPIO. Następnie spróbowałem uruchomić SysTicka....
Ok. Przeprowadziłem eksperyment. Jeżeli chodzi o Cortex M3 to dodałem plik z rozszerzeniem cpp i kompilacja przebiegła bez błędów. Tylko nie działa standard C++11 tylko jakiś starszy. Sprawdziłem to dodając słowo kluczowe auto, które podobno jest elementem języka od chwili pojawienia pojawienia się standardu C++11. Poniżej zdjęcie ilustrujące pewne...
Teraz ze względu na to że pracuję nad bardziej skomplikowanym projektem chciałbym wykorzystać C++ co przy wykorzystaniu programowania obiektowego pozwoliłoby na poprawę przejrzystości i logicznej spójności projektu. C++ to nie tylko programowanie obiektowe, w taki sposób można też programować z użyciem C. To przede wszystkim programowanie z użyciem...
pliki vectors.s i startup.s mam od Ciebie /***************************************... * author: Freddie Chopin, http://www.freddiechopin.info/ * file: vectors.S * last change: 2010-04-08 * * chip: LPC2103 * compiler: arm-none-eabi-gcc (Sourcery G++ Lite 2009q3-68) 4.4.1 * * description:...
Ok, coś jest nie tak. Przede wszystkim systick działa na trybie optymalizacji O1 i O2. Bez zmiany kodu. Na O0 od razu jest hard fault. Ale nie występuje na żadnej linijce kodu. Nie wchodzi do przerwania i wywala od razu błąd. EDIT: Działa w momencie kiedy wywaliłem inicjalizacje: N VIC_Init(&NVIC_InitStructure); A w to miejsce dałem: NVIC->ISER...
Witam! Mam problem z fatfs 0.09b (najnowsza; wersja 0.07 też nie działa) pod stm32f103vet6. Komunikacja SPI. Maksymalny prescaler SPI do debug'u. (Na każdej prędkości to samo). Disk timer proc na SysTick'u (działa). Karta formatowana na różne jednostki alokacji, FAT, FAT32 zawsze to samo. Nie korzystam z LFN. Strona kodowa 852, 125x, 1 (ANSI) bez znaczenia....
Faktycznie! Jeśli nie przekroczę 4 breakpointów to nic się złego nie dzieje. W kail-u wyświetla się okienko informujące że nie można dodać kolejnego breakpointu (max to 5). Dzięki Freddie! Mam jeszcze jedno pytanie. Chciałem użyć w projekcie kontenerów z biblioteki standardowej C++ (konkretnie vektora i kolejki) jednak gdy program chciał wykonać którąś...
Witam, mam problem z wywołaniem funkcji w przerwaniu. Na chwilę obecną debugowanie odpada, gdyż mam mały problem z odpaleniem debugowania. Po wywołaniu przez procesor przerwania, albo się on wiesza albo niepoprawnie działa funkcja. To samo dzieje się gdy wkleję do przerwania zawartość funkcji. Podczas kompilacji nie sypią się żadne warningi dotyczące...
freddie chopin freddie chopin atmega freddie chopin płytka
manuał seria wyświetlacz brother zasilacz przegrzanie
odkurzacz electrolux wyłącza odkurzacz electrolux wyłącza
Kontrolki wymiany klocków hamulcowych Mercedes W213 Router przerywa połączenie po podłączeniu LAN - przyczyny i rozwiązania