Witam! Przede wszystkim w obu plikach zauważyłem różne poziomy optymalizacji kodu, w pliku z 'sample' jest to 's' (optymalizacja pod kątem rozmiaru kodu), a w pliku z 'examples' jest '02' (optymalizacja bardziej pod kątem szybkości kodu) i stąd mogła się wziąść róznica prędkości wykonywania kodu. W...
Wychodzi na to, że muszę za rączkę :( . Próbowałem ręcznie w makefile dodawać linker flags ale on sobie za każdym razem zmienia makefile według tego co ma w konfiguracji. Jak to przeskoczyć? Wychodzi na to że pierwszy raz stało się to potrzebne...
Witam Temat dotyczy optymalizacji kompilatora gcc dla uC AVR, dodam jeszcze że nie mam wielkiego doświadczenia w programowaniu w tym środowisku. A więc problem jest taki - przykładowy program poniżej: #define F_CPU 8000000 #include <avr/io.h> #include <util/delay.h> int main(void) { ...
Wreszcie udało się skonfigurować to wszystko i działa. Projekt kompiluje się poprawnie. Jednak jak wrzucę do projektu bibliotekę standardową od STM to kompilują mi się wszystkie C w obrębie projektu. Co gorsza nie istnieje optymalizacja na poziomie linkera i wszystkie punkcje nawet te nie wywołane lecą...
GPIOA->BSRR |= GPIO_BSRR_BS5; To nie źródło problemu ale tak się tego rejestru nie używa. To jest write only rejestr czyli tylko samo przypisanie Zgadza się, dzięki :) Co do głównego problemu, punkt 1. Użyj debugera okazał się bardzo pomocny :) Założyłem, że skopałem coś w Makefile (np....
Witam Znalazłem w sieci fajny projekt urządzenia z serii TV-B-Gone. (Project: Make your own open source TV-B-Gone (hacked from a MiniPOV 3 Kit)) Makefile: Firmware: Problem jest następujący: mimo że kod napisany niby na attiny2313, to po kompilacji hex zajmuje u mnie jakieś 5,3Kb. Czy jest...
AVR-GCC nie wspiera C++. Ale dla uC jest mozliwe uzywanie C++. Nie wiem, skad biora sie mity, ze kod Embedded C++ wymaga duzo wiekszych zasobow niz kod w C. Moim zdaniem jest to jeden z mitow. Uzupelnie: Run Time Type Inspection i exceptions to są obszary gdzie C++ jest ciężkawy, ale RTTI...
Ja wczoraj trochę z ciekawości powalczyłem z tym przykładem z sieci, próbując skompilować podany program. Kilka plików się kompiluje - tych nie używających bibliotek Microchipowych, ale potem następują jakieś konflikty miedzy bibliotekami od MIPS i Microchipa (tak przynajmniej to rozumiem) i dalsza kompilacja...
Za generację pliku .lss odpowiada program 'objdump' - niestety nie korzystam z TrueStudio, tylko bezposrednio z makefile'a + kompilator, więc konkretnej opcji nie wskażę. O ile oczywiscie TueStudio korzysta z gcc :-) Co do dzialania wyswietlacza lub nie - czesto tak jest , że dane urzadzenie ma parametry...
Eclipse to IDE a nie kompilator. Jeżeli korzystasz z makefile to właśnie tam. Jeżeli masz plugina GNU ARM Eclipse to we właściwościach projektu (Properties -> C/C++ Build->Settings)
Jeśli chodzi o samo Arduino to ja bardziej bym się cieszył jak popularniejsze stanie się właśnie z jakimiś procesorami ARM gdzie taka warstwa abstrakcji dla ludzi nieobytych ma jakiś sens i można sobie na nią pozwolić Dla "nie programistów" dobre rozwiązanie, nie musi wiedzieć jak konfigurować timer,...
Witam. Mam następujący problem. Po kompilacji poniższego kodu za pomocą Eclipse z CodeSourcery otrzymuję częstotliwość Timera wynoszącą 18kHz, natomiast za pomocą programu Keil 53kHz. Wartości te zostały sprawdzone za pomocą oscyloskopu oraz analizatora stanów logicznych, dlatego w tym...
Masz racje przeoczylem tego posta. 1. Napiszcie mi prosze jeszcze czy jak dolaczam jakas biblioteke w ktorej powiedzmy jest 10 funkcji a ja kożystam tylko z jednej to kompilator/linker dolaczy do kodu wynikowego tylko ta jedna czy wszystkie. 2. Do czego służy w makefile optymalizacja. Zauważyłem...
Witam... Idąc książką Pana Lucjana Bryndzy: 1) Uruchomiłem openocd i mogę za pomocą skryptu pythona automatycznie logujacego sie do telneta zaprogramowac binem 2) Po wycieciu wszystkich opcji z str912.mk (ktory jest includowany w makefile) i zostawieniu sekcji "program:" z instrukcja wywolania skryptu...
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);...
Przeniosę to przerwanie i tablice do plików .c. Ale wtedy w pliku głównym .c mam includować plik przerwania .c? Myślałem, że tam inkluduje się tylko pliki .h Nie musisz include'ować pliku .c, a nawet nie powinieneś. W Makefile dopisz go tylko do plików źródłowych (SRC = $(TARGET).c przerwanie.c inny_plik.c...
Dla takich osób, które chcą pooglądać jednak taki, który jest NIEpoprawny, choć w wyjątkowo subtelny sposób: bug.cgi?id=83703 + bug.cgi?id=79436 Nie wiem co ten kod ma wspólnego z naszymi optymalizacyjnymi dywagacjami: Ale pierwszy link: tu to jest UB - nie wiem co w nim subtelnego. FLoatowe...
Witam. Zaniepokoila mnie pewna rzecz, nie wiem czy ja popelniam blad czy blad lezy po stronie nakladki dla WinAvr - AvrSide.. ale do rzeczy Do tej pory korzystalem z WinAVR+AvrSide, a ostatnio jako IDE wykorzystuje Crimson Editor (polecam!!!) (plus WinAVR oczywiscie). Jak wiadomo AvrSide automatycznie...
Tak, bo docelowy uC ma 16kB (lub 32kB) flashu, a mam dopiero "zarys" funkcjonalny tego co będzie robić. 256kB mam na płytce ewaluacyjnej. Nie to, żeby mnie te 1,8kB jakoś bardzo przerażało nawet przy 16kB, ale chciałem wiedzieć skąd ono się bierze, żeby ewentualnie potem mieć z czego uszczknąć. Dodano...
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)...
Klocek to AT91SAM7X128. Jako kompilatora uzywam WinARMa, a debugger to OCDCommander. Ten debugger chyba nie ma raczej za duzych mozliwosci, a nie mam pojecia jak w WinArmie wstawic jakiegos breakpoint'a zeby bylo mozna to dokladniej sprawdzic. Wykonywanie programu krok po kroku raczej odpada bo rozbiegowka...
Sorki za ostry ton, ale wasze wypowiedzi przypominają wypowiedzi ślepego o kolorach. Zaczynacie przygodę z programowaniem (przynajmniej wasze wypowiedzi na to wskazują), a autorytarnie stwierdzacie co jest lepsze i jaki kod generuje. Żeby było śmieszniej to kolega szaro pokazuje kod, który wcale nie...
Czyżby? Czy dla AVR ktokolwiek przejmuje się skryptami linkera, startupem, tablicą wektorów i Makefilem? Przecież dla tej platformy jest DOKŁADNIE TAK SAMO jak dla ARM, a jakoś nikomu nawet na myśl nie przyjdzie zajmować się tymi plikami - każdy korzysta z gotowców zawartych w pakiecie avr-gcc. Te pliki...
Witam Doradźcie mi coś bo już naprawdę nie mam siły! Od wczoraj bezskutecznie walczę z AVR Studio 4- a dokładnie z rozmiarem kodu wynikowego. Napisałem w C prościutki program z mnożeniem zmiennoprzecinkowym i funkcja trygonometryczna- rozmiar kodu 4.5kB. Wydało mi się to dużo (w keilu taki sam program...
Mając do dyspozycji jedną matrycę 8x8 czerwonych diod LED o boku 60,2mm oraz mikrokontroler ATtiny861 pozostałe po innych projektach postanowiłem zbudować to, co każdy elektronik chociaż raz w życiu zbudować musi: zegar ;). Ze względu na charakter wyświetlacza miał to być zegar binarny, ale W...
Ustawienie kierunku wyjścia było tylko przy wyrzucania zbednych linijek usunąłem go ale już dopisałem, moze ktoś sprawdzić czy u niego działa taki prosty kod bo ja już zaczyna podejrzewać procek... . Jeżeli wrzucę LED_TOGGLE; w pętle while to na oscyloskopie widzę przebieg prostokątny więc pozostałe...
no właśnie o te pliki lst mi chodziło jeśli nie są potrzebne to nie wiem czemu mi to nie działa makefile mam ok bo korzystam z wielu takich bibliotek i działa wcześniej w załączniku podałem przykład sprawnej biblioteki do programu głównego daje #include "lcd.h" a makefile wygląda tak # Nazwa...
No dobra, udalo ci sie polechtac moja proznosc wiec moze zrobimy tak. Opisze tutaj przykladowego mekafile-a z nastawieniem na WinAVR, Atmega8 i STK200 tak aby inni tez cos z tego mieli. W zasadzie wszystko jest opisane w angielszczyznie no ale jakby kto nie umial to daje po polsku. # Hey Emacs, this...
Jeju panowie, ja się tylko zapytałem czy mam jakieś inne opcje. Takie R14, to przynajmniej jest punkt zaczepienia. Eclipse i Codesourcery mi bardzo odpowiadają i wcale nie mam zamiaru zmieniać ich na nic innego, a jedynie porównać kody wynikowe. Projekt prosty jak budowa cepa, więc nie powinienem mieć...
Kolejna sprawa: Wg noty DS18B20: All read time slots must be a minimum of 60 µs in duration with a minimum of a 1 µs recovery time between slots A u ciebie w funkcji czytającej bit masz czas trwania slotu niewiele większy niż 17us. Co prawda w funkcji czytającej bajt, masz po wysłaniu...
Panowie, nie kłóćcie się między sobą ;) Widzisz gdzieś tutaj wykrzykniki? Skąd takie wraże, że ktoś tutaj się z kimś kłóci? Zwykła wymiana argumentów. Jeszcze raz zwrócę uwagę , że początkującemu ważniejsza jest kompletna informacja a nie najlepsze narzędzie. A ja jeszcze raz zwrócę uwagę,...
Używam poniższego kodu do inicjalizacji połączenia z komputerem samochodu (według protokołu kw2000). Używam tam komunikacji USART 10400baud 8n1. Chciałem zwiększyć taktowanie do 8MHz i usunąłem programowo dzielnik fusebita CLKDIV8 zmieniając na początku funkcji main() rejestr CLKPR w ten sposób: CLKPR|=...
#define F_CPU na sam początek kodu, przed include'ami, a najlepiej to w makefile umieścić jako jedną z opcji, tak żeby została przekazana do kompilatora jako np. "-DF_CPU=16000000UL" Przyjrzyj się temu: static __inline__ void _delay_ms(double __ms) { uint16_t __ticks; double __tmp...
Nie wiem po co każdą instrukcję ldr Twój program wykonuje warunkowo. To akurat jest oczywiste. Procesor bierze to, co jest. Taki ma program, to taki wykonuje ;p Powinieneś raczej zapytać dlaczego napisałem taki program ;p Otóż nie wiedziałem co robi instrukcja ldrlo. W opisie instrukcji ldr...
Próbuję ogarnąć używanie FPU z rdzenia Cortex-M4 w GCC. 1. Mam toolchain linaro, multilib: >arm-none-eabi-gcc -print-multi-lib .; thumb;(at)mthumb ...
gcc potrafi tworzyć wyspecjalizowane funkcje automatycznie na podstawie argumentów. Jeśli stworzysz funkcję 3-argumentową i w kodzie znajdzie się wywołanie z którego kompilator będzie wiedział, że 2 argumenty są bez znaczenia (lub ich wpływ jest możliwy do określenia na etapie kompilacji) to stworzy...
A procek wogółe rusza?? Zmien program tak, żeby na stałe zapalić diodę. Może wina twki po stronie makefile bo IAR chyba sam tworzy makefile. Moze włączona jest jakas optymalizacja która usuwa puste pętle. Jesli miganie diodą zrealizowane jest na pętlach opozniajacych może być to powodem. Czy...
hmm jeszcze nie wiem czy od razu dużo lepszy od AVR Studio ale jak dla mnie dużo lepsze IDE do pisania softu bo. 1. lepsze kolorowanie składni (pogrubione czcionki itp) może to błahostka ale jak się dużo pisze to człowiek i na takie rzeczy zwraca uwagę 2. jeszcze właśnie b.mało wiem o możliwościach...
Hm też mi się tak wydaje, nie wiem czemu go tam nie ma.. Makefile jest z folderu w którym jest cały projekt tego programu z biblioteki rklibavr. Makefile: # Nazwa pliku z funkcją main() - BEZ ROZSZERZENIA! TARGET = main # typ mikrokontrolera #MCU = at90s2313 #MCU = at90s8515 #MCU...
(at)mickpr: Embsys Regview używam, mogę szczerze polecić, jeżeli używałeś kiedyś CCS Texasa, to działa to podobnie jak tam. Pliki z definicjami rejestrów są napisane b. prosto, łatwo dopisywać swoje procki/wprowadzać poprawki do istniejących. Eclipse jako Eclipse podoba mi się średnio, wolę inne...
Witajcie ! Zgłębiam podstawy programowania w języku C dla AVRów, mam już za sobą miganie diodą, przyszedł czas na LCD. Mój program: [syntax=c]#include <avr/io.h> #include <avr/pgmspace.h> #include <avr/eeprom.h> #include "lcd44780.h" int main(void) { lcd_init(); lcd_locate...
Dzięki, znalazłem już i przetestowałem, choć trochę napsuł mi ten nowy atmelowski avrgcc nerwów głównie przez to, że makefile mi nie działał co używałem z winavr :/ (brakowało sh.exe (który przekopiowałem z winavr) i avr-size który nie działa wywoływany z makefile - a ręcznie tak :/ ). Co do optymalizacji...
Moj program po skompilowaniu daje plik wynikowy hexa o rozmiarze 186kB, ale sprawdzalem sobie przy pomocy PonyProga ile to bedzie bajtow w pamięci kontrolera i jest to 67.9363kB. Pisze w WinAVR, po wykorzystaniu optymalizacji kodu ustawianej w pliku MakeFile przy pomocy komendy OPT z najwyzszym stopniem...
Jeżeli piszesz w avr-gcc (i używasz standardowego Makefile z tego pakietu), to wrzuć tu plik .lss ze swojego projektu, w tym pliku jest kod w asm. Podejrzewam optymalizację, prawdopodobnie to co wpisałeś zostało przez optymalizację usunięte z kodu, bo nie robi nic pożytecznego, ale może się mylę. spróbuj...
W tej chwili jest tak że jak przekompiluję z optymalizacją -2 wszystko działa, jeśli ustawie na -0 mam restart za restartem. Projekt jest ustawiony na atmega32 tu wszystko jest ok. Makefile jest ok wzięty z eclipsa stworzony działający. Problem się pojawia jak podejrzewam przy przejściu programu przez...
Chyba logiczne jest, że jak chcesz mieć mały kod, to używasz optymalizacji rozmiaru, czyli -Os... No akurat te poziomy optymalizacji dają oszczędność na poziomie kilkuset B. Tak się składa że też od kilki dni "męczę" podobny projekt. Udało mi się uruchomić stronę (tzn. odpowiada ale nie ładuje...
Do tego samego doszedłem z tymi optymalizacjami. Rzeczywiście hex który podesłałem był skompilowany z opcją optymalizacji Os, ale... kod z tych pierwszych plików działał na dowolnej optymalizacji a z tym drugi miałem te same problemy co ty. Program kompilowałem na tym twoim makefile jak i na generowanym...
No ja nie mam pojęcia, dlatego pytam. Fakty są takie - oba pliki hex załadowane do procesora działają, więc raczej błędów kompilacji nie ma, braków kodu też nie. Jeżeli chodzi o ustawienia optymalizacji, to widze ich tylko kilka, przy czym optymalizacja s (size chyba) jest ukierunkowana na max. zmniejszenie...
1.Czy da się kompilować programy w trybie "Release" czyli bez informacji o debugowaniu, aby działały jak najszybciej i zajmowały mniej miejsca w pamięci. Taka opcja jest dostępna np. w Rowley Crossworks. Informacje o debuggowaniu niczego nie zmieniają. Można sobie ręcznie zmienić w Makefile opcje...
ad2. To znaczy gdy tworzy swój plik makefile to tak właśnie pomija gdy korzystam z tych "dobry" podmienianych projektów to nie pomija. Prawdopodobnie w jednym z makefil'ów jest włączona optymalizacja Zwróć uwagę na takie słowa kluczowe w pliku jak: -Os ; -O0; O1; O2; oznaczają one stopień optymalizacji...
Witam. Z dniem dzisiejszym przesiadłem się na eclipsa. Programuję (a raczej staram się :D) pod linuxem. Nie mogę dojść, dlaczego kod z eclipsa zajmuje 2 razy tyle miejsca, co kod skompilowany za pomocą makefile wygenerowanego przez winavr (jeszcze pod windowsem, działa też na linuxie). Oczywiście optymalizacja...
Stary kompilator, nowy sposób podawania argumentów. W GCC, od wersji chyba 4.8, można właczyć optymalizację "przyjazną" dla debugingu (czyli "-Og"). W starszych wersjach GCC optymalizacja (parametr -O) przyjmuje wartości od 0 do 3 i dodatkowo s jak size . Makefile ręcznie pisany, czy generowany...
Plik Makefile zawiera tylko opcje, które zostały użyte podczas kompilacji źródeł programu. Jego modyfikacja nie wpływa na wsady pamięci FLASH i EEPROM. Wpływa. Zmiana optymalizacji wygeneruje różny kod, a wyłączenie optymalizacji (opcja O0) może spowodować, że program przestanie działać.
Ustaw optymalizację na -O0 (w makefile OPT=0), czyli wyłącz :wink: Piotrek
Hiob napisał I TU POJAWIA się PROBLEM PONIEWAZ DO PAMIECI MIKROKONTROLERA POWINNA ZALADOWAC się TYLKO PROCEDURA A - RESZTA JEST PRZECIEZ ZBEDNA - A MIEJSCE W PAMIECI ZAJMOWANE PRZEZ PROGRAM POWINNO się ZMNIEJSZYC - W RZECZYWISTOSCI ZAMUJE TYLE SAMO MIEJSCA CO PROGRAM1 Tez mam ten sam problem, nie...
hm taie wielkośći otrzymuje po kompilacji w AVRGCC. Co do stosu nie wiem jak to sprawdzić :( a może co jakiś czas czyścic stos stos aby mieć miejsce Dodano po 3 ...teraz juz nic nie kumam w makefile zmieniłem parametr optymalizacji kompilatora z -O3 na -O1 plik jest mniejszy o połowe...
jaki procesor i jakaa optymalizacja to wszystko zawiera sie w pliku makefile, zobacz ten plik w przykladzie podanym w katalogu example Kompilujemy program naciskajac na "Make All" w menu Tools w ProgrammersNotepad.
Witam mam proble, ze skompilowaniem projektu z plikiem *.asm Znalzałem w necie soft do obsługi LCD siemensa make: *** No rule to make target `lcd.o', needed by `GLCD.elf'. Stop. a)Usuń z projektu plik lcd.asm b)zmień rozszerzenie pliku z .asm na .s c)dołącz do projektu lcd.s A we właściwościach...
Konwersja liczb binarnych na BCD została napisana w asemblerze. Kompilator jednak "widzi" lub "toleruje" tylko niektóre linie programu. W Makefile poziom optymalizacji ustawiony jest na 0. Przedstawiam fragment pliku *.lst . Tłumaczone są tylko linie rozpoczynające się od konwersja.S . 34 ...
Aby te funkcje działały poprawnie należy włączyć optymalizacje kodu. Rozumiem, że optymalizację kodu włącza się w pliku makefile. Mam ustawiony poziom optymalizacji na s. Mam do wyboru 0 - 3. Który najlepiej wybrać?
Z Twojego Makefile: # Optimization level, put in comment for debugging #OPTIMIZATION = -Os Flagę optymalizacji masz zahaszowaną więc jest wyłączona( domyślnie). Aby wypróbować różne poziomy optymalizacji odhaszuj OPTIMIZATION i wypróbuj tak jak tu -Os, -O1, -O2, -O3. Co do rozbiegówki to rzeczywiście...
Dziękuję bardzo za radę od szanownego forumowicza "gmp" Jak ustawię w pliku Makefile stopień optymalizacji na "0" to program działa prawidłowo, zajmuje około 4 % pamięci w atmega, jednak jak w tej pustej pętli wpisze sie np: k=5(program zajmuje około 3%), wykonuje się ona troszkę krócej, ale też działa Wielkie...
Prosta rzecz. Musisz w katalogu w którym masz program umieścić prosty plik Makefile. Ten plik to zbiór poleceń dla kompilatora linkera i temu podobnych. Są w nim zawarte informacje na temat optymalizacji kodu i plików wynikowych. Jeżeli masz WinAVR, to musisz mieć również programik do tworzenia takich...
Żeby pisać na mikrokontrolery w C++ trzeba znać ten język bardzo dobrze. Niestety mikrokontroler to nie PC i nie "wybacza" nieprzemyślanych konstrukcji, które kończą się alokacją ogromnych ilości pamięci. Tak konkretniej to chodzi mi o nieprzemyślane używanie klas. C na mikrokontrolery jest znacznie...
Korzystam z WinAVR 20040720. Pokombinowałem z parametrami w funkcji beep i teraz głośniczek cyka. W sumie to wolałbym żeby głośniczek piszczał niż cykał. shg, mógłbyś mi powiedzieć jak to zrobić prościej? I jak wyłączyć optymalizację (gdzieś w makefile, tak?)?
nikt nie moze skumac makefile'a -I . -I./inc src/main.c -o src/main.o to jest linijka wywolujaca kompilacje pliku .c do pliku .o. tak jak napisal powyzej szelus, idea jest taka, ze mozesz kompilatorowi podac sciezki, w ktorych on bedzie sobie szukal plikow dolaczonych przez #include - standardowo...
witam wszystkich! mam pewien problem z wyświetlaczem 16*2 sterowany zgodnie z HD44780 pracuję na nim od jakiegoś czasu i wczoraj stała się bardzo dziwna rzecz, otóż przestał reagować na jakiekolwiek polecenie z mikrotkonrolera do tej pory korzystałem z biblioteki rklibavr - użycie jej jest bardzo...
Walczę z ponizszym kodem i nie wiem gdzie jest pies pogrzebany. Kompilator to gcc Version: LPC2xxx-gcc-newlib-v2_4_0_0 Deklaracj... funkcji lcd_write void lcd_write(U08 datcom, U16 data); Zaczeły sie problemy jak zaczałem dopisywać funkcje, tak jakby kompilatorowi brakowało miejsca na rozwiniecie...
Kompilator kompiluje bez optymalizacji. Oto fragment makefile: # Define optimisation level here OPT = -O0
Nie za bardzo mi sie chce anlizowac te dwa listingi, ale mozesz sprobowac zaldowac to do avrstudio i debugowac. Po drugie , wylacz optymalizacje kodu w makefile.
jak kompiluje w avrstudio, to działa dobrze :) Ale już kompilacja przez to samo avr-g++ z którego korzysta avrstudio nie działa, więc problem jest chyba tak jak pisaliście w optymalizacji (Makefile). Zamieniłem z -Os na -O2 ale bez zmian. Później będe jeszcze to męczyć i pewnie napisze jeśli to nie to...
To ja dodam tylko, że Keil kosztuje jakieś $3000 i nie obsługuje żadnego JTAGa na USB tańszego niż $500 <: Nie wiem czy jest jakikolwiek sens porównywania jakości kodu wynikowego na poziomie optymalizacji -O0... Ten poziom ma znaczenie jedynie dla specyficznych sytuacji jak debuggowanie kodu. Ustawiłem...
Witaj. Wracając do tematu. Błędy które Ci się pojawiły są normalnymi błędami kompilator stwierdził iż wykorzystujesz nazwy rejestrów które w dodanych przez Ciebie bibliotekach poprostu nie istnieją, bądź pobrałeś kod z jakiegoś innego programu napisanego np na Atmegę128 lub jakiś inny gdzie istnieją...
Optymalizacja w makefile(optimization level) jest ustawiona na s, do wyboru są 0, 1, s, 2 i 3. Format wyjściowy: ihex. W makefile mam taktowanie ustawione na 8000000(F_CPU=8000000). Mikrokontroler działa na wewnętrznym kwarcu 1Mhz, uznałem, że będzie wystarczający :) Dziękuję za tyle odpowiedzi, u Was...
Zachęcony opiniami z innych tematów postanowiłem dopisać jakie są plany na kolejny release tego przykładu Zasadniczo mam już gotowy "startup w C". Cudzysłowy dlatego, że niestety ta zabawa wymaga funkcji inline, które implementują jedynie rozkazy assemblera (takie jak MSR choćby), również pętle inicjalizujące...
1. Jak nacisniesz break to w oknie disasemblacji zobaczysz instrukcje assemblera, ktore odpowiadaja za owe czekanie - wtedy w oknie statusu procesora mozesz ustawic odpowiednia flage tak, zeby warunek byl spelniony i w ten sosob zasymulowac to na co czeka program. Upierdliwe. Lepsze rozwiazanie to zmodyfikowac...
Pierwsze to informacja, że delay.h został przeniesiony do innego katalogu w drzewie include i zalecane jest poprawienie odpowiedniej definicji na: #include <util/delay.h> Drugie to wyłączona w opcjach optymalizacja: przełącznik -O0. Zatem zmień ją w polu Optimization na -Os. Jeśli zaś edytowałeś...
Zmień opcję optymalizacji kodu z -O0 na -Os w makefile i spróbuj ponownie. I jeżeli się skompiluje, to pokaż tą mapę (.map), bo coś tego kodu jest za dużo.
jak zmienisz _delay_ms((PIND & _BV(0))? 1000: 200); na _delay_ms(200); to zobaczysz, że tyle nie zajmuje. Dlaczego ? Pytanie konkursowe o złote gacie dla Ciebie :) i jeszcze spróbuj włączyć optymalizację w jakichś opcjach projektu (nie użuwam avr...
Witam, robię projekt "sterownik cd" z EP2002/7 i próbuje skompilować podany kod, niby wszystko się kompiluje dobrze. Analizując plik ""hex"" w AVRstudio wykryłem że kompilator pozbył się skoków do funkcji "SetAdress..." oto kawałek kodu w C oraz wynik już skompilowanego kodu: u08 SetAddress(u08...
Witam. Zapewne temat odmierzania czasu był poruszany wielokrotnie na forum. Problem mój jest nastepujący: Napisałem swego czasu dwie funkcje realizujące opóźnienie : delayms - opóźnienie time milisekund delaus - opóźnienie time mikrosekund void delayms (int time) //funkcja...
Czy ktoś wie dlaczego sprintf_P resetuje program? [syntax=c]sprintf_P(bufor, PSTR("%d"), liczba);[/syntax] Nie mogę znaleźć powodu... (W makefile odhaczone wszystkie opcje printf, brak optymalizacji, sprintf() działa normalnie).
Hmm. Dodatkowej wtyczki nie instalowałem czyli korzystam chyba z tych które były od razu w Eclipsie Helios CDT 7.02 SR2. W toolchain editor wybrany builder jest GNU Make Builder. W instalation details/plug-ins jest tam jakiś C\C++ Standard make build UI. No nie jestem biegły w tych zawiłościach eclipsa...
AVRy nie potrafią wykonywać programu spoza swojej pamięci Właśnie o to mi chodziło. Z chęcią umieścił bym kilka funkcji na karcie. No cóż... :/ Czy i jaką stosujesz optymalizację w kompilatorze? Oczywiście. Optymalizowane pod rozmiar kodu. W makefile: OPT=s, najwydajniejsza.
Ale taki dobry to ja jeszcze nie jestem. Nauczyłem się jako/tako pisać w C, natomiast do końca nie rozumiem tych definicji, deklaracji itd... Ponieważ program jest dość skomplikowany i zawiera sporo plików dodatkowych typu .c i .h więc miałem spore problemy żeby to wszystko się zobaczyło i skompilowało....
Tak, w pliku Makefile ustawiam częstotliwość, dodam że używam środowiska WinAVR i optymalizacja kodu ustawiona jest na Os.
Po zainstalowaniu ubuntu i skonfigurowaniu eclipse+codesourcery pod niego okazało się że mój archaiczny makefile nie "zbuilduje" mi projektu. Po zainstalowaniu plugina ARM do eclipse okazało się że wygenerowany kod nie mieści się w pamięci. ... Nie mam pojęcia skąd ta róźnica. Kompilator to Codesourcery...
Zrób tak: 1. pokaż schemat 2. pokaż zdjęcia projektu 3. zrób prosty pogram migający diodą LED i podłącz ją. 4. załącz ten program tutaj i opisz dokładnie, jakie są efekty. I rób to wszystko tylko w Studio 5 i nie kombinuj nic a makefile - niech robi automatycznie za Ciebie. Tylko nie zapomnij...
Jak by przyszło zmienić taktowanie procka to zaglądać do wszystkich plików *.c? Pewnie - bo w AVRS5 jak widzisz nie ma takiego miejsca jak w AVRS4 czy w Eclipse czy w CodeBlocks na podanie częstotliwości taktowania w opcjach projektu. Dlatego dzięsiątki początkujących walczy z tym #define itp...
Witam, podłączyłem dzisiaj lcd od simensa CX65 według tego schematu: następnie zabierałem się za wgranie programu, jednak w instrukcji od sterownika pisze żeby: run \lib\compile.bat gdzie wgl tego pliku nie ma [url=]Link do tego sterownika Jeśli ktoś by mógł powiedzieć jak to przystosować...
W tym momencie to tej zmiennej po prostu w ogóle nie ma [; W pliku map (i w pliku .lss pośrednio) można zobaczyć, że w programie jest zerowy rozmiar sekcji .data i .bss. Linker wyrzucił ją, bo nie jest nigdzie używana (jak zapewne cały kod z widget.c). W Makefile domyślnie włączona jest optymalizacja...
1. Czy ten syscall.c jest w ogóle teraz potrzebny nic z nim na razie nie robiłem. Teraz nie, ale przy używaniu pewnych funkcji (czasem jedynie "pośrednio" tzn. nawet nie wiesz kiedy zaczynają być potrzebne) linker zacznie się burzyć o brak funkcji typu _write_r, _sbrk_r, _exit, _isatty_r (ogólnie...
ja akurat nie używam plugina, tylko ręcznie piszę sobie Makefile'a. Generalnie wiele więcej roboty z tym mieć nie będziesz, zresztą popatrz na mój szablon. Tam de facto zmienia się tylko opcje optymalizacji i nazwę projektu. pzdr.
W złym miejscu szukałeś. Twój problem nie jest związany z Atmel Studio lecz z toolchainem - kompilatorem i linkerem. I w dokumentacji tych programów musisz szukać rozwiązań. Katalog w ktorym znajdzie się plik elf jest dowolny - określa to skrypt Makefile, akurat domyślnie dla celu Debug w AS plik ten...
Uzyskałem oczekiwany wynik. Tak jak mówiłeś Freddie, kolejny głupi błąd. Edytowałem makefile "z palca" w notatniku a nie z poziomu środowiska. Niestety był to make z innego projektu... Obecna postać: [syntax=c] 92 dana=sqrtf(dana*dana*dana); 0x08000794: vmul.f32 s15, s29, s29 0x08000798:...
Robię jako projekt na studia interfejs OBD na LCD według protokołu ISO 14230 KWP 2000 FAST, który to według kilku źródeł internetowych jest w mojej Corsie C z 2005r. (ECU Bosch Motronic, silnik Z12XEP). Napisałem kod procedury fast initialization (10400baud 8n1) podany poniżej (w raz z opisem układu):...
Ale to kosmetyka, związana z typami. Nie chciałem już zaciemniać kodu i opisu w poście. U mnie kompilacja z optymalizacją -Os -O1 i -O2 kończy się tak samo: A masz avr-gcc skąd? Tego typu błąd występował w 4.7.x i chyba 4.8.0, był zgłoszony na bugtracku gcc i jest poprawiony. Można go wyeliminować...
Witam. Jakiś czas temu postanowiłem zrobić własny układ oświetlenia schodów za pomocą taśm LED i ATMEGI8. Cały układ pod względem fizycznym mam gotowy, wszystko polutowane, ale pozostał ostatni etap, z którym właśnie mam problem, czyli program dla mikrokontrolera. Jako, że nie znam dobrze języka C, otrzymałem...
Autor zajął się tym projektem przy okazji zabawy komputerem Apple II. Celem tego odtwarzacza jest osiągnięcie takich samych efektów dźwiękowych jakie osiąga się w Apple II. W tym celu wykorzystany został oryginalny układ scalony z serii AY-3-8910/1/2. Układ ten może generować trzy kanały przebiegów...
Wszystko fajnie, pod warunkiem, że chce się używać STM32. Dodanie podstawowego wsparcia dla innych układów jest porównywalne z postawieniem projektu na FreeRTOSie - ot po prostu musisz mieć tablicę wektorów i skonfigurowane rozmiary/adresy pamięci i dokładny typ układu. We FreeRTOSie przecież wsparcie...
Skoro zmieniłeś bibliotekę od lcd to oczywiście, że mógł się "rozrosnąć". Na początek usuń nieużywane funkcje z biblioteki o ile takie są. jeżeli to nie pomoże pozostaje Ci znalezienie biblioteki o mniejszy zapotrzebowaniu na pamięć lub optymalizacja tej którą użyłeś.Podczas kompilacji powinieneś też...
Fantastycznie! Jest nadzieja w avr-gcc. WinAVR idzie do kosza. Dzięki (at)jvoytech. Co ciekawe, w nowym avr-gcc wystarczy wpisać -Os, aby kompilator rozpoznał najlepsze optymalizacje kodu. W końcu... Autorze, wyrzuć stary WinAVR (nie aktualizowany od 2010 roku). Kod możesz zbudować z użyciem MSYS2...