-
11. Data: 2009-08-08 23:47:39
Temat: Re: avr-gcc - dane w flash
Od: Adam Dybkowski <a...@4...pl>
identyfikator: 20040501 pisze:
> z okazji okazji zapytam (może nikt mnie nie pobije), pojawiły się w
> sieci jakieś tutoriale na temat programowania w c avr i arm?
O C na AVRach był kurs chyba w EP.
No ale w końcu nic wielkiego i tak się nie wyczyta - C jak C, wszędzie
takie samo. "AVR"owatość polega tylko na obsłudze urządzeń I/O i
zagraniach niestandardowych jak właśnie omawiany wcześniej dostęp do
pamięci programu.
A i tak do większości peryferiów albo samemu sterowniki trzeba sobie
napisać, albo szukać gotowców w Sieci. Albo od razu przejść na
rozwinięty system operacyjny z masą gotowych sterowników np. Nut/OS,
który w gruncie rzeczy polecam. Łatwiejsza jest potem ew. przesiadka na
ARMa (na którego Nut/OS także jest, z tym samym API).
--
Adam Dybkowski
http://dybkowski.net/
Uwaga: przed wysłaniem do mnie maila usuń cyfry z adresu.
-
12. Data: 2009-08-09 10:40:35
Temat: Re: avr-gcc - dane w flash
Od: "identyfikator: 20040501" <N...@o...eu>
> O C na AVRach był kurs chyba w EP.
dzięki faktycznie był
> No ale w końcu nic wielkiego i tak się nie wyczyta - C jak C, wszędzie
> takie samo. "AVR"owatość polega tylko na obsłudze urządzeń I/O i
> zagraniach niestandardowych jak właśnie omawiany wcześniej dostęp do
> pamięci programu.
jeśli można zapytać, najbardziej szukam informacji jak łączyć program w C z
assemblerem - nie przy użyciu INLINE... wiem, że procedury asm trzeba
umieszczać w pliku *.s który trzeba później w jakiś szczególny sposób
kompilować... tylko jak?
no i jak deklarować zmienne w procedurach asm, jak wywoływać procedury asm z
c, no i najważniejsze jak tworzyć procedury obsługi przerwania w asm? jeśli
Ktoś mógłby coś napisać to będę zobowiązany.
-
13. Data: 2009-08-09 12:58:40
Temat: Re: avr-gcc - dane w flash
Od: __Maciek <i...@c...org>
Fri, 07 Aug 2009 21:09:04 +0200 Sebastian Biały <h...@p...onet.pl>
napisał:
>> Do flasha programu? Taki jak w oficjalnym manualu:
>> http://www.nongnu.org/avr-libc/user-manual/pgmspace.
html
>
>Tak wiem, ale czy to nie jest rozszezenie tylko dla AVRów ? Zastanawiam
>sie co bedzie jak gcc oficjalnie bedzie miec taki support, zebym nie
>musial tegp progmema wywalac z setek miejsc zastepujac czyms nowym-lepszym.
Zawsze możesz zrobic w jednym pliku źródłowym dwie wersje kodu
wybierane przez #ifdef / #ifndef
Moim zdaniem, gdy pisze się na mikrokontrolery, to trzeba sie pogodzić
z tym że niektóre rzeczy muszą być "architekturo-specyficzne".
-
14. Data: 2009-08-09 13:07:18
Temat: Re: avr-gcc - dane w flash
Od: Zbych <a...@o...pl>
identyfikator: 20040501 pisze:
> jeśli można zapytać, najbardziej szukam informacji jak łączyć program w
> C z assemblerem - nie przy użyciu INLINE... wiem, że procedury asm
> trzeba umieszczać w pliku *.s który trzeba później w jakiś szczególny
> sposób kompilować... tylko jak?
Kompiluje się tak samo jak plik c. Gcc po rozszerzeniu (albo jeśli
znajdzie opcję -x) rozpoznaje typ pliku i wywołuje
kompilację/asemblację/linkowanie. Trzeba tylko pamiętać, że porty gcc na
niektóre architektury automatycznie dostawiają pokreślenie przed nazwami
procedur w c i trzeba w plikach asm rozpoczynać nazwy procedur od
podkreślenia.
--
przeciez moje rozumowanie bylo bez skazy,
no sam bym wskoczyl do tego wulkanu,
ale kto by tak pieknie gwizdal...
-
15. Data: 2009-08-09 13:23:12
Temat: Re: avr-gcc - dane w flash
Od: "identyfikator: 20040501" <N...@o...eu>
> Kompiluje się tak samo jak plik c. Gcc po rozszerzeniu (albo jeśli
> znajdzie opcję -x) rozpoznaje typ pliku i wywołuje
> kompilację/asemblację/linkowanie. Trzeba tylko pamiętać, że porty gcc na
> niektóre architektury automatycznie dostawiają pokreślenie przed nazwami
> procedur w c i trzeba w plikach asm rozpoczynać nazwy procedur od
> podkreślenia.
dzięki! mógłbyś napisać jakiś edukacyjny programik typu zapisz do zmiennej w
procedurze asemblerowej, wywoływanej z C? P.S. przypomniało mi się, te pliki
*.s obowiązują w AVRstudio...
-
16. Data: 2009-08-09 14:07:24
Temat: Re: avr-gcc - dane w flash
Od: Zbych <a...@o...pl>
identyfikator: 20040501 pisze:
> dzięki! mógłbyś napisać jakiś edukacyjny programik typu zapisz do
> zmiennej w procedurze asemblerowej, wywoływanej z C? P.S. przypomniało
> mi się, te pliki *.s obowiązują w AVRstudio...
plik main.c:
#include <avr/io.h>
uint8_t zmienna;
uint8_t procedura_w_asemblerze(uint8_t arg);
void main( void ){
PORTC = procedura_w_asemblerze(PORTB);
PORTB = zmienna;
}
--------------------------------------------------
plik utils.S:
.global procedura_w_asemblerze
.global zmienna
.section .text
procedura_w_asemblerze:
; modyfikacja zmiennej globalnej
lds r25, zmienna
inc r25
sts zmienna, r25
;obróbka parametrów i zwrócenie wyniku
inc r24
ret
Zanim zaczniesz pisać procedury w asemblerze koniecznie musisz doczytać,
w jakich rejestrach przekazuje się parametry, zawartość jakich rejestrów
możesz zniszczyć, a które koniecznie musisz zwrócić nienaruszone:
http://www.nongnu.org/avr-libc/user-manual/FAQ.html#
faq_reg_usage
Do kompilacji używam standardowego makefile'a, więc pliki asemblerowe
wystarczy dopisać w linii "ASRC =" (pamiętając o dużym S w rozszerzeniu).
--
przeciez moje rozumowanie bylo bez skazy,
no sam bym wskoczyl do tego wulkanu,
ale kto by tak pieknie gwizdal...
-
17. Data: 2009-08-09 14:19:15
Temat: Re: avr-gcc - dane w flash
Od: "identyfikator: 20040501" <N...@o...eu>
> .global procedura_w_asemblerze
> .global zmienna
>
> .section .text
dzięki!!! a gdzie można poczytać o dytektywach asemblera jak wyżej?
-
18. Data: 2009-08-09 14:23:28
Temat: Re: avr-gcc - dane w flash
Od: Zbych <a...@o...pl>
identyfikator: 20040501 pisze:
>> .global procedura_w_asemblerze
>> .global zmienna
>>
>> .section .text
>
> dzięki!!! a gdzie można poczytać o dytektywach asemblera jak wyżej?
W manualu do gasa (gnu assembler) - na stronie gcc.
--
przeciez moje rozumowanie bylo bez skazy,
no sam bym wskoczyl do tego wulkanu,
ale kto by tak pieknie gwizdal...
-
19. Data: 2009-08-09 16:00:03
Temat: Re: avr-gcc - dane w flash
Od: "identyfikator: 20040501" <N...@o...eu>
a jeszcze pierdółka... jak w avrstudio pisząc program w C:
a. wygenerować plik wynikowy z przetłumaczonym i skompilowanym z C kodem
assemblera?
b. jak uruchomić symulację/debugowanie z pułapkami dla plików w C?
-
20. Data: 2009-08-09 16:16:09
Temat: Re: avr-gcc - dane w flash
Od: "identyfikator: 20040501" <N...@o...eu>
symulację debuggerem, bez procesora oczywiście...