Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2014-08-06 15:48:41

  Zath - Użytkownik

Zath
Użytkownik
Zarejestrowany: 2014-07-23

TestAVR - Kompiluj programy z AVR napisane w C jako Linuxowe programy

Przez ostatnie pół roku kilka dni szukałem przydatnych symulatorów/debugerów dla AVRów. Znalazłem dwa: simavr i simulavr. Problemem obu były możliwości konfiguracji i ilość dostępnych urządzeń, dlatego postanowiłem napisać własny.
Jednak, ponieważ w świecie AVRów jedyne co narazie umiem to zrobić input z przycisku, świecące kółko z LEDów i tym podobne, stworzenie symulatora nie było opcją :)
Z tego powodu zacząłem się zastanawiać, czy jest jakiś sposób skompilowania prostych programów napisanych na AVRy w języku C jako natywne Linuxowe programy.
Wreszcie pomysł miałem, więc zacząłem pisać :)
Najpierw zacząłem pisać moje nowe "kompilatoro-coś" w C. Jednak, mój pomysł wymagał częstej manipulacji łańcuchów znaków, a to jak wiadomo w C może powodować bóle głowy.
Dlatego napisałem w czymś innym, a w czym powiem pod koniec tego posta.
TestAVR to narzędzie które na dzień dzisiejszy przy użyciu kompilatora gcc potrafi skompilować programy napisane na AVR jako natywne Linuxowe programy, a po włączeniu wyjściowego programu wyświetlać zawartość wybranych rejestrów (DDR, PORT). Planuję oczywiście to coś rozwijać :)

TestAVR kompiluje używając do tego specjalnych "plików urządzeń". Te pliki urządzeń mają rozszerzenie "avr" i są to zwykłe pliki tekstowe zawierające specjalne instrukcje.
Tworzenie tych plików urządzeń jest łatwiejsze niż użytkowanie Bubuntu. Składają się one z instrukcji, które podczas działania TestAVR (a raczej czytnik tych plików, także napisany przeze mnie i zawarty z TestAVR) umiejętnie konwertuje na kod źródłowy C i potem używa go do ostatecznego skompilowania programu.

Warto wspomnieć jeszcze raz, że TestAVR to nie symulator ani nie został stworzony do gigantycznych projektów, lecz do debugowania małych projektów dla początkujących, takich, jak ja oraz, że TestAVR kompiluje, nie konwertuje, co oznacza, że aby otrzymać ostateczny wynik, potrzebujemy oryginalnego kodu źródłowego napisanego w C.

Linki do pobrania paczek dla Debiana, RedHata i innych dystrybucji z mega.co.nz, instrukcje instalacji oraz tworzenia plików urządzeń znajduje się na podstronie mojej strony gdzie trzymam moje bezsensowne projekty i skrypty, a dokładnie TUTAJ.

Jeżeli złamałem prawo stanowe wklejając tu link do tej strony, to proszę o odpowiednią informację, a zawartość przepiszę/przekopiuję tu :)

A teraz to, co obiecałem:
TestAVR jest skryptem w bashu!
Staropolskie przysłowie powiada: Nie posądzaj możliwości shella po nazwie. :)

Ostatnio edytowany przez Zath (2014-08-06 15:49:51)


http://i.imgur.com/L4bT95a.png
Sześcioletni laptop, dobrze się trzyma na Archu :)

Offline

 

#2  2014-08-07 12:22:37

  milyges - inż.

milyges
inż.
Skąd: Gorlice/Kraków
Zarejestrowany: 2006-04-09
Serwis

Re: TestAVR - Kompiluj programy z AVR napisane w C jako Linuxowe programy

Twój serwer na pliki mega ssie, na pobranie 10kb czekałem z pół minuty :|

Nie da się po ludzku: github, google code, sf.net? :) Co w wypadku jeżeli kod źródłowy jest w kilku plikach lub mamy własne pliki nagłówkowe?

Co z timerami, przerwaniami, etc. Jak chcesz to rozwiązać? Samo wypisanie wartości rejestru nie wiele da. Poza miganiem diodą nie wiele tym zrobisz...
Pomysł ciekawy, z wykonaniem gorzej ;)

Pozdrawiam.

//EDIT: Żeby nie było, nie uruchamiałem, przejrzałem tylko źródła.

Offline

 

#3  2014-08-07 17:20:10

  Zath - Użytkownik

Zath
Użytkownik
Zarejestrowany: 2014-07-23

Re: TestAVR - Kompiluj programy z AVR napisane w C jako Linuxowe programy

Tak jak powiedziałem, to nie jest i raczej nie będzie profesjonalny debugger, tylko mały skrypt do kompilowania programów na AVR dla kompletnie początkujących takich jak ja. Poczytam sobie więcej o interruptach, timerach itd. i może pomyślę nad implementowaniu ich, a nad kilku-plikowym source codem popracuję przed następną/następną po następnej wersją. Na razie można własne pliki nagłówkowe wrzucać do /usr/share/testavr/include, a dodanie dwóch słów, aby dało się używać własnych nagłówków umieszczonych w dyrektoriach/poddyrektoriach kodu źródłowego będzie bardzo łatwe, więc to w następnym release przyjdzie na pewno. A co do hostingu, to jak stronę przeniosę gdzie indziej to też zmienię.

Edit: Do tego, program jeszcze nie jest skończony i zamierzam go rozwijać, więc aktualna wersja jest taką wersją beta, gdzie najważniejsze jest, że kompiluje i wyświetla poprawne informacje.

Ostatnio edytowany przez Zath (2014-08-07 18:01:52)


http://i.imgur.com/L4bT95a.png
Sześcioletni laptop, dobrze się trzyma na Archu :)

Offline

 

#4  2014-08-28 09:21:11

  R0bby - Użytkownik

R0bby
Użytkownik
Zarejestrowany: 2014-06-19

Re: TestAVR - Kompiluj programy z AVR napisane w C jako Linuxowe programy

Wiadomo, że zrobić coś samemu to kupa satysfakcji, ale jeśli chodzi o praktyczną stronę zagadnienia, to istnieje darmowe ATMEL STUDIO, zawierające wszystkie potrzebne narzędzia. Niestety, pod Windows ;)

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Nas ludzie lubią po prostu, a nie klikając w przyciski ;-)