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!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Witam, właśnie staram się dojść od porozumienia z programem simulavr, jednak kompletnie nie rozmumiem jak z niego korzystać i jak z niego cokolwiek odczytać. Co do kompilacji znalazłem żeby zobić coś takiego:
avr-gcc -mmcu=at90s2313 program.c -o program[/quote]
po tym wyskakuje mi takie infoIn file included from program.c:4:
/usr/lib/gcc/avr/4.3.3/../../../avr/include/util/delay.h:90:3: warning: #warning "Compiler optimizations disabled; functions from <util/delay.h> won't work as designed"[/quote]
następny krokavr-objcopy -O ihex program program.hex[/quote]
(opis ze strony http://toxygen.net/avr/)
i teraz jak symulować ten program za pomocą simulavr??
a jeszcze lepiej by było, gdyby ktoś posiadał link do strony z całkowitym opisem jak programować uc w C pod linuksem ;)Offline
Zajrzyj w takie miejsce:
[url=http://www.opcode.eu.org/mikrokontrolery/]http://www.opcode.eu.org/mikrokontrolery/[/url]
Offline
[quote=fnmirk]Zajrzyj w takie miejsce:
[url=http://www.opcode.eu.org/mikrokontrolery/]http://www.opcode.eu.org/mikrokontrolery/[/url][/quote]
znalazłem to, tylko tam jest opisane debugowanie, a ja potrzebuje symulacje przed wgraniem programu,
hmm najwyżej będe musiał skorzystać z windołsowych programów
Offline
1. simulavr wymaga -O binary w avr-objcopy (a nie ihex)
2. w zasadzie to on tez kozysta z gdb ... a dokladniej do gdb z niego ...
3. jak rozumiesz roznice miedzy symulowaniem a debugowaniem (na symulatorze)
4. dlaczego musisz przesymulowac przed wgraniem?
5. osobiscie polecalbym odpalanie i testowanie w ukladzie (najlepiej z wykozystaniem jtag - dostepny w wiekszych avr)
Offline
tak ... kazdy avr ma gwarantowane conajmniej 1000 cykli programowania wiec mozna dosc smialo eksperymentowac ...
Offline
no to jeszcze ostatnia rzecz, jak odczytać i ustawić fuse bity??
[i]edit:[/i]
ok już wiem jak to zrobić, problem teraz jest z ustawieniem usip, wskazuje że nie widzi urządzenia /dev/avr
Ostatnio edytowany przez Cosik (2009-06-29 11:47:00)
Offline
a co to ma byc /dev/avr? ... jaki masz wogole programator?
Offline
programator STK500v2 pod USB, to jest ten z tych co emuluje port szeregowy, czy jakoś tak (przynajmniej windoł go widzi pod COM), jajko mam kompilowane, więc szystko związane z COM i LPT mam wykompilowane (o ile to ma znaczenie)
po podłączeniu programatora
[b]lsusb[/b]
Bus 006 Device 002: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC[/quote]
[b]dmesg[/b]usb 6-2: new full speed USB device using uhci_hcd and address 2
usb 6-2: configuration #1 chosen from 1 choice[/quote]Offline
musisz miec moduly dla FTDI a urzadzenie bedzie /dev/ttyUSB0 (ew. z innym numerkiem)
Offline
[quote=Cosik]z symulowaniem to chodzi o to żeby sprawdzić, czy mniej więcej działa poprawnie, czyli z tego co mam rozumieć [b]bercik[/b] to najlepiej nie cackać się i odrazu sprawdzać w układzie??[/quote]
Właściwie każdy większy program od hello world nie da się zasymulować w symulatorze programowym, w sensie takim, aby symulacja dała wiarygodne wyniki n/t poprawności działania programu. Bez przykładów najprościej powiedzieć to tak: symulacja jest duuużo wolniejsza od wykonywania przez cpu mikrokontrolera, a do tego dochodzi obsługa urządzeń peryferyjnych.
Tak jak wspomniał jeden z kolegów, idealnym rozwiązaniem jest interfejs JTAG, który umożliwia debagowanie w czasie rzeczywistym.
W przypadku programatora ISP takiej możliwości nie ma, ale jest bardzo tani i w najprostszej wersji banalnie wręcz prosty. Coś za coś. Długo kodziłem avrki i miałem pewnego rodzaju patenty na bugi. Możesz np wykorzystać wolny port UART i spiąć go z pecetem, a w terminalu mieć podgląd informacji, które Cię interesuja. Te "kulawe" patenty mogą czasem zaoszczędzić na prawdę dużo czasu, szczególnie jeśli nie posiadasz oscyloskopu lub analizatora stanów logicznych.
pozdrawiam,
Marcin
Offline
Teraz właściwie każdy oscyloskop jest "pod PC". Pytanie tylko, czy chodzi Ci o oscyloskop w pełnym tego słowa znaczeniu wykorzystującego PC i jego monitor jako interfejs użytkownika + dokonywanie pewnych obliczeń np transformaty Fouriera, czy też o zabawkę podłączoną pod wejście liniowe karty dźwiękowej z pasmem max 20kHz? W pierwszym przypadku cena będzie na tyle duża, że spokojnie kupisz oscyloskop stacjonarny wcale nie z mniejszymi parametrami (sic!). Jeśli bawisz się wyłącznie techniką cyfrową, to proponuję na początek zainwestować w samodzielny analizator stanów logicznych albo - w zależności od zawartości kieszeni - oscyloskop z takim dodatkiem.
Oprogramowanie zapewne nie jest pisane pod GNU/Linuksa, osobiście nigdy się z takowym nie spotkałem..
Offline
Time (s) | Query |
---|---|
0.00008 | SET CHARSET latin2 |
0.00005 | SET NAMES latin2 |
0.00125 | SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='18.221.27.56' WHERE u.id=1 |
0.00063 | REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '18.221.27.56', 1732310028) |
0.00042 | SELECT * FROM punbb_online WHERE logged<1732309728 |
0.00051 | SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=14498 AND t.moved_to IS NULL |
0.00006 | SELECT search_for, replace_with FROM punbb_censoring |
0.00156 | SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=14498 ORDER BY p.id LIMIT 0,25 |
0.00081 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=14498 |
Total query time: 0.00537 s |